raise-cli 2.4.1__tar.gz → 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {raise_cli-2.4.1 → raise_cli-3.0.0}/.gitignore +67 -3
- raise_cli-3.0.0/PKG-INFO +167 -0
- raise_cli-3.0.0/README.md +111 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/pyproject.toml +31 -12
- raise_cli-3.0.0/src/raise_cli/_agent_session.py +139 -0
- raise_cli-3.0.0/src/raise_cli/_cc_session.py +8 -0
- raise_cli-3.0.0/src/raise_cli/adapters/backlog_config.py +190 -0
- raise_cli-3.0.0/src/raise_cli/adapters/composite_docs.py +255 -0
- raise_cli-3.0.0/src/raise_cli/adapters/composite_pm.py +806 -0
- raise_cli-3.0.0/src/raise_cli/adapters/confluence_adapter.py +178 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/confluence_client.py +79 -11
- raise_cli-3.0.0/src/raise_cli/adapters/confluence_config.py +268 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/confluence_config_gen.py +79 -25
- raise_cli-3.0.0/src/raise_cli/adapters/confluence_markdown.py +120 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/adapter.py +64 -4
- raise_cli-3.0.0/src/raise_cli/adapters/filesystem.py +554 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/filesystem_adapter.py +3 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/filesystem_docs.py +32 -1
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/filesystem_models.py +4 -0
- raise_cli-3.0.0/src/raise_cli/adapters/jira_adapter.py +557 -0
- raise_cli-3.0.0/src/raise_cli/adapters/jira_adf.py +397 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/jira_client.py +293 -19
- raise_cli-3.0.0/src/raise_cli/adapters/jira_config.py +13 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/jira_config_gen.py +57 -9
- raise_cli-3.0.0/src/raise_cli/adapters/ledger_aware.py +135 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/models/__init__.py +12 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/models/docs.py +10 -0
- raise_cli-3.0.0/src/raise_cli/adapters/models/pm.py +355 -0
- raise_cli-3.0.0/src/raise_cli/adapters/pending_ops.py +205 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/protocols.py +88 -7
- raise_cli-3.0.0/src/raise_cli/adapters/resolve.py +221 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/sync.py +66 -4
- raise_cli-3.0.0/src/raise_cli/adapters/sync_ledger.py +67 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/claude.yaml +2 -1
- raise_cli-3.0.0/src/raise_cli/agents/codex.yaml +9 -0
- raise_cli-3.0.0/src/raise_cli/agents/codex_plugin.py +207 -0
- raise_cli-3.0.0/src/raise_cli/agents/hermes.yaml +8 -0
- raise_cli-3.0.0/src/raise_cli/artifacts/models.py +146 -0
- raise_cli-3.0.0/src/raise_cli/artifacts/render.py +229 -0
- raise_cli-3.0.0/src/raise_cli/artifacts/store.py +124 -0
- raise_cli-3.0.0/src/raise_cli/backlog/ledger.py +229 -0
- raise_cli-3.0.0/src/raise_cli/backlog/reconcile.py +228 -0
- raise_cli-3.0.0/src/raise_cli/backlog/scanner.py +225 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/backlog/sync.py +0 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/_resolve.py +122 -45
- raise_cli-3.0.0/src/raise_cli/cli/commands/adapter_setup.py +511 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/adapters.py +3 -0
- raise_cli-3.0.0/src/raise_cli/cli/commands/backlog.py +1315 -0
- raise_cli-3.0.0/src/raise_cli/cli/commands/db.py +144 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/discover.py +283 -5
- raise_cli-3.0.0/src/raise_cli/cli/commands/docs.py +564 -0
- raise_cli-3.0.0/src/raise_cli/cli/commands/drift.py +424 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/gate.py +49 -14
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/graph.py +244 -28
- raise_cli-3.0.0/src/raise_cli/cli/commands/hud.py +21 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/init.py +176 -19
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/journal.py +12 -18
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/learn.py +12 -7
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/memory.py +84 -0
- raise_cli-3.0.0/src/raise_cli/cli/commands/mission.py +368 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/pattern.py +61 -110
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/release.py +38 -22
- raise_cli-3.0.0/src/raise_cli/cli/commands/schema.py +39 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/session.py +312 -28
- raise_cli-3.0.0/src/raise_cli/cli/commands/signal.py +815 -0
- raise_cli-3.0.0/src/raise_cli/cli/commands/telemetry.py +228 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/extensions.py +0 -1
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/main.py +28 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/agent_registry.py +12 -9
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/agents.py +24 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/paths.py +85 -6
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/settings.py +16 -8
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/builder.py +54 -9
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/extractors/structure.py +13 -2
- raise_cli-3.0.0/src/raise_cli/context/loaders/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/loaders/architecture.py +7 -2
- raise_cli-3.0.0/src/raise_cli/context/loaders/documents.py +158 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/loaders/memory.py +44 -4
- raise_cli-3.0.0/src/raise_cli/context/loaders/missions.py +71 -0
- raise_cli-3.0.0/src/raise_cli/context/loaders/symbols.py +553 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/discovery/__init__.py +48 -0
- raise_cli-3.0.0/src/raise_cli/discovery/check.py +340 -0
- raise_cli-3.0.0/src/raise_cli/discovery/clone.py +280 -0
- raise_cli-3.0.0/src/raise_cli/discovery/corpus.py +198 -0
- raise_cli-3.0.0/src/raise_cli/discovery/metric.py +304 -0
- raise_cli-3.0.0/src/raise_cli/discovery/sast.py +306 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/discovery/scanner.py +417 -1
- raise_cli-3.0.0/src/raise_cli/discovery/temporal.py +391 -0
- raise_cli-3.0.0/src/raise_cli/discovery/thresholds.py +272 -0
- raise_cli-3.0.0/src/raise_cli/docs/__init__.py +10 -0
- raise_cli-3.0.0/src/raise_cli/docs/migrate.py +173 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/checks/adapters.py +70 -40
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/checks/developer.py +19 -24
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/checks/project.py +111 -63
- raise_cli-3.0.0/src/raise_cli/doctor/checks/runtimes.py +81 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/runner.py +1 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/exceptions.py +16 -0
- raise_cli-3.0.0/src/raise_cli/gates/ar/__init__.py +6 -0
- raise_cli-3.0.0/src/raise_cli/gates/ar/bugfix_gate.py +21 -0
- raise_cli-3.0.0/src/raise_cli/gates/ar/story_gate.py +88 -0
- raise_cli-3.0.0/src/raise_cli/gates/builtin/_runner.py +186 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/__init__.py +38 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/_base.py +101 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/auth_fan_out.py +87 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/dead_public_api.py +127 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/epic_close.py +113 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/import_fan_in.py +73 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/linter_suppression.py +49 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/parallel_siblings.py +70 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/post_refactor_orphan.py +65 -0
- raise_cli-3.0.0/src/raise_cli/gates/drift/story_accretion.py +50 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/models.py +4 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/extractor.py +7 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/models.py +1 -1
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/graph/backends/__init__.py +20 -8
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/graph/backends/dual.py +12 -10
- raise_cli-3.0.0/src/raise_cli/graph/backends/pending.py +123 -0
- raise_cli-3.0.0/src/raise_cli/graph/backends/sqlite.py +162 -0
- raise_cli-3.0.0/src/raise_cli/graph/query_backend.py +124 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/builtin/memory.py +4 -2
- raise_cli-3.0.0/src/raise_cli/hooks/builtin/telemetry.py +42 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/events.py +29 -0
- raise_cli-3.0.0/src/raise_cli/hud/__init__.py +0 -0
- raise_cli-3.0.0/src/raise_cli/hud/app.py +176 -0
- raise_cli-3.0.0/src/raise_cli/hud/data.py +229 -0
- raise_cli-3.0.0/src/raise_cli/hud/hud.tcss +38 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/__init__.py +0 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/_events_utils.py +124 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/_insights_utils.py +246 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/_missions_utils.py +156 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/events.py +203 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/insights.py +129 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/missions.py +147 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/pipeline.py +189 -0
- raise_cli-3.0.0/src/raise_cli/hud/panels/session.py +226 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/mcp/__init__.py +1 -9
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/mcp/bridge.py +5 -20
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/learning.py +10 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/loader.py +0 -1
- raise_cli-3.0.0/src/raise_cli/memory/memory_index.py +184 -0
- raise_cli-3.0.0/src/raise_cli/memory/migrate_claude.py +168 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/models.py +1 -1
- raise_cli-3.0.0/src/raise_cli/memory/patterns_backend.py +316 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/writer.py +142 -109
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/bootstrap.py +144 -68
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/detection.py +91 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/governance.py +1 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/instructions.py +13 -12
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/manifest.py +39 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/memory_md.py +29 -20
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/profile.py +5 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/skill_conflict.py +19 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/skills.py +24 -1
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/console.py +2 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/formatters/graph.py +2 -1
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/formatters/skill.py +2 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/symbols.py +24 -5
- raise_cli-3.0.0/src/raise_cli/pipeline/__init__.py +42 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/_mcp_instance.py +11 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/_telemetry.py +123 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/dispatch.py +307 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/engine.py +382 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/executor.py +237 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/gates.py +176 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/loader.py +143 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_server.py +74 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_artifact.py +111 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_backlog.py +118 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_gate.py +56 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_graph.py +39 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_pattern.py +87 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_pipeline.py +958 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/mcp_tools_session.py +348 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +59 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/pipelines_base/epic.yaml +50 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/pipelines_base/hotfix.yaml +29 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/pipelines_base/story.yaml +121 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/prompt.py +193 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/run_store.py +345 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/templates/adversarial-ar.md +35 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/templates/adversarial-qr.md +44 -0
- raise_cli-3.0.0/src/raise_cli/pipeline/worktree.py +118 -0
- raise_cli-3.0.0/src/raise_cli/project.py +57 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/publish/check.py +66 -0
- raise_cli-3.0.0/src/raise_cli/rai_base/governance/architecture/domain-model.md +34 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/architecture/system-context.md +19 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/architecture/system-design.md +9 -1
- raise_cli-3.0.0/src/raise_cli/session/__init__.py +131 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/bundle.py +80 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/bundle_data.py +118 -8
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/bundle_formatters.py +167 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/close.py +72 -57
- raise_cli-3.0.0/src/raise_cli/session/context_backend.py +108 -0
- raise_cli-3.0.0/src/raise_cli/session/context_env.py +64 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/derive.py +23 -20
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/doctor.py +24 -86
- raise_cli-3.0.0/src/raise_cli/session/index.py +315 -0
- raise_cli-3.0.0/src/raise_cli/session/journal.py +156 -0
- raise_cli-3.0.0/src/raise_cli/session/measure.py +74 -0
- raise_cli-3.0.0/src/raise_cli/session/mission.py +109 -0
- raise_cli-3.0.0/src/raise_cli/session/mission_binding.py +42 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/monitor.py +6 -6
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/protocols.py +40 -1
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/registry.py +1 -59
- raise_cli-3.0.0/src/raise_cli/session/state.py +257 -0
- raise_cli-3.0.0/src/raise_cli/session/terminal.py +145 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/__init__.py +41 -23
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +51 -7
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-backlog-setup/SKILL.md +242 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +35 -7
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +85 -7
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +36 -8
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +28 -12
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +39 -16
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +198 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +185 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-debug/SKILL.md +2 -2
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-discover/SKILL.md +70 -10
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-docs-setup/SKILL.md +228 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +18 -7
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-epic-close/SKILL.md +290 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +85 -7
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +11 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +46 -7
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +91 -11
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-mission-close/SKILL.md +137 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-mr-create/SKILL.md +161 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +33 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-project-create/SKILL.md +31 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +27 -8
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +37 -3
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-research/SKILL.md +40 -4
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-session-close/SKILL.md +302 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +18 -8
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-session-start/SKILL.md +289 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-skill-create/SKILL.md +140 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-skillset-manage/SKILL.md +151 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-story-close/SKILL.md +336 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-story-design/SKILL.md +374 -0
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-story-implement/SKILL.md +247 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +69 -15
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-story-review/SKILL.md +81 -50
- raise_cli-3.0.0/src/raise_cli/skills_base/rai-story-start/SKILL.md +259 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-welcome/SKILL.md +23 -0
- raise_cli-3.0.0/src/raise_cli/storage/__init__.py +17 -0
- raise_cli-3.0.0/src/raise_cli/storage/connection.py +131 -0
- raise_cli-3.0.0/src/raise_cli/storage/consolidate.py +218 -0
- raise_cli-3.0.0/src/raise_cli/storage/counter.py +62 -0
- raise_cli-3.0.0/src/raise_cli/storage/migrate.py +621 -0
- raise_cli-3.0.0/src/raise_cli/storage/missions.py +264 -0
- raise_cli-3.0.0/src/raise_cli/storage/schema.py +439 -0
- raise_cli-3.0.0/src/raise_cli/storage/schema_sum.py +89 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/telemetry/__init__.py +11 -12
- raise_cli-3.0.0/src/raise_cli/telemetry/emitter.py +591 -0
- raise_cli-3.0.0/src/raise_cli/telemetry/phase_map.py +48 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/telemetry/schemas.py +119 -4
- raise_cli-3.0.0/src/raise_cli/telemetry/session_tokens.py +112 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/viz/generator.py +78 -19
- raise_cli-3.0.0/src/raise_cli/work_events/__init__.py +59 -0
- raise_cli-3.0.0/src/raise_cli/work_events/backfill.py +152 -0
- raise_cli-3.0.0/src/raise_cli/work_events/ref_resolver.py +57 -0
- raise_cli-3.0.0/src/raise_cli/work_events/retry_queue.py +139 -0
- raise_cli-3.0.0/src/raise_cli/work_events/schemas.py +79 -0
- raise_cli-3.0.0/src/raise_cli/work_events/translator.py +256 -0
- raise_cli-2.4.1/PKG-INFO +0 -191
- raise_cli-2.4.1/README.md +0 -141
- raise_cli-2.4.1/src/raise_cli/adapters/composite_docs.py +0 -92
- raise_cli-2.4.1/src/raise_cli/adapters/confluence_adapter.py +0 -107
- raise_cli-2.4.1/src/raise_cli/adapters/confluence_config.py +0 -114
- raise_cli-2.4.1/src/raise_cli/adapters/filesystem.py +0 -301
- raise_cli-2.4.1/src/raise_cli/adapters/jira_adapter.py +0 -368
- raise_cli-2.4.1/src/raise_cli/adapters/jira_config.py +0 -117
- raise_cli-2.4.1/src/raise_cli/adapters/models/pm.py +0 -147
- raise_cli-2.4.1/src/raise_cli/artifacts/__init__.py +0 -30
- raise_cli-2.4.1/src/raise_cli/artifacts/models.py +0 -43
- raise_cli-2.4.1/src/raise_cli/artifacts/reader.py +0 -55
- raise_cli-2.4.1/src/raise_cli/artifacts/renderer.py +0 -102
- raise_cli-2.4.1/src/raise_cli/artifacts/story_design.py +0 -69
- raise_cli-2.4.1/src/raise_cli/artifacts/writer.py +0 -45
- raise_cli-2.4.1/src/raise_cli/cli/commands/artifact.py +0 -144
- raise_cli-2.4.1/src/raise_cli/cli/commands/backlog.py +0 -362
- raise_cli-2.4.1/src/raise_cli/cli/commands/docs.py +0 -183
- raise_cli-2.4.1/src/raise_cli/cli/commands/signal.py +0 -425
- raise_cli-2.4.1/src/raise_cli/context/loaders/artifacts.py +0 -72
- raise_cli-2.4.1/src/raise_cli/gates/builtin/_runner.py +0 -72
- raise_cli-2.4.1/src/raise_cli/graph/backends/pending.py +0 -84
- raise_cli-2.4.1/src/raise_cli/hooks/builtin/telemetry.py +0 -72
- raise_cli-2.4.1/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -20
- raise_cli-2.4.1/src/raise_cli/session/__init__.py +0 -5
- raise_cli-2.4.1/src/raise_cli/session/index.py +0 -197
- raise_cli-2.4.1/src/raise_cli/session/journal.py +0 -119
- raise_cli-2.4.1/src/raise_cli/session/state.py +0 -247
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-adapter-setup/SKILL.md +0 -221
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-bugfix-run/SKILL.md +0 -304
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +0 -121
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +0 -138
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -237
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-epic-run/SKILL.md +0 -212
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -184
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-session-start/SKILL.md +0 -114
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-story-close/SKILL.md +0 -213
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-story-design/SKILL.md +0 -271
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -161
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-story-run/SKILL.md +0 -319
- raise_cli-2.4.1/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -172
- raise_cli-2.4.1/src/raise_cli/telemetry/writer.py +0 -217
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/__main__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/confluence_discovery.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/jira_discovery.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/jira_exceptions.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/models/governance.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/models/health.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-2.4.1/src/raise_cli/context/loaders → raise_cli-3.0.0/src/raise_cli/artifacts}/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/base.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/doctor.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/info.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/skill.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/commands/skill_set.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compat.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/controls.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/evidence.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/extractors/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/extractors/git.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/loader.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/compliance/models.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/analyzers/python.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/analyzers/signals.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/analyzers/typescript.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/extractors/relationships.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/loaders/components.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/context/loaders/identity.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/core/files.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/core/text.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/discovery/analyzer.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/checks/environment.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/fix.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/models.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/doctor/report.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/builtin/coverage.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/builtin/format.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/hook.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/gates/registry.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/_convert.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/adr.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/backlog.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/constitution.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/epic.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/glossary.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/guardrails.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/prd.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/roadmap.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/governance/parsers/vision.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/hooks/registry.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/memory/push.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/migration.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/profile_portability.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/publish/changelog.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/identity/core.yaml +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/identity.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/prefix.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/schema.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/skillsets.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills/validator.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-close/templates/retrospective.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-design/templates/design.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-design/templates/scope.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-epic-start/templates/brief.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/skills_base/rai-story-start/templates/story.md +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-2.4.1 → raise_cli-3.0.0}/src/raise_cli/viz/__init__.py +0 -0
|
@@ -9,15 +9,39 @@
|
|
|
9
9
|
.claude/worktrees/
|
|
10
10
|
.claude/projects/
|
|
11
11
|
|
|
12
|
+
# Hermes Agent worktrees (auto-created by hermes -w)
|
|
13
|
+
.worktrees/
|
|
14
|
+
|
|
15
|
+
# Codex/Agents experimental tooling (local only)
|
|
16
|
+
.agents/
|
|
17
|
+
.codex/
|
|
18
|
+
.codex-plugin/
|
|
19
|
+
|
|
12
20
|
# Claude Code legacy files (superseded, prevent re-addition)
|
|
13
21
|
.claude/RAI.md
|
|
14
22
|
.claude/RAI-naming.md
|
|
15
23
|
.claude/rai.archive/
|
|
16
24
|
|
|
25
|
+
# Daemon config (contains secrets — template committed as .example)
|
|
26
|
+
daemon-team.yaml
|
|
27
|
+
daemon.yaml
|
|
28
|
+
.env.fly
|
|
29
|
+
|
|
17
30
|
# RaiSE generated/cache files
|
|
18
31
|
.raise/cache/
|
|
19
32
|
.raise/confluence-pages.yaml
|
|
20
33
|
.raise/backlog/
|
|
34
|
+
# .raise/artifacts/ — tracked (story-design YAMLs are versioned artifacts)
|
|
35
|
+
|
|
36
|
+
# Drift detection pipeline outputs (computed, machine-specific paths, high churn)
|
|
37
|
+
.raise/drift/
|
|
38
|
+
packages/*/.raise/drift/
|
|
39
|
+
packages/*/.raise/pending_sync.json
|
|
40
|
+
packages/*/.raise/rai/personal/
|
|
41
|
+
packages/*/.raise/rai/sessions/
|
|
42
|
+
|
|
43
|
+
# Pipeline state (environment-specific, PAT-E-594)
|
|
44
|
+
.rai-state/
|
|
21
45
|
|
|
22
46
|
# RaiSE adapter configs (declarative, PII-free — identity in env vars)
|
|
23
47
|
# .raise/jira.yaml and .raise/confluence.yaml are tracked (shared config)
|
|
@@ -27,8 +51,8 @@
|
|
|
27
51
|
# Dossier output (generated, not committed)
|
|
28
52
|
dev/output/
|
|
29
53
|
|
|
30
|
-
# RaiSE
|
|
31
|
-
|
|
54
|
+
# RaiSE graph index — SQLite is canonical after S22.3; index.json excluded via .raise/.gitignore
|
|
55
|
+
# Rebuild with: rai graph build
|
|
32
56
|
|
|
33
57
|
# RaiSE personal directory (per-developer, not shared)
|
|
34
58
|
.raise/rai/personal/
|
|
@@ -36,6 +60,23 @@ dev/output/
|
|
|
36
60
|
# RaiSE sync state (per-instance JIRA mappings, not shared)
|
|
37
61
|
.raise/rai/sync/
|
|
38
62
|
|
|
63
|
+
# RaiSE global SQLite DB (per-machine, not shared)
|
|
64
|
+
.raise/rai/raise.db
|
|
65
|
+
|
|
66
|
+
# RaiSE mission migration artifacts
|
|
67
|
+
.raise/rai/missions/*.migrated
|
|
68
|
+
|
|
69
|
+
# RaiSE sync ephemeral artifacts (backups, dead-letter, migrations, pending ops)
|
|
70
|
+
.raise/sync/backlog-ledger.yaml
|
|
71
|
+
.raise/sync/backlog-ledger.yaml.backup.*
|
|
72
|
+
.raise/sync/backlog-dead-letter.jsonl
|
|
73
|
+
.raise/sync/backlog-ledger.yaml.migrated
|
|
74
|
+
packages/*/.raise/sync/*-pending-ops.jsonl
|
|
75
|
+
|
|
76
|
+
# Per-session env context written by Rai skills, read by CC hooks + MCP tool
|
|
77
|
+
# Namespaced by CC session_id (RAISE-1982) — isolates concurrent CC sessions.
|
|
78
|
+
.raise/rai/sessions/
|
|
79
|
+
|
|
39
80
|
# Temporary files
|
|
40
81
|
req.txt
|
|
41
82
|
*.tmp
|
|
@@ -119,6 +160,10 @@ credentials.json
|
|
|
119
160
|
|
|
120
161
|
# MkDocs build output
|
|
121
162
|
_site/
|
|
163
|
+
.docs-build/
|
|
164
|
+
|
|
165
|
+
# Security scan outputs (contain findings — not committed)
|
|
166
|
+
work/reports/gl-secret-detection-report*
|
|
122
167
|
|
|
123
168
|
# Issue analysis artifacts (PDFs, images — binary, no git value)
|
|
124
169
|
dev/issues/**/*.pdf
|
|
@@ -129,4 +174,23 @@ dev/transcripts/
|
|
|
129
174
|
|
|
130
175
|
# Prevent symlink artifacts from being tracked at root
|
|
131
176
|
/es/
|
|
132
|
-
|
|
177
|
+
|
|
178
|
+
# Ephemeral debug artifacts (Playwright MCP snapshots, root-level screenshots)
|
|
179
|
+
.playwright-mcp/
|
|
180
|
+
.claude/scheduled_tasks.lock
|
|
181
|
+
/issue-*.png
|
|
182
|
+
/panel-*.png
|
|
183
|
+
/s7-*.png
|
|
184
|
+
/app-actions-menu.yml
|
|
185
|
+
/issue-layout.yml
|
|
186
|
+
/layout-editor.yml
|
|
187
|
+
/menu-open.yml
|
|
188
|
+
/raise-*.yml
|
|
189
|
+
|
|
190
|
+
# Per-developer docker compose override (e.g., expose postgres:5432 for e2e).
|
|
191
|
+
# See dev/sops/raise-server-local.md § Running e2e tests locally.
|
|
192
|
+
/docker-compose.override.yaml
|
|
193
|
+
/docker-compose.override.yml
|
|
194
|
+
.worktrees/
|
|
195
|
+
.venv
|
|
196
|
+
.venv
|
raise_cli-3.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: raise-cli
|
|
3
|
+
Version: 3.0.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: atlassian-python-api>=3.41.0
|
|
22
|
+
Requires-Dist: httpx<1.0,>=0.27.0
|
|
23
|
+
Requires-Dist: logfire-api>=4.0
|
|
24
|
+
Requires-Dist: markdown>=3.6
|
|
25
|
+
Requires-Dist: mcp<2,>=1.26
|
|
26
|
+
Requires-Dist: networkx>=3.6.1
|
|
27
|
+
Requires-Dist: pydantic-settings>=2.2.0
|
|
28
|
+
Requires-Dist: pydantic>=2.6.0
|
|
29
|
+
Requires-Dist: python-dotenv>=1.0.0
|
|
30
|
+
Requires-Dist: pyyaml>=6.0.1
|
|
31
|
+
Requires-Dist: raise-core>=3.0.0
|
|
32
|
+
Requires-Dist: rich>=13.7.0
|
|
33
|
+
Requires-Dist: tree-sitter-javascript>=0.25.0
|
|
34
|
+
Requires-Dist: tree-sitter-language-pack>=0.13.0
|
|
35
|
+
Requires-Dist: tree-sitter-php>=0.24.1
|
|
36
|
+
Requires-Dist: tree-sitter-svelte>=1.0.2
|
|
37
|
+
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
38
|
+
Requires-Dist: tree-sitter>=0.25.2
|
|
39
|
+
Requires-Dist: typer>=0.12.0
|
|
40
|
+
Provides-Extra: atlassian
|
|
41
|
+
Provides-Extra: confluence
|
|
42
|
+
Provides-Extra: csharp
|
|
43
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == 'csharp'
|
|
44
|
+
Provides-Extra: go
|
|
45
|
+
Requires-Dist: tree-sitter-go>=0.25.0; extra == 'go'
|
|
46
|
+
Provides-Extra: hud
|
|
47
|
+
Requires-Dist: textual<1.0,>=0.86; extra == 'hud'
|
|
48
|
+
Provides-Extra: java
|
|
49
|
+
Requires-Dist: tree-sitter-java>=0.23.5; extra == 'java'
|
|
50
|
+
Provides-Extra: jira
|
|
51
|
+
Provides-Extra: observability
|
|
52
|
+
Requires-Dist: logfire>=4.0; extra == 'observability'
|
|
53
|
+
Requires-Dist: opentelemetry-api>=1.20; extra == 'observability'
|
|
54
|
+
Requires-Dist: opentelemetry-sdk>=1.20; extra == 'observability'
|
|
55
|
+
Description-Content-Type: text/markdown
|
|
56
|
+
|
|
57
|
+
# RaiSE CLI
|
|
58
|
+
|
|
59
|
+
**Reliable AI Software Engineering** — governance, memory, and structured workflows for AI-assisted development.
|
|
60
|
+
|
|
61
|
+
[](https://pypi.org/project/raise-cli/)
|
|
62
|
+
[](https://pypi.org/project/raise-cli/)
|
|
63
|
+
[](https://github.com/humansys/raise/blob/main/LICENSE)
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
AI coding assistants are powerful. They're also unreliable. They forget your conventions between sessions. They don't know your architecture decisions. They optimize for speed over correctness. Left ungoverned, they produce code that *looks* right but subtly isn't.
|
|
68
|
+
|
|
69
|
+
RaiSE fixes this through three collaborating parts:
|
|
70
|
+
|
|
71
|
+
```
|
|
72
|
+
You (Strategy, Judgment, Ownership)
|
|
73
|
+
│
|
|
74
|
+
│ collaborates with
|
|
75
|
+
▼
|
|
76
|
+
Rai (AI Partner — Execution + Memory)
|
|
77
|
+
│
|
|
78
|
+
│ governed by
|
|
79
|
+
▼
|
|
80
|
+
RaiSE (Methodology + Toolkit)
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**You** decide what to build and why. **Rai** executes with accumulated memory and calibrated judgment. **RaiSE** provides the discipline — skills, governance, and quality gates — that makes the collaboration reliable.
|
|
84
|
+
|
|
85
|
+
The result: AI that learns from your project, follows your rules, and compounds knowledge across sessions instead of starting fresh every time.
|
|
86
|
+
|
|
87
|
+
## Install
|
|
88
|
+
|
|
89
|
+
### Quick install (recommended)
|
|
90
|
+
|
|
91
|
+
Per-project isolation — each project gets its own version:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
cd your-project
|
|
95
|
+
curl -LsSf https://docs.raiseframework.ai/install.sh | bash
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Windows (PowerShell):
|
|
99
|
+
|
|
100
|
+
```powershell
|
|
101
|
+
cd your-project
|
|
102
|
+
powershell -ExecutionPolicy ByPass -c "irm https://docs.raiseframework.ai/install.ps1 | iex"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Manual install
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
pip install raise-cli # latest stable
|
|
109
|
+
pip install raise-cli --pre # latest pre-release
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Requires **Python 3.12 or 3.13**. See the [Installation Guide](https://docs.raiseframework.ai/3.0/installation/) for platform-specific notes and troubleshooting.
|
|
113
|
+
|
|
114
|
+
## Getting started
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
cd your-project
|
|
118
|
+
rai init # create .raise/ governance structure
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Open your AI assistant ([Claude Code](https://claude.ai/claude-code), Cursor, or Windsurf) in the project directory and run:
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
/rai-welcome → First-time setup: developer profile + knowledge graph
|
|
125
|
+
/rai-session-start → Load context, memory, and propose focused work
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
## The story lifecycle
|
|
129
|
+
|
|
130
|
+
Every piece of work follows six steps — the core rhythm of RaiSE:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
/rai-story-start → Scope: what are we building?
|
|
134
|
+
/rai-story-design → Spec: how will it work?
|
|
135
|
+
/rai-story-plan → Tasks: decompose into steps
|
|
136
|
+
/rai-story-implement → Build: test, code, verify, commit
|
|
137
|
+
/rai-story-review → Reflect: what did we learn?
|
|
138
|
+
/rai-story-close → Ship: merge and clean up
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Each step produces an artifact that feeds the next. Reviews capture patterns into memory. Memory feeds future sessions. This is how learning compounds — not through magic, but through disciplined repetition.
|
|
142
|
+
|
|
143
|
+
## What's inside
|
|
144
|
+
|
|
145
|
+
**Governance** — Layered rules (principles → requirements → guardrails → code) loaded at session start and enforced throughout. Everything traceable, everything in Markdown.
|
|
146
|
+
|
|
147
|
+
**Memory** — Patterns, calibration data, and session history that persist across sessions. Session 1 is discovery. Session 50 is expertise.
|
|
148
|
+
|
|
149
|
+
**Knowledge Graph** — Connects governance, memory, skills, and code into a queryable structure. The CLI traverses this graph to deliver the right context for your current work.
|
|
150
|
+
|
|
151
|
+
**Skills** — 44 structured workflows covering epics, stories, bugfixes, discovery, documentation, and releases. Each adapts to your experience level (Shu-Ha-Ri).
|
|
152
|
+
|
|
153
|
+
**Quality Gates** — Automated verification at every step. Tests, types, lint, coverage, architectural drift detection, and release readiness checks.
|
|
154
|
+
|
|
155
|
+
**Integrations** — Jira, Confluence, and filesystem adapters. MCP server for AI tool orchestration. Multi-language code discovery (Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte).
|
|
156
|
+
|
|
157
|
+
## Documentation
|
|
158
|
+
|
|
159
|
+
- **[Getting Started](https://docs.raiseframework.ai/3.0/getting-started/)** — Install, initialize, and run your first session
|
|
160
|
+
- **[Your First Story](https://docs.raiseframework.ai/3.0/guides/first-story/)** — Walk through the full story lifecycle
|
|
161
|
+
- **[Core Concepts](https://docs.raiseframework.ai/3.0/concepts/)** — Memory, Skills, Governance, Knowledge Graph
|
|
162
|
+
- **[CLI Reference](https://docs.raiseframework.ai/3.0/cli/)** — Every command, flag, and option
|
|
163
|
+
- **[Guides](https://docs.raiseframework.ai/3.0/guides/)** — Integrations, pipelines, extending RaiSE
|
|
164
|
+
|
|
165
|
+
## License
|
|
166
|
+
|
|
167
|
+
Apache 2.0 — see [LICENSE](https://github.com/humansys/raise/blob/main/LICENSE).
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# RaiSE CLI
|
|
2
|
+
|
|
3
|
+
**Reliable AI Software Engineering** — governance, memory, and structured workflows for AI-assisted development.
|
|
4
|
+
|
|
5
|
+
[](https://pypi.org/project/raise-cli/)
|
|
6
|
+
[](https://pypi.org/project/raise-cli/)
|
|
7
|
+
[](https://github.com/humansys/raise/blob/main/LICENSE)
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
AI coding assistants are powerful. They're also unreliable. They forget your conventions between sessions. They don't know your architecture decisions. They optimize for speed over correctness. Left ungoverned, they produce code that *looks* right but subtly isn't.
|
|
12
|
+
|
|
13
|
+
RaiSE fixes this through three collaborating parts:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
You (Strategy, Judgment, Ownership)
|
|
17
|
+
│
|
|
18
|
+
│ collaborates with
|
|
19
|
+
▼
|
|
20
|
+
Rai (AI Partner — Execution + Memory)
|
|
21
|
+
│
|
|
22
|
+
│ governed by
|
|
23
|
+
▼
|
|
24
|
+
RaiSE (Methodology + Toolkit)
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**You** decide what to build and why. **Rai** executes with accumulated memory and calibrated judgment. **RaiSE** provides the discipline — skills, governance, and quality gates — that makes the collaboration reliable.
|
|
28
|
+
|
|
29
|
+
The result: AI that learns from your project, follows your rules, and compounds knowledge across sessions instead of starting fresh every time.
|
|
30
|
+
|
|
31
|
+
## Install
|
|
32
|
+
|
|
33
|
+
### Quick install (recommended)
|
|
34
|
+
|
|
35
|
+
Per-project isolation — each project gets its own version:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
cd your-project
|
|
39
|
+
curl -LsSf https://docs.raiseframework.ai/install.sh | bash
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Windows (PowerShell):
|
|
43
|
+
|
|
44
|
+
```powershell
|
|
45
|
+
cd your-project
|
|
46
|
+
powershell -ExecutionPolicy ByPass -c "irm https://docs.raiseframework.ai/install.ps1 | iex"
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### Manual install
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
pip install raise-cli # latest stable
|
|
53
|
+
pip install raise-cli --pre # latest pre-release
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Requires **Python 3.12 or 3.13**. See the [Installation Guide](https://docs.raiseframework.ai/3.0/installation/) for platform-specific notes and troubleshooting.
|
|
57
|
+
|
|
58
|
+
## Getting started
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
cd your-project
|
|
62
|
+
rai init # create .raise/ governance structure
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Open your AI assistant ([Claude Code](https://claude.ai/claude-code), Cursor, or Windsurf) in the project directory and run:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
/rai-welcome → First-time setup: developer profile + knowledge graph
|
|
69
|
+
/rai-session-start → Load context, memory, and propose focused work
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## The story lifecycle
|
|
73
|
+
|
|
74
|
+
Every piece of work follows six steps — the core rhythm of RaiSE:
|
|
75
|
+
|
|
76
|
+
```
|
|
77
|
+
/rai-story-start → Scope: what are we building?
|
|
78
|
+
/rai-story-design → Spec: how will it work?
|
|
79
|
+
/rai-story-plan → Tasks: decompose into steps
|
|
80
|
+
/rai-story-implement → Build: test, code, verify, commit
|
|
81
|
+
/rai-story-review → Reflect: what did we learn?
|
|
82
|
+
/rai-story-close → Ship: merge and clean up
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Each step produces an artifact that feeds the next. Reviews capture patterns into memory. Memory feeds future sessions. This is how learning compounds — not through magic, but through disciplined repetition.
|
|
86
|
+
|
|
87
|
+
## What's inside
|
|
88
|
+
|
|
89
|
+
**Governance** — Layered rules (principles → requirements → guardrails → code) loaded at session start and enforced throughout. Everything traceable, everything in Markdown.
|
|
90
|
+
|
|
91
|
+
**Memory** — Patterns, calibration data, and session history that persist across sessions. Session 1 is discovery. Session 50 is expertise.
|
|
92
|
+
|
|
93
|
+
**Knowledge Graph** — Connects governance, memory, skills, and code into a queryable structure. The CLI traverses this graph to deliver the right context for your current work.
|
|
94
|
+
|
|
95
|
+
**Skills** — 44 structured workflows covering epics, stories, bugfixes, discovery, documentation, and releases. Each adapts to your experience level (Shu-Ha-Ri).
|
|
96
|
+
|
|
97
|
+
**Quality Gates** — Automated verification at every step. Tests, types, lint, coverage, architectural drift detection, and release readiness checks.
|
|
98
|
+
|
|
99
|
+
**Integrations** — Jira, Confluence, and filesystem adapters. MCP server for AI tool orchestration. Multi-language code discovery (Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte).
|
|
100
|
+
|
|
101
|
+
## Documentation
|
|
102
|
+
|
|
103
|
+
- **[Getting Started](https://docs.raiseframework.ai/3.0/getting-started/)** — Install, initialize, and run your first session
|
|
104
|
+
- **[Your First Story](https://docs.raiseframework.ai/3.0/guides/first-story/)** — Walk through the full story lifecycle
|
|
105
|
+
- **[Core Concepts](https://docs.raiseframework.ai/3.0/concepts/)** — Memory, Skills, Governance, Knowledge Graph
|
|
106
|
+
- **[CLI Reference](https://docs.raiseframework.ai/3.0/cli/)** — Every command, flag, and option
|
|
107
|
+
- **[Guides](https://docs.raiseframework.ai/3.0/guides/)** — Integrations, pipelines, extending RaiSE
|
|
108
|
+
|
|
109
|
+
## License
|
|
110
|
+
|
|
111
|
+
Apache 2.0 — see [LICENSE](https://github.com/humansys/raise/blob/main/LICENSE).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "raise-cli"
|
|
3
|
-
version = "
|
|
3
|
+
version = "3.0.0"
|
|
4
4
|
description = "RaiSE CLI - Reliable AI Software Engineering governance framework"
|
|
5
5
|
authors = [
|
|
6
6
|
{name = "Emilio Osorio", email = "emilio@humansys.ai"}
|
|
@@ -21,7 +21,7 @@ classifiers = [
|
|
|
21
21
|
]
|
|
22
22
|
|
|
23
23
|
dependencies = [
|
|
24
|
-
"raise-core",
|
|
24
|
+
"raise-core>=3.0.0",
|
|
25
25
|
"typer>=0.12.0",
|
|
26
26
|
"rich>=13.7.0",
|
|
27
27
|
"pydantic>=2.6.0",
|
|
@@ -36,28 +36,34 @@ dependencies = [
|
|
|
36
36
|
"tree-sitter-svelte>=1.0.2",
|
|
37
37
|
"tree-sitter-language-pack>=0.13.0",
|
|
38
38
|
"logfire-api>=4.0",
|
|
39
|
-
"httpx>=0.27.0",
|
|
39
|
+
"httpx>=0.27.0,<1.0",
|
|
40
|
+
"mcp>=1.26,<2",
|
|
41
|
+
"markdown>=3.6",
|
|
42
|
+
"atlassian-python-api>=3.41.0",
|
|
40
43
|
]
|
|
41
44
|
|
|
42
45
|
[project.optional-dependencies]
|
|
43
|
-
mcp = [
|
|
44
|
-
"mcp>=1.26,<2",
|
|
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",
|
|
51
53
|
]
|
|
52
|
-
|
|
53
|
-
"
|
|
54
|
+
java = [
|
|
55
|
+
"tree-sitter-java>=0.23.5",
|
|
54
56
|
]
|
|
55
|
-
|
|
56
|
-
"
|
|
57
|
+
go = [
|
|
58
|
+
"tree-sitter-go>=0.25.0",
|
|
57
59
|
]
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
+
hud = [
|
|
61
|
+
"textual>=0.86,<1.0",
|
|
60
62
|
]
|
|
63
|
+
# Backwards-compat aliases — atlassian-python-api is now installed by default (RAISE-1912).
|
|
64
|
+
atlassian = []
|
|
65
|
+
confluence = []
|
|
66
|
+
jira = []
|
|
61
67
|
|
|
62
68
|
[project.urls]
|
|
63
69
|
Homepage = "https://raiseframework.ai"
|
|
@@ -67,6 +73,7 @@ Changelog = "https://github.com/humansys/raise/blob/main/CHANGELOG.md"
|
|
|
67
73
|
|
|
68
74
|
[project.scripts]
|
|
69
75
|
rai = "raise_cli.cli.main:app"
|
|
76
|
+
rai-mcp-pipeline = "raise_cli.pipeline.mcp_server:main"
|
|
70
77
|
|
|
71
78
|
[project.entry-points."rai.governance.parsers"]
|
|
72
79
|
prd = "raise_cli.governance.parsers.prd:PrdParser"
|
|
@@ -82,6 +89,7 @@ glossary = "raise_cli.governance.parsers.glossary:GlossaryParser"
|
|
|
82
89
|
[project.entry-points."rai.hooks"]
|
|
83
90
|
telemetry = "raise_cli.hooks.builtin.telemetry:TelemetryHook"
|
|
84
91
|
gate-bridge = "raise_cli.hooks.builtin.gate_bridge:GateBridgeHook"
|
|
92
|
+
work-events = "raise_cli.work_events.emitter:ServerEmitHook"
|
|
85
93
|
|
|
86
94
|
[project.entry-points."rai.gates"]
|
|
87
95
|
tests = "raise_cli.gates.builtin.tests:TestGate"
|
|
@@ -89,12 +97,23 @@ types = "raise_cli.gates.builtin.types:TypeGate"
|
|
|
89
97
|
lint = "raise_cli.gates.builtin.lint:LintGate"
|
|
90
98
|
coverage = "raise_cli.gates.builtin.coverage:CoverageGate"
|
|
91
99
|
format = "raise_cli.gates.builtin.format:FormatGate"
|
|
100
|
+
drift-post-refactor-orphan = "raise_cli.gates.drift.post_refactor_orphan:PostRefactorOrphanGate"
|
|
101
|
+
drift-dead-public-api = "raise_cli.gates.drift.dead_public_api:DeadPublicApiGate"
|
|
102
|
+
drift-linter-suppression = "raise_cli.gates.drift.linter_suppression:LinterSuppressionGate"
|
|
103
|
+
drift-story-accretion = "raise_cli.gates.drift.story_accretion:StoryAccretionGate"
|
|
104
|
+
drift-import-fan-in = "raise_cli.gates.drift.import_fan_in:ImportFanInGate"
|
|
105
|
+
drift-parallel-siblings = "raise_cli.gates.drift.parallel_siblings:ParallelSiblingGate"
|
|
106
|
+
drift-auth-fan-out = "raise_cli.gates.drift.auth_fan_out:AuthorizationFanOutGate"
|
|
107
|
+
ar-story = "raise_cli.gates.ar.story_gate:ArchitectureReviewGate"
|
|
108
|
+
ar-bugfix = "raise_cli.gates.ar.bugfix_gate:BugfixArchitectureReviewGate"
|
|
109
|
+
epic-close-drift = "raise_cli.gates.drift.epic_close:EpicCloseGate"
|
|
92
110
|
|
|
93
111
|
[project.entry-points."rai.doctor.checks"]
|
|
94
112
|
environment = "raise_cli.doctor.checks.environment:EnvironmentCheck"
|
|
95
113
|
project = "raise_cli.doctor.checks.project:ProjectCheck"
|
|
96
114
|
developer = "raise_cli.doctor.checks.developer:DeveloperCheck"
|
|
97
115
|
adapters = "raise_cli.doctor.checks.adapters:AdapterDoctorCheck"
|
|
116
|
+
runtimes = "raise_cli.doctor.checks.runtimes:RuntimesCheck"
|
|
98
117
|
|
|
99
118
|
[project.entry-points."rai.adapters.pm"]
|
|
100
119
|
filesystem = "raise_cli.adapters.filesystem:FilesystemPMAdapter"
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"""Discover agent session_id via runtime-agnostic priority chain.
|
|
2
|
+
|
|
3
|
+
Resolution order:
|
|
4
|
+
1. RAISE_AGENT_SESSION_ID (explicit, set by any runtime adapter)
|
|
5
|
+
2. RAISE_CC_SESSION_ID (Claude Code backward compat)
|
|
6
|
+
3. CC port discovery (CLAUDE_CODE_SSE_PORT → cc.port, unambiguous match only)
|
|
7
|
+
4. Terminal bindings (PPID ancestry → _terminal_bindings.json)
|
|
8
|
+
"""
|
|
9
|
+
|
|
10
|
+
from __future__ import annotations
|
|
11
|
+
|
|
12
|
+
import json
|
|
13
|
+
import os
|
|
14
|
+
from pathlib import Path
|
|
15
|
+
|
|
16
|
+
_SESSIONS_DIR = Path(".raise") / "rai" / "sessions"
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def discover_agent_session_id() -> str | None:
|
|
20
|
+
"""Resolve session ID from any supported runtime.
|
|
21
|
+
|
|
22
|
+
Priority chain ensures backward compatibility while enabling
|
|
23
|
+
new runtimes (Hermes, Codex) to participate in session correlation.
|
|
24
|
+
"""
|
|
25
|
+
agent_sid = os.environ.get("RAISE_AGENT_SESSION_ID", "").strip()
|
|
26
|
+
if agent_sid:
|
|
27
|
+
return agent_sid
|
|
28
|
+
|
|
29
|
+
cc_sid = os.environ.get("RAISE_CC_SESSION_ID", "").strip()
|
|
30
|
+
if cc_sid:
|
|
31
|
+
return cc_sid
|
|
32
|
+
|
|
33
|
+
port_sid = _discover_via_cc_port()
|
|
34
|
+
if port_sid:
|
|
35
|
+
return port_sid
|
|
36
|
+
|
|
37
|
+
return _discover_via_terminal_bindings()
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def discover_mission_for_session(cc_session_id: str) -> str | None:
|
|
41
|
+
"""Return the mission bound to *cc_session_id* in SQLite, or None.
|
|
42
|
+
|
|
43
|
+
Uses the shared raise.db so the lookup works across worktrees and
|
|
44
|
+
concurrent CC sessions without PID navigation.
|
|
45
|
+
"""
|
|
46
|
+
try:
|
|
47
|
+
from pathlib import Path as _Path
|
|
48
|
+
|
|
49
|
+
from raise_cli.session.mission_binding import get_mission_for_session
|
|
50
|
+
|
|
51
|
+
return get_mission_for_session(_Path.cwd(), cc_session_id)
|
|
52
|
+
except Exception:
|
|
53
|
+
return None
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def discover_agent_runtime() -> str:
|
|
57
|
+
"""Resolve the active agent runtime identifier.
|
|
58
|
+
|
|
59
|
+
Resolution: $RAISE_AGENT_RUNTIME > CC-specific env detection > "unknown".
|
|
60
|
+
"""
|
|
61
|
+
explicit = os.environ.get("RAISE_AGENT_RUNTIME", "").strip()
|
|
62
|
+
if explicit:
|
|
63
|
+
return explicit
|
|
64
|
+
|
|
65
|
+
if os.environ.get("RAISE_CC_SESSION_ID", "").strip():
|
|
66
|
+
return "claude_code"
|
|
67
|
+
|
|
68
|
+
if _discover_via_cc_port():
|
|
69
|
+
return "claude_code"
|
|
70
|
+
|
|
71
|
+
if _discover_via_terminal_bindings():
|
|
72
|
+
return "claude_code"
|
|
73
|
+
|
|
74
|
+
return "unknown"
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
def _discover_via_cc_port() -> str | None:
|
|
78
|
+
"""CC-specific: match CLAUDE_CODE_SSE_PORT to session dir's cc.port file.
|
|
79
|
+
|
|
80
|
+
Returns the matching session ID only when exactly one session matches the
|
|
81
|
+
port. Returns None when the match is ambiguous (multiple sessions share the
|
|
82
|
+
same port, which happens during multi-agent runs where each subagent session
|
|
83
|
+
also writes cc.port). Ambiguous cases are resolved by the terminal-bindings
|
|
84
|
+
fallback instead.
|
|
85
|
+
"""
|
|
86
|
+
port = os.environ.get("CLAUDE_CODE_SSE_PORT", "").strip()
|
|
87
|
+
if not port:
|
|
88
|
+
return None
|
|
89
|
+
sessions_dir = Path.cwd() / _SESSIONS_DIR
|
|
90
|
+
if not sessions_dir.exists():
|
|
91
|
+
return None
|
|
92
|
+
matches: list[str] = []
|
|
93
|
+
for sess_dir in sessions_dir.iterdir():
|
|
94
|
+
if not sess_dir.is_dir():
|
|
95
|
+
continue
|
|
96
|
+
port_file = sess_dir / "cc.port"
|
|
97
|
+
if port_file.exists() and port_file.read_text().strip() == port:
|
|
98
|
+
matches.append(sess_dir.name)
|
|
99
|
+
return matches[0] if len(matches) == 1 else None
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
def _get_parent_pid(pid: int) -> int | None:
|
|
103
|
+
"""Return the parent PID of *pid* via /proc (Linux only)."""
|
|
104
|
+
try:
|
|
105
|
+
status = Path(f"/proc/{pid}/status").read_text()
|
|
106
|
+
for line in status.splitlines():
|
|
107
|
+
if line.startswith("PPid:"):
|
|
108
|
+
return int(line.split()[1])
|
|
109
|
+
return None
|
|
110
|
+
except (FileNotFoundError, ValueError, PermissionError, OSError):
|
|
111
|
+
return None
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
def _discover_via_terminal_bindings() -> str | None:
|
|
115
|
+
"""Resolve session ID by walking the PID ancestry to the CC process.
|
|
116
|
+
|
|
117
|
+
The SessionStart hook writes ``{cc_pid: {session_id: ...}}`` to
|
|
118
|
+
``_terminal_bindings.json``. From within a Bash tool call the CC process is
|
|
119
|
+
the grandparent: ``rai`` → ``bash`` → ``CC``. Reading the grandparent PID
|
|
120
|
+
and looking it up in the bindings gives the correct session even when
|
|
121
|
+
multiple sessions share the same SSE port.
|
|
122
|
+
"""
|
|
123
|
+
try:
|
|
124
|
+
bash_pid = os.getppid()
|
|
125
|
+
cc_pid = _get_parent_pid(bash_pid)
|
|
126
|
+
if cc_pid is None:
|
|
127
|
+
return None
|
|
128
|
+
bindings_file = Path.cwd() / _SESSIONS_DIR / "_terminal_bindings.json"
|
|
129
|
+
if not bindings_file.exists():
|
|
130
|
+
return None
|
|
131
|
+
bindings: dict[str, dict[str, object]] = json.loads(bindings_file.read_text())
|
|
132
|
+
entry = bindings.get(str(cc_pid))
|
|
133
|
+
if entry:
|
|
134
|
+
sid = entry.get("session_id")
|
|
135
|
+
if sid:
|
|
136
|
+
return str(sid)
|
|
137
|
+
return None
|
|
138
|
+
except Exception:
|
|
139
|
+
return None
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"""Backward compat stub — use _agent_session instead (RAISE-2779)."""
|
|
2
|
+
|
|
3
|
+
from raise_cli._agent_session import discover_agent_session_id
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
def discover_cc_session_id() -> str | None:
|
|
7
|
+
"""Deprecated: use discover_agent_session_id() instead."""
|
|
8
|
+
return discover_agent_session_id()
|