raise-cli 3.0.0a1__tar.gz → 3.0.0a2__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-3.0.0a1 → raise_cli-3.0.0a2}/.gitignore +22 -2
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/PKG-INFO +5 -8
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/README.md +1 -4
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/pyproject.toml +5 -6
- raise_cli-3.0.0a2/src/raise_cli/_cc_session.py +30 -0
- raise_cli-3.0.0a2/src/raise_cli/adapters/composite_docs.py +180 -0
- raise_cli-3.0.0a2/src/raise_cli/adapters/composite_pm.py +500 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/confluence_client.py +21 -5
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/confluence_config.py +7 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/confluence_config_gen.py +1 -1
- raise_cli-3.0.0a2/src/raise_cli/adapters/confluence_markdown.py +120 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/filesystem_adapter.py +3 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/jira_adapter.py +53 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/jira_client.py +15 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/jira_config.py +10 -4
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/jira_config_gen.py +51 -0
- raise_cli-3.0.0a2/src/raise_cli/adapters/ledger_aware.py +96 -0
- raise_cli-3.0.0a2/src/raise_cli/adapters/pending_ops.py +131 -0
- raise_cli-3.0.0a2/src/raise_cli/adapters/sync_ledger.py +60 -0
- raise_cli-3.0.0a2/src/raise_cli/backlog/reconcile.py +228 -0
- raise_cli-3.0.0a2/src/raise_cli/backlog/scanner.py +225 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/backlog/sync.py +0 -2
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/_resolve.py +133 -13
- raise_cli-3.0.0a2/src/raise_cli/cli/commands/adapter_setup.py +370 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/adapters.py +3 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/backlog.py +194 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/docs.py +97 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/init.py +282 -14
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/journal.py +32 -11
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/learn.py +6 -2
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/release.py +13 -17
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/session.py +31 -13
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/signal.py +170 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/main.py +3 -4
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/builder.py +14 -0
- raise_cli-3.0.0a2/src/raise_cli/context/loaders/documents.py +158 -0
- raise_cli-3.0.0a2/src/raise_cli/docs/__init__.py +10 -0
- raise_cli-3.0.0a2/src/raise_cli/docs/migrate.py +173 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/checks/adapters.py +11 -8
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/checks/project.py +23 -0
- raise_cli-3.0.0a2/src/raise_cli/gates/builtin/_runner.py +167 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/extractor.py +7 -2
- raise_cli-3.0.0a2/src/raise_cli/graph/query_backend.py +124 -0
- raise_cli-3.0.0a2/src/raise_cli/hooks/builtin/memory.py +40 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/events.py +24 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/mcp/__init__.py +1 -9
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/mcp/bridge.py +5 -20
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/learning.py +10 -3
- raise_cli-3.0.0a2/src/raise_cli/memory/patterns_backend.py +191 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/detection.py +91 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/governance.py +1 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/instructions.py +6 -5
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/manifest.py +39 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/_telemetry.py +41 -2
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/cli.py +25 -7
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/engine.py +2 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/gates.py +1 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/mcp_server.py +310 -173
- raise_cli-3.0.0a2/src/raise_cli/pipeline/run_store.py +154 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/publish/check.py +46 -45
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/identity/core.yaml +1 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/bundle.py +3 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/close.py +4 -7
- raise_cli-3.0.0a2/src/raise_cli/session/context_backend.py +108 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/derive.py +1 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/doctor.py +39 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/index.py +28 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/monitor.py +6 -6
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/registry.py +3 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/state.py +1 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/__init__.py +8 -4
- raise_cli-3.0.0a2/src/raise_cli/skills_base/rai-adapter-setup/SKILL.md +135 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-architecture-review/SKILL.md +3 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-analyse/SKILL.md +5 -5
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-close/SKILL.md +5 -5
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-fix/SKILL.md +1 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-plan/SKILL.md +9 -9
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-review/SKILL.md +11 -13
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-run/SKILL.md +26 -25
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-start/SKILL.md +8 -8
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-bugfix-triage/SKILL.md +6 -6
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-debug/SKILL.md +2 -2
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-discover/SKILL.md +2 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +2 -4
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +5 -4
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +3 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +1 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +7 -3
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-project-create/SKILL.md +2 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-quality-review/SKILL.md +3 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-session-diary/SKILL.md +6 -5
- raise_cli-3.0.0a2/src/raise_cli/skills_base/rai-skill-create/SKILL.md +140 -0
- raise_cli-3.0.0a2/src/raise_cli/skills_base/rai-skillset-manage/SKILL.md +151 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-close/SKILL.md +1 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-design/SKILL.md +1 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +3 -2
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +1 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-review/SKILL.md +7 -5
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-start/SKILL.md +2 -1
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/telemetry/schemas.py +12 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/__init__.py +52 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/backfill.py +152 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/emitter.py +272 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/ref_resolver.py +55 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/retry_queue.py +139 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/schemas.py +77 -0
- raise_cli-3.0.0a2/src/raise_cli/work_events/translator.py +196 -0
- raise_cli-3.0.0a1/src/raise_cli/adapters/composite_docs.py +0 -92
- raise_cli-3.0.0a1/src/raise_cli/cli/commands/publish.py +0 -80
- raise_cli-3.0.0a1/src/raise_cli/gates/builtin/_runner.py +0 -72
- raise_cli-3.0.0a1/src/raise_cli/hooks/builtin/memory.py +0 -116
- raise_cli-3.0.0a1/src/raise_cli/skills_base/rai-adapter-setup/SKILL.md +0 -221
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/__main__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/confluence_adapter.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/confluence_discovery.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/confluence_exceptions.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/adapter.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/filesystem.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/filesystem_docs.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/filesystem_models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/jira_discovery.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/jira_exceptions.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/models/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/models/docs.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/models/governance.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/models/health.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/models/pm.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/protocols.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/adapters/sync.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/claude.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/artifacts/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/artifacts/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/artifacts/reader.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/artifacts/renderer.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/artifacts/story_design.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/artifacts/writer.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/artifact.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/base.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/discover.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/doctor.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/gate.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/graph.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/info.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/memory.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/pattern.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/skill.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/commands/skill_set.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/cli/extensions.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compat.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/controls.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/evidence.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/extractors/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/extractors/git.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/loader.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/compliance/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/agent_registry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/agents.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/paths.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/config/settings.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/analyzers/python.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/analyzers/signals.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/analyzers/typescript.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/extractors/relationships.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/extractors/structure.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/loaders/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/loaders/architecture.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/loaders/artifacts.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/loaders/components.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/loaders/identity.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/context/loaders/memory.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/core/files.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/core/text.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/discovery/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/discovery/analyzer.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/discovery/scanner.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/checks/developer.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/checks/environment.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/fix.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/report.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/doctor/runner.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/exceptions.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/builtin/coverage.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/builtin/format.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/hook.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/gates/registry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/_convert.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/adr.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/backlog.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/constitution.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/epic.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/glossary.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/guardrails.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/prd.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/roadmap.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/governance/parsers/vision.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/graph/backends/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/graph/backends/dual.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/graph/backends/pending.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/hooks/registry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/loader.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/models.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/push.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/memory/writer.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/bootstrap.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/memory_md.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/migration.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/profile.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/profile_portability.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/skill_conflict.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/skills.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/console.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/formatters/graph.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/formatters/skill.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/output/symbols.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/dispatch.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/executor.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/loader.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/pipelines_base/bugfix.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/pipelines_base/epic.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/pipelines_base/hotfix.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/pipelines_base/story.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/prompt.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/state.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/templates/adversarial-ar.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/templates/adversarial-qr.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/pipeline/worktree.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/publish/changelog.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/domain-model.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/system-context.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/system-design.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/architecture/system-design.yaml +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/bundle_data.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/bundle_formatters.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/identity.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/journal.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/prefix.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/protocols.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/schema.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/skillsets.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills/validator.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-close/templates/retrospective.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-design/templates/design.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-design/templates/scope.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-docs/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-run/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-epic-start/templates/brief.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-session-start/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-run/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-story-start/templates/story.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/telemetry/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/telemetry/writer.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/viz/__init__.py +0 -0
- {raise_cli-3.0.0a1 → raise_cli-3.0.0a2}/src/raise_cli/viz/generator.py +0 -0
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
|
|
7
7
|
# Claude Code local settings (user-specific)
|
|
8
8
|
.claude/settings.local.json
|
|
9
|
-
CLAUDE.local.md
|
|
10
9
|
.claude/worktrees/
|
|
11
10
|
.claude/projects/
|
|
12
11
|
|
|
@@ -24,7 +23,7 @@ daemon.yaml
|
|
|
24
23
|
.raise/cache/
|
|
25
24
|
.raise/confluence-pages.yaml
|
|
26
25
|
.raise/backlog/
|
|
27
|
-
.raise/artifacts/
|
|
26
|
+
# .raise/artifacts/ — tracked (story-design YAMLs are versioned artifacts)
|
|
28
27
|
|
|
29
28
|
# Pipeline state (environment-specific, PAT-E-594)
|
|
30
29
|
.rai-state/
|
|
@@ -46,6 +45,10 @@ dev/output/
|
|
|
46
45
|
# RaiSE sync state (per-instance JIRA mappings, not shared)
|
|
47
46
|
.raise/rai/sync/
|
|
48
47
|
|
|
48
|
+
# Per-session env context written by Rai skills, read by CC hooks + MCP tool
|
|
49
|
+
# Namespaced by CC session_id (RAISE-1982) — isolates concurrent CC sessions.
|
|
50
|
+
.raise/rai/sessions/
|
|
51
|
+
|
|
49
52
|
# Temporary files
|
|
50
53
|
req.txt
|
|
51
54
|
*.tmp
|
|
@@ -141,3 +144,20 @@ dev/transcripts/
|
|
|
141
144
|
# Prevent symlink artifacts from being tracked at root
|
|
142
145
|
/es/
|
|
143
146
|
work/research/
|
|
147
|
+
|
|
148
|
+
# Ephemeral debug artifacts (Playwright MCP snapshots, root-level screenshots)
|
|
149
|
+
.playwright-mcp/
|
|
150
|
+
.claude/scheduled_tasks.lock
|
|
151
|
+
/issue-*.png
|
|
152
|
+
/panel-*.png
|
|
153
|
+
/s7-*.png
|
|
154
|
+
/app-actions-menu.yml
|
|
155
|
+
/issue-layout.yml
|
|
156
|
+
/layout-editor.yml
|
|
157
|
+
/menu-open.yml
|
|
158
|
+
/raise-*.yml
|
|
159
|
+
|
|
160
|
+
# Per-developer docker compose override (e.g., expose postgres:5432 for e2e).
|
|
161
|
+
# See dev/sops/raise-server-local.md § Running e2e tests locally.
|
|
162
|
+
/docker-compose.override.yaml
|
|
163
|
+
/docker-compose.override.yml
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: raise-cli
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.0a2
|
|
4
4
|
Summary: RaiSE CLI - Reliable AI Software Engineering governance framework
|
|
5
5
|
Project-URL: Homepage, https://raiseframework.ai
|
|
6
6
|
Project-URL: Documentation, https://docs.raiseframework.ai
|
|
@@ -20,12 +20,13 @@ Classifier: Topic :: Software Development :: Quality Assurance
|
|
|
20
20
|
Requires-Python: >=3.12
|
|
21
21
|
Requires-Dist: httpx>=0.27.0
|
|
22
22
|
Requires-Dist: logfire-api>=4.0
|
|
23
|
+
Requires-Dist: mcp<2,>=1.26
|
|
23
24
|
Requires-Dist: networkx>=3.6.1
|
|
24
25
|
Requires-Dist: pydantic-settings>=2.2.0
|
|
25
26
|
Requires-Dist: pydantic>=2.6.0
|
|
26
27
|
Requires-Dist: python-dotenv>=1.0.0
|
|
27
28
|
Requires-Dist: pyyaml>=6.0.1
|
|
28
|
-
Requires-Dist: raise-core
|
|
29
|
+
Requires-Dist: raise-core>=3.0.0a2
|
|
29
30
|
Requires-Dist: rich>=13.7.0
|
|
30
31
|
Requires-Dist: tree-sitter-javascript>=0.25.0
|
|
31
32
|
Requires-Dist: tree-sitter-language-pack>=0.13.0
|
|
@@ -38,12 +39,11 @@ Provides-Extra: atlassian
|
|
|
38
39
|
Requires-Dist: atlassian-python-api>=3.41.0; extra == 'atlassian'
|
|
39
40
|
Provides-Extra: confluence
|
|
40
41
|
Requires-Dist: atlassian-python-api>=3.41.0; extra == 'confluence'
|
|
42
|
+
Requires-Dist: markdown>=3.6; extra == 'confluence'
|
|
41
43
|
Provides-Extra: csharp
|
|
42
44
|
Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == 'csharp'
|
|
43
45
|
Provides-Extra: jira
|
|
44
46
|
Requires-Dist: atlassian-python-api>=3.41.0; extra == 'jira'
|
|
45
|
-
Provides-Extra: mcp
|
|
46
|
-
Requires-Dist: mcp<2,>=1.26; extra == 'mcp'
|
|
47
47
|
Provides-Extra: observability
|
|
48
48
|
Requires-Dist: logfire>=4.0; extra == 'observability'
|
|
49
49
|
Requires-Dist: opentelemetry-api>=1.20; extra == 'observability'
|
|
@@ -76,11 +76,8 @@ Optional integrations:
|
|
|
76
76
|
# Jira + Confluence adapters
|
|
77
77
|
pip install "raise-cli[jira,confluence]"
|
|
78
78
|
|
|
79
|
-
# MCP server support
|
|
80
|
-
pip install "raise-cli[mcp]"
|
|
81
|
-
|
|
82
79
|
# All extras
|
|
83
|
-
pip install "raise-cli[jira,confluence,
|
|
80
|
+
pip install "raise-cli[jira,confluence,csharp,observability]"
|
|
84
81
|
```
|
|
85
82
|
|
|
86
83
|
Requires Python 3.12 or 3.13.
|
|
@@ -24,11 +24,8 @@ Optional integrations:
|
|
|
24
24
|
# Jira + Confluence adapters
|
|
25
25
|
pip install "raise-cli[jira,confluence]"
|
|
26
26
|
|
|
27
|
-
# MCP server support
|
|
28
|
-
pip install "raise-cli[mcp]"
|
|
29
|
-
|
|
30
27
|
# All extras
|
|
31
|
-
pip install "raise-cli[jira,confluence,
|
|
28
|
+
pip install "raise-cli[jira,confluence,csharp,observability]"
|
|
32
29
|
```
|
|
33
30
|
|
|
34
31
|
Requires Python 3.12 or 3.13.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "raise-cli"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.0a2"
|
|
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.0a2",
|
|
25
25
|
"typer>=0.12.0",
|
|
26
26
|
"rich>=13.7.0",
|
|
27
27
|
"pydantic>=2.6.0",
|
|
@@ -37,12 +37,10 @@ dependencies = [
|
|
|
37
37
|
"tree-sitter-language-pack>=0.13.0",
|
|
38
38
|
"logfire-api>=4.0",
|
|
39
39
|
"httpx>=0.27.0",
|
|
40
|
+
"mcp>=1.26,<2",
|
|
40
41
|
]
|
|
41
42
|
|
|
42
43
|
[project.optional-dependencies]
|
|
43
|
-
mcp = [
|
|
44
|
-
"mcp>=1.26,<2",
|
|
45
|
-
]
|
|
46
44
|
observability = [
|
|
47
45
|
"logfire>=4.0",
|
|
48
46
|
"opentelemetry-api>=1.20",
|
|
@@ -56,6 +54,7 @@ atlassian = [
|
|
|
56
54
|
]
|
|
57
55
|
confluence = [
|
|
58
56
|
"atlassian-python-api>=3.41.0",
|
|
57
|
+
"markdown>=3.6",
|
|
59
58
|
]
|
|
60
59
|
jira = [
|
|
61
60
|
"atlassian-python-api>=3.41.0",
|
|
@@ -84,7 +83,7 @@ glossary = "raise_cli.governance.parsers.glossary:GlossaryParser"
|
|
|
84
83
|
[project.entry-points."rai.hooks"]
|
|
85
84
|
telemetry = "raise_cli.hooks.builtin.telemetry:TelemetryHook"
|
|
86
85
|
gate-bridge = "raise_cli.hooks.builtin.gate_bridge:GateBridgeHook"
|
|
87
|
-
|
|
86
|
+
work-events = "raise_cli.work_events.emitter:ServerEmitHook"
|
|
88
87
|
|
|
89
88
|
[project.entry-points."rai.gates"]
|
|
90
89
|
tests = "raise_cli.gates.builtin.tests:TestGate"
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"""Discover CC session_id via CLAUDE_CODE_SSE_PORT matching (RAISE-1986)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import os
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
_SESSIONS_DIR = Path(".raise") / "rai" / "sessions"
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def discover_cc_session_id() -> str | None:
|
|
12
|
+
"""Match $CLAUDE_CODE_SSE_PORT to a session dir's cc.port file.
|
|
13
|
+
|
|
14
|
+
Works from any subprocess spawned by CC (MCP server, CLI, skill bash)
|
|
15
|
+
because CC exports CLAUDE_CODE_SSE_PORT to every subprocess it spawns,
|
|
16
|
+
while vars written to $CLAUDE_ENV_FILE remain shell-local.
|
|
17
|
+
"""
|
|
18
|
+
port = os.environ.get("CLAUDE_CODE_SSE_PORT", "").strip()
|
|
19
|
+
if not port:
|
|
20
|
+
return None
|
|
21
|
+
sessions_dir = Path.cwd() / _SESSIONS_DIR
|
|
22
|
+
if not sessions_dir.exists():
|
|
23
|
+
return None
|
|
24
|
+
for sess_dir in sessions_dir.iterdir():
|
|
25
|
+
if not sess_dir.is_dir():
|
|
26
|
+
continue
|
|
27
|
+
port_file = sess_dir / "cc.port"
|
|
28
|
+
if port_file.exists() and port_file.read_text().strip() == port:
|
|
29
|
+
return sess_dir.name
|
|
30
|
+
return None
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
"""Composite documentation target — delegates to multiple targets.
|
|
2
|
+
|
|
3
|
+
Publishes to ALL targets (e.g. filesystem + Confluence). Reads (get_page,
|
|
4
|
+
search, health) delegate to the remote target (last in list — typically Confluence).
|
|
5
|
+
|
|
6
|
+
Filesystem is first for durability: local copy always saved.
|
|
7
|
+
Result prefers last successful publish (remote URL over local path).
|
|
8
|
+
If remote fails, returns success with warning (local copy is the guarantee).
|
|
9
|
+
|
|
10
|
+
S1700.6 — Retrofit with PendingOpsLog:
|
|
11
|
+
- On remote failure with filesystem success, append pending op (queue for replay).
|
|
12
|
+
- Before each publish, attempt best-effort flush of existing pending ops.
|
|
13
|
+
- `pending_ops=None` preserves pre-S1700.6 behavior (backward compat).
|
|
14
|
+
|
|
15
|
+
RAISE-1051 (S1051.7) | RAISE-1795 (S1700.6)
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
from __future__ import annotations
|
|
19
|
+
|
|
20
|
+
import logging
|
|
21
|
+
from typing import Any
|
|
22
|
+
|
|
23
|
+
from raise_cli.adapters.models.docs import PageContent, PageSummary, PublishResult
|
|
24
|
+
from raise_cli.adapters.models.health import AdapterHealth
|
|
25
|
+
from raise_cli.adapters.pending_ops import PendingOpsLog
|
|
26
|
+
|
|
27
|
+
logger = logging.getLogger(__name__)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class CompositeDocTarget:
|
|
31
|
+
"""Delegates to multiple DocumentationTargets.
|
|
32
|
+
|
|
33
|
+
- publish: calls all targets; returns last successful result (remote preferred)
|
|
34
|
+
- get_page / search / health: delegate to remote (last) target
|
|
35
|
+
- Filesystem first for durability, Confluence last for the URL
|
|
36
|
+
- Optional pending_ops queues failed remote publishes for later replay (S1700.6)
|
|
37
|
+
"""
|
|
38
|
+
|
|
39
|
+
def __init__(
|
|
40
|
+
self,
|
|
41
|
+
targets: list[Any],
|
|
42
|
+
pending_ops: PendingOpsLog | None = None,
|
|
43
|
+
) -> None:
|
|
44
|
+
self._targets = targets
|
|
45
|
+
self._remote = targets[-1] # last target = remote (Confluence)
|
|
46
|
+
self._pending_ops = pending_ops
|
|
47
|
+
|
|
48
|
+
def can_publish(self, doc_type: str, metadata: dict[str, Any]) -> bool:
|
|
49
|
+
"""True if any wrapped target can publish."""
|
|
50
|
+
return any(t.can_publish(doc_type, metadata) for t in self._targets)
|
|
51
|
+
|
|
52
|
+
def publish(
|
|
53
|
+
self, doc_type: str, content: str, metadata: dict[str, Any]
|
|
54
|
+
) -> PublishResult:
|
|
55
|
+
"""Publish to all accepting targets. Return best result.
|
|
56
|
+
|
|
57
|
+
Prefers last successful result (remote URL). If remote fails but
|
|
58
|
+
local succeeded, returns success with sync-pending warning.
|
|
59
|
+
|
|
60
|
+
When `pending_ops` is configured (S1700.6):
|
|
61
|
+
- Before publishing, attempt best-effort flush of queued ops.
|
|
62
|
+
- On remote failure with filesystem success, append a pending op.
|
|
63
|
+
"""
|
|
64
|
+
# S1700.6: best-effort flush of pending ops (non-blocking)
|
|
65
|
+
self._flush_pending()
|
|
66
|
+
|
|
67
|
+
results, failures, fs_result, remote_failed = self._publish_to_targets(
|
|
68
|
+
doc_type, content, metadata
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# S1700.6: queue pending op when filesystem (canonical) succeeded but remote failed
|
|
72
|
+
if (
|
|
73
|
+
self._pending_ops is not None
|
|
74
|
+
and remote_failed
|
|
75
|
+
and fs_result is not None
|
|
76
|
+
and fs_result.success
|
|
77
|
+
):
|
|
78
|
+
self._pending_ops.append(
|
|
79
|
+
op="publish",
|
|
80
|
+
key=str(metadata.get("key") or metadata.get("title") or doc_type),
|
|
81
|
+
args={"doc_type": doc_type, "content": content, "metadata": metadata},
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
return self._reduce_results(results, failures)
|
|
85
|
+
|
|
86
|
+
def _publish_to_targets(
|
|
87
|
+
self, doc_type: str, content: str, metadata: dict[str, Any]
|
|
88
|
+
) -> tuple[list[PublishResult], list[str], PublishResult | None, bool]:
|
|
89
|
+
"""Publish to each accepting target, tracking results, failures, and remote status."""
|
|
90
|
+
results: list[PublishResult] = []
|
|
91
|
+
failures: list[str] = []
|
|
92
|
+
fs_result: PublishResult | None = None
|
|
93
|
+
remote_failed = False
|
|
94
|
+
last_idx = len(self._targets) - 1
|
|
95
|
+
|
|
96
|
+
for idx, target in enumerate(self._targets):
|
|
97
|
+
if not target.can_publish(doc_type, metadata):
|
|
98
|
+
continue
|
|
99
|
+
try:
|
|
100
|
+
result: PublishResult = target.publish(doc_type, content, metadata)
|
|
101
|
+
results.append(result)
|
|
102
|
+
if idx == 0:
|
|
103
|
+
fs_result = result
|
|
104
|
+
if not result.success:
|
|
105
|
+
failures.append(result.message)
|
|
106
|
+
if idx == last_idx:
|
|
107
|
+
remote_failed = True
|
|
108
|
+
except Exception as exc:
|
|
109
|
+
logger.warning(
|
|
110
|
+
"Composite publish failed on %s: %s",
|
|
111
|
+
type(target).__name__,
|
|
112
|
+
exc,
|
|
113
|
+
)
|
|
114
|
+
failures.append(str(exc))
|
|
115
|
+
if idx == last_idx:
|
|
116
|
+
remote_failed = True
|
|
117
|
+
|
|
118
|
+
return results, failures, fs_result, remote_failed
|
|
119
|
+
|
|
120
|
+
@staticmethod
|
|
121
|
+
def _reduce_results(
|
|
122
|
+
results: list[PublishResult], failures: list[str]
|
|
123
|
+
) -> PublishResult:
|
|
124
|
+
"""Reduce per-target results into a single PublishResult."""
|
|
125
|
+
if not results:
|
|
126
|
+
return PublishResult(
|
|
127
|
+
success=False, message="No target accepted this doc_type"
|
|
128
|
+
)
|
|
129
|
+
successful = [r for r in results if r.success]
|
|
130
|
+
if not successful:
|
|
131
|
+
return results[0]
|
|
132
|
+
best = successful[-1] # last success = remote if available
|
|
133
|
+
if failures:
|
|
134
|
+
return PublishResult(
|
|
135
|
+
success=True,
|
|
136
|
+
url=best.url,
|
|
137
|
+
message=f"{best.message} (sync pending: {'; '.join(failures)})",
|
|
138
|
+
)
|
|
139
|
+
return best
|
|
140
|
+
|
|
141
|
+
def _flush_pending(self) -> None:
|
|
142
|
+
"""Attempt to replay pending ops against remote. Best-effort, never raises."""
|
|
143
|
+
if self._pending_ops is None:
|
|
144
|
+
return
|
|
145
|
+
try:
|
|
146
|
+
for op in list(self._pending_ops.iter()):
|
|
147
|
+
args = op.args
|
|
148
|
+
doc_type = str(args.get("doc_type", ""))
|
|
149
|
+
content = str(args.get("content", ""))
|
|
150
|
+
metadata: dict[str, Any] = args.get("metadata") or {}
|
|
151
|
+
try:
|
|
152
|
+
replay_result = self._remote.publish(doc_type, content, metadata)
|
|
153
|
+
if (
|
|
154
|
+
isinstance(replay_result, PublishResult)
|
|
155
|
+
and replay_result.success
|
|
156
|
+
):
|
|
157
|
+
self._pending_ops.mark_done(op.id)
|
|
158
|
+
else:
|
|
159
|
+
logger.info(
|
|
160
|
+
"Pending op %s replay returned failure; keeping in queue",
|
|
161
|
+
op.id,
|
|
162
|
+
)
|
|
163
|
+
except Exception as exc: # noqa: BLE001 — replay failure = keep queued
|
|
164
|
+
logger.warning(
|
|
165
|
+
"Pending op %s replay raised: %s", op.id, exc, exc_info=True
|
|
166
|
+
)
|
|
167
|
+
except Exception: # noqa: BLE001 — flush errors never block new publish
|
|
168
|
+
logger.exception("Pending ops flush failed")
|
|
169
|
+
|
|
170
|
+
def get_page(self, identifier: str) -> PageContent:
|
|
171
|
+
"""Delegate to remote (last) target."""
|
|
172
|
+
return self._remote.get_page(identifier)
|
|
173
|
+
|
|
174
|
+
def search(self, query: str, limit: int = 10) -> list[PageSummary]:
|
|
175
|
+
"""Delegate to remote (last) target."""
|
|
176
|
+
return self._remote.search(query, limit=limit)
|
|
177
|
+
|
|
178
|
+
def health(self) -> AdapterHealth:
|
|
179
|
+
"""Delegate to remote (last) target."""
|
|
180
|
+
return self._remote.health()
|