raise-cli 2.2.2__tar.gz → 2.2.3__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.2.2 → raise_cli-2.2.3}/.gitignore +6 -0
- raise_cli-2.2.3/PKG-INFO +250 -0
- raise_cli-2.2.3/README.md +197 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/pyproject.toml +16 -19
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/__init__.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/sync.py +2 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/adapters.py +2 -115
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/base.py +2 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/graph.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/info.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/memory.py +9 -11
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/pattern.py +10 -10
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/publish.py +2 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/release.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/session.py +5 -7
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/signal.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/skill_set.py +0 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/main.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/analyzers/python.py +2 -8
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/builder.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/discovery/analyzer.py +2 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/discovery/scanner.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/fix.py +5 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/registry.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/extractor.py +5 -3
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/adr.py +9 -9
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/registry.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/mcp/bridge.py +2 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/memory/writer.py +6 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/migration.py +2 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/profile.py +3 -3
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/publish/changelog.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/architecture/system-design.md +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/session/state.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/skillsets.py +1 -1
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-plan/SKILL.md +2 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-mcp-add/SKILL.md +1 -2
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-design/SKILL.md +10 -10
- raise_cli-2.2.3/src/raise_core/__init__.py +12 -0
- raise_cli-2.2.3/src/raise_core/governance/__init__.py +7 -0
- raise_cli-2.2.3/src/raise_core/graph/__init__.py +6 -0
- raise_cli-2.2.3/src/raise_core/graph/backends/__init__.py +1 -0
- raise_cli-2.2.3/src/raise_core/graph/backends/filesystem.py +79 -0
- raise_cli-2.2.3/src/raise_core/graph/backends/models.py +20 -0
- raise_cli-2.2.3/src/raise_core/graph/backends/protocol.py +27 -0
- raise_cli-2.2.3/src/raise_core/graph/engine.py +236 -0
- raise_cli-2.2.3/src/raise_core/graph/models.py +208 -0
- raise_cli-2.2.3/src/raise_core/graph/query.py +488 -0
- raise_cli-2.2.3/src/raise_core/workflow/__init__.py +9 -0
- raise_cli-2.2.2/PKG-INFO +0 -433
- raise_cli-2.2.2/README.md +0 -375
- raise_cli-2.2.2/src/raise_cli/adapters/mcp_confluence.py +0 -246
- raise_cli-2.2.2/src/raise_cli/adapters/mcp_jira.py +0 -419
- raise_cli-2.2.2/src/raise_cli/hooks/builtin/jira_sync.py +0 -127
- {raise_cli-2.2.2 → raise_cli-2.2.3}/LICENSE +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/NOTICE +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/__main__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/adapter.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/discovery.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/expressions.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/reference/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/reference/github.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/declarative/schema.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/filesystem.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/mcp_bridge.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/protocols.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/adapters/registry.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/antigravity.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/claude.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/copilot.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/copilot_plugin.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/cursor.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/roo.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/agents/windsurf.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/artifacts/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/artifacts/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/artifacts/reader.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/artifacts/renderer.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/artifacts/story_design.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/artifacts/writer.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/backlog/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/backlog/sync.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/_resolve.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/artifact.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/backlog.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/discover.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/docs.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/doctor.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/gate.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/init.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/journal.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/mcp.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/profile.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/commands/skill.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/cli/error_handler.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/compat.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/agent_plugin.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/agent_registry.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/agents.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/ide.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/paths.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/config/settings.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/analyzers/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/analyzers/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/analyzers/protocol.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/diff.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/extractors/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/context/extractors/skills.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/core/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/core/files.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/core/text.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/core/tools.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/discovery/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/discovery/drift.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/checks/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/checks/environment.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/checks/project.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/protocol.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/registry.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/report.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/doctor/runner.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/engines/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/exceptions.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/builtin/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/builtin/coverage.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/builtin/lint.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/builtin/tests.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/builtin/types.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/gates/protocol.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/_convert.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/backlog.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/constitution.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/epic.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/glossary.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/guardrails.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/prd.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/roadmap.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/governance/parsers/vision.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/graph/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/graph/backends/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/graph/backends/api.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/graph/backends/dual.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/graph/backends/pending.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/handlers/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/builtin/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/builtin/backlog.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/builtin/gate_bridge.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/builtin/memory.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/builtin/telemetry.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/emitter.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/events.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/hooks/protocol.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/mcp/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/mcp/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/mcp/registry.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/mcp/schema.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/memory/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/memory/loader.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/memory/migration.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/memory/models.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/bootstrap.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/claudemd.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/conventions.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/detection.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/governance.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/instructions.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/manifest.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/memory_md.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/skill_conflict.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/skill_manifest.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/skills.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/onboarding/workflows.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/output/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/output/console.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/output/formatters/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/output/formatters/adapters.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/output/formatters/discover.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/output/formatters/skill.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/publish/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/publish/check.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/publish/version.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/framework/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/framework/methodology.yaml +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/architecture/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/architecture/domain-model.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/architecture/system-context.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/backlog.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/guardrails.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/prd.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/governance/vision.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/identity/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/identity/core.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/identity/perspective.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/memory/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/rai_base/memory/patterns-base.jsonl +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/schemas/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/schemas/journal.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/schemas/session_state.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/session/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/session/bundle.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/session/close.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/session/journal.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/session/resolver.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/locator.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/name_checker.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/parser.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/scaffold.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/schema.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills/validator.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/contract-template.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/preamble.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-debug/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-discover/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-discover-document/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-discover-scan/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-discover-start/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-discover-validate/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-docs-update/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-doctor/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-close/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-close/templates/retrospective.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-design/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-design/templates/design.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-design/templates/scope.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-plan/_references/sequencing-strategies.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-plan/templates/plan-section.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-run/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-start/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-epic-start/templates/brief.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-mcp-remove/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-mcp-status/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-problem-shape/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-project-create/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-project-onboard/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-research/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-research/references/research-prompt-template.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-session-close/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-session-start/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-close/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-design/references/tech-design-story-v2.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-implement/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-plan/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-review/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-run/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-start/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-story-start/templates/story.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/skills_base/rai-welcome/SKILL.md +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/telemetry/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/telemetry/schemas.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/telemetry/writer.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/tier/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/tier/context.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/viz/__init__.py +0 -0
- {raise_cli-2.2.2 → raise_cli-2.2.3}/src/raise_cli/viz/generator.py +0 -0
|
@@ -19,6 +19,10 @@ CLAUDE.local.md
|
|
|
19
19
|
.raise/cache/
|
|
20
20
|
.raise/confluence-pages.yaml
|
|
21
21
|
|
|
22
|
+
# RaiSE adapter configs (contain PII — use .example templates)
|
|
23
|
+
.raise/jira.yaml
|
|
24
|
+
.raise/confluence.yaml
|
|
25
|
+
|
|
22
26
|
# RaiSE derived artifacts (rebuild with `rai memory build`)
|
|
23
27
|
.raise/rai/memory/index.json
|
|
24
28
|
|
|
@@ -109,6 +113,8 @@ site/node_modules/
|
|
|
109
113
|
site/dist/
|
|
110
114
|
site/.astro/
|
|
111
115
|
site/.wrangler/
|
|
116
|
+
docs/node_modules/
|
|
117
|
+
docs/.astro/
|
|
112
118
|
|
|
113
119
|
# Issue analysis artifacts (PDFs, images — binary, no git value)
|
|
114
120
|
dev/issues/**/*.pdf
|
raise_cli-2.2.3/PKG-INFO
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: raise-cli
|
|
3
|
+
Version: 2.2.3
|
|
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
|
+
License-File: LICENSE
|
|
12
|
+
License-File: NOTICE
|
|
13
|
+
Keywords: ai,cli,governance,methodology,software-engineering
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
21
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
22
|
+
Requires-Python: >=3.12
|
|
23
|
+
Requires-Dist: logfire-api>=4.0
|
|
24
|
+
Requires-Dist: networkx>=3.6.1
|
|
25
|
+
Requires-Dist: pydantic-settings>=2.2.0
|
|
26
|
+
Requires-Dist: pydantic>=2.6.0
|
|
27
|
+
Requires-Dist: pyyaml>=6.0.1
|
|
28
|
+
Requires-Dist: rich>=13.7.0
|
|
29
|
+
Requires-Dist: tree-sitter-javascript>=0.25.0
|
|
30
|
+
Requires-Dist: tree-sitter-language-pack>=0.13.0
|
|
31
|
+
Requires-Dist: tree-sitter-php>=0.24.1
|
|
32
|
+
Requires-Dist: tree-sitter-svelte>=1.0.2
|
|
33
|
+
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
34
|
+
Requires-Dist: tree-sitter>=0.25.2
|
|
35
|
+
Requires-Dist: typer>=0.12.0
|
|
36
|
+
Provides-Extra: csharp
|
|
37
|
+
Requires-Dist: tree-sitter-c-sharp>=0.23.1; extra == 'csharp'
|
|
38
|
+
Provides-Extra: dev
|
|
39
|
+
Requires-Dist: bandit>=1.7.8; extra == 'dev'
|
|
40
|
+
Requires-Dist: httpx>=0.27.0; extra == 'dev'
|
|
41
|
+
Requires-Dist: mcp<2,>=1.26; extra == 'dev'
|
|
42
|
+
Requires-Dist: pyright>=1.1.350; extra == 'dev'
|
|
43
|
+
Requires-Dist: pytest-cov>=4.1.0; extra == 'dev'
|
|
44
|
+
Requires-Dist: pytest>=8.0.0; extra == 'dev'
|
|
45
|
+
Requires-Dist: raise-pro; extra == 'dev'
|
|
46
|
+
Requires-Dist: raise-server; extra == 'dev'
|
|
47
|
+
Requires-Dist: ruff>=0.4.0; extra == 'dev'
|
|
48
|
+
Provides-Extra: mcp
|
|
49
|
+
Requires-Dist: mcp<2,>=1.26; extra == 'mcp'
|
|
50
|
+
Provides-Extra: observability
|
|
51
|
+
Requires-Dist: logfire>=4.0; extra == 'observability'
|
|
52
|
+
Description-Content-Type: text/markdown
|
|
53
|
+
|
|
54
|
+
# RaiSE
|
|
55
|
+
|
|
56
|
+
[](https://github.com/humansys/raise/actions/workflows/ci.yml)
|
|
57
|
+
[](https://pypi.org/project/raise-cli/)
|
|
58
|
+
[](https://pypi.org/project/raise-cli/)
|
|
59
|
+
[](LICENSE)
|
|
60
|
+
|
|
61
|
+
**Reliable AI Software Engineering** — A governance framework that makes AI-assisted development predictable, traceable, and improvable.
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
You define what to build. Rai executes with discipline. RaiSE keeps it honest.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
<p align="center">
|
|
68
|
+
<img src="https://raw.githubusercontent.com/humansys/raise/main/docs/assets/knowledge-graph.png" alt="RaiSE Knowledge Graph — neurosymbolic memory across sessions" width="700">
|
|
69
|
+
<br>
|
|
70
|
+
<em>RaiSE's knowledge graph: patterns, components, governance, and decisions — all connected.</em>
|
|
71
|
+
</p>
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## The Problem
|
|
76
|
+
|
|
77
|
+
AI coding assistants are fast but inconsistent. Without structure, you get code that works today and breaks tomorrow — no traceability, no learning, no accumulated judgment. Every session starts from zero.
|
|
78
|
+
|
|
79
|
+
## The Solution
|
|
80
|
+
|
|
81
|
+
RaiSE gives your AI assistant **methodology, memory, and gates**:
|
|
82
|
+
|
|
83
|
+
- **37 skills** that guide the full SDLC — from epic planning to story implementation to release
|
|
84
|
+
- **Validation gates** at every phase — tests, types, lint, architecture review, quality review
|
|
85
|
+
- **Cross-session memory** — patterns learned, velocity calibrated, decisions preserved
|
|
86
|
+
- **Governance as code** — constitution, guardrails, ADRs, all versioned in Git
|
|
87
|
+
- **TDD by default** — RED-GREEN-REFACTOR, no exceptions
|
|
88
|
+
|
|
89
|
+
## What It Looks Like
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
# Start your day
|
|
93
|
+
/rai-session-start
|
|
94
|
+
# → Loads memory, shows pending work, proposes focus
|
|
95
|
+
|
|
96
|
+
# Run a full story lifecycle in one command
|
|
97
|
+
/rai-story-run S42.1
|
|
98
|
+
# → start → design → plan → implement → architecture review → quality review → retrospective → merge
|
|
99
|
+
|
|
100
|
+
# Or step through manually
|
|
101
|
+
/rai-story-start S42.1 # Branch + scope
|
|
102
|
+
/rai-story-plan S42.1 # Decompose into tasks
|
|
103
|
+
/rai-story-implement S42.1 # TDD execution with gates
|
|
104
|
+
/rai-story-close S42.1 # Merge + cleanup
|
|
105
|
+
|
|
106
|
+
# End your day
|
|
107
|
+
/rai-session-close
|
|
108
|
+
# → Captures learnings, updates memory for next session
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Every story produces: scope commit, implementation with tests, retrospective, and patterns for next time.
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
## Quick Start
|
|
116
|
+
|
|
117
|
+
### Install
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
# Recommended
|
|
121
|
+
pipx install raise-cli
|
|
122
|
+
|
|
123
|
+
# Alternatives
|
|
124
|
+
pip install raise-cli
|
|
125
|
+
uv tool install raise-cli
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Requires **Python 3.12+** and [Claude Code](https://claude.ai/claude-code).
|
|
129
|
+
|
|
130
|
+
### Initialize
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
cd your-project
|
|
134
|
+
rai init --detect # Scaffolds .raise/, detects conventions
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Then open Claude Code and run:
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
/rai-welcome # One-time setup: profile, graph, preferences
|
|
141
|
+
/rai-session-start # Start working
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Features
|
|
147
|
+
|
|
148
|
+
### Structured Lifecycles
|
|
149
|
+
|
|
150
|
+
Epics, stories, and sessions — each with a defined lifecycle, validation gates, and artifact trail.
|
|
151
|
+
|
|
152
|
+
```
|
|
153
|
+
Epic: /rai-epic-start → design → plan → [stories] → close
|
|
154
|
+
Story: /rai-story-start → design → plan → implement → review → close
|
|
155
|
+
Session: /rai-session-start → [work] → /rai-session-close
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Knowledge Graph
|
|
159
|
+
|
|
160
|
+
`rai graph build` indexes your project: modules, governance docs, patterns, guardrails. Rai queries it for context instead of re-reading your entire codebase.
|
|
161
|
+
|
|
162
|
+
### Multi-Language Discovery
|
|
163
|
+
|
|
164
|
+
Automatically extracts and describes components from: **Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte**.
|
|
165
|
+
|
|
166
|
+
### Adapters & Plugins
|
|
167
|
+
|
|
168
|
+
Extensible via entry points. Community ships with a filesystem adapter. Enterprise adapters (Jira, Confluence) available via [raise-pro](https://raiseframework.ai).
|
|
169
|
+
|
|
170
|
+
### Doctor
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
rai doctor # Diagnose project health
|
|
174
|
+
rai doctor --fix # Auto-remediate common issues
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### 37 Skills
|
|
178
|
+
|
|
179
|
+
Session, story, epic, discovery, research, debug, bugfix, quality review, architecture review, publishing, MCP management, and more. Run `rai skill list` for the full catalog.
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## CLI
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
rai graph build # Build knowledge graph
|
|
187
|
+
rai graph query "auth patterns" # Query Rai's memory
|
|
188
|
+
rai pattern list # View learned patterns
|
|
189
|
+
rai adapter list # Show registered adapters
|
|
190
|
+
rai gate check --all # Run all quality gates
|
|
191
|
+
rai release check # Pre-publish quality check
|
|
192
|
+
rai doctor # Diagnose setup issues
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
17 command groups, 72 subcommands. See the [CLI reference](https://docs.raiseframework.ai/cli/).
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Why RaiSE?
|
|
200
|
+
|
|
201
|
+
AI coding tools are powerful but unstructured. Here's what RaiSE adds:
|
|
202
|
+
|
|
203
|
+
| Without RaiSE | With RaiSE |
|
|
204
|
+
|----------------|------------|
|
|
205
|
+
| Every session starts from scratch | Memory persists — patterns, velocity, decisions |
|
|
206
|
+
| AI generates code, you hope it's right | Validation gates at every phase — tests, types, lint, review |
|
|
207
|
+
| No traceability — who decided what and why? | Every decision traced to an artifact in Git |
|
|
208
|
+
| AI writes code but doesn't learn | Patterns compound across sessions — Rai gets better |
|
|
209
|
+
| You manage the process manually | 37 skills automate the SDLC from epic to release |
|
|
210
|
+
|
|
211
|
+
RaiSE isn't a replacement for your AI assistant — it's the **discipline layer** that makes it reliable.
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## Core Principles
|
|
216
|
+
|
|
217
|
+
1. **Humans Define, Machines Execute** — You own the specs, AI executes with discipline
|
|
218
|
+
2. **Governance as Code** — Standards versioned in Git, not tribal knowledge
|
|
219
|
+
3. **Jidoka** — Stop on defects. Never accumulate errors.
|
|
220
|
+
4. **Observable Workflow** — Every decision traceable to an artifact
|
|
221
|
+
5. **Kaizen** — Each session teaches Rai something. Patterns compound.
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Documentation
|
|
226
|
+
|
|
227
|
+
- **Docs site:** [docs.raiseframework.ai](https://docs.raiseframework.ai)
|
|
228
|
+
- **Framework:** [Constitution](framework/reference/constitution.md) · [Glossary](framework/reference/glossary.md) · [Philosophy](framework/reference/philosophy.md)
|
|
229
|
+
- **Getting started:** [Greenfield guide](docs/getting-started.mdx) · [Brownfield guide](docs/guides/)
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## Contributing
|
|
234
|
+
|
|
235
|
+
```bash
|
|
236
|
+
git clone https://github.com/humansys/raise.git
|
|
237
|
+
cd raise && git checkout dev
|
|
238
|
+
uv sync --extra dev
|
|
239
|
+
rai doctor # Verify setup
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for branch model, testing, and PR guidelines.
|
|
243
|
+
|
|
244
|
+
---
|
|
245
|
+
|
|
246
|
+
## License
|
|
247
|
+
|
|
248
|
+
[Apache-2.0](LICENSE)
|
|
249
|
+
|
|
250
|
+
*RaiSE — Ship quality software at AI speed.*
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
# RaiSE
|
|
2
|
+
|
|
3
|
+
[](https://github.com/humansys/raise/actions/workflows/ci.yml)
|
|
4
|
+
[](https://pypi.org/project/raise-cli/)
|
|
5
|
+
[](https://pypi.org/project/raise-cli/)
|
|
6
|
+
[](LICENSE)
|
|
7
|
+
|
|
8
|
+
**Reliable AI Software Engineering** — A governance framework that makes AI-assisted development predictable, traceable, and improvable.
|
|
9
|
+
|
|
10
|
+
```
|
|
11
|
+
You define what to build. Rai executes with discipline. RaiSE keeps it honest.
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
<p align="center">
|
|
15
|
+
<img src="https://raw.githubusercontent.com/humansys/raise/main/docs/assets/knowledge-graph.png" alt="RaiSE Knowledge Graph — neurosymbolic memory across sessions" width="700">
|
|
16
|
+
<br>
|
|
17
|
+
<em>RaiSE's knowledge graph: patterns, components, governance, and decisions — all connected.</em>
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## The Problem
|
|
23
|
+
|
|
24
|
+
AI coding assistants are fast but inconsistent. Without structure, you get code that works today and breaks tomorrow — no traceability, no learning, no accumulated judgment. Every session starts from zero.
|
|
25
|
+
|
|
26
|
+
## The Solution
|
|
27
|
+
|
|
28
|
+
RaiSE gives your AI assistant **methodology, memory, and gates**:
|
|
29
|
+
|
|
30
|
+
- **37 skills** that guide the full SDLC — from epic planning to story implementation to release
|
|
31
|
+
- **Validation gates** at every phase — tests, types, lint, architecture review, quality review
|
|
32
|
+
- **Cross-session memory** — patterns learned, velocity calibrated, decisions preserved
|
|
33
|
+
- **Governance as code** — constitution, guardrails, ADRs, all versioned in Git
|
|
34
|
+
- **TDD by default** — RED-GREEN-REFACTOR, no exceptions
|
|
35
|
+
|
|
36
|
+
## What It Looks Like
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
# Start your day
|
|
40
|
+
/rai-session-start
|
|
41
|
+
# → Loads memory, shows pending work, proposes focus
|
|
42
|
+
|
|
43
|
+
# Run a full story lifecycle in one command
|
|
44
|
+
/rai-story-run S42.1
|
|
45
|
+
# → start → design → plan → implement → architecture review → quality review → retrospective → merge
|
|
46
|
+
|
|
47
|
+
# Or step through manually
|
|
48
|
+
/rai-story-start S42.1 # Branch + scope
|
|
49
|
+
/rai-story-plan S42.1 # Decompose into tasks
|
|
50
|
+
/rai-story-implement S42.1 # TDD execution with gates
|
|
51
|
+
/rai-story-close S42.1 # Merge + cleanup
|
|
52
|
+
|
|
53
|
+
# End your day
|
|
54
|
+
/rai-session-close
|
|
55
|
+
# → Captures learnings, updates memory for next session
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Every story produces: scope commit, implementation with tests, retrospective, and patterns for next time.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Quick Start
|
|
63
|
+
|
|
64
|
+
### Install
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Recommended
|
|
68
|
+
pipx install raise-cli
|
|
69
|
+
|
|
70
|
+
# Alternatives
|
|
71
|
+
pip install raise-cli
|
|
72
|
+
uv tool install raise-cli
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Requires **Python 3.12+** and [Claude Code](https://claude.ai/claude-code).
|
|
76
|
+
|
|
77
|
+
### Initialize
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cd your-project
|
|
81
|
+
rai init --detect # Scaffolds .raise/, detects conventions
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Then open Claude Code and run:
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
/rai-welcome # One-time setup: profile, graph, preferences
|
|
88
|
+
/rai-session-start # Start working
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## Features
|
|
94
|
+
|
|
95
|
+
### Structured Lifecycles
|
|
96
|
+
|
|
97
|
+
Epics, stories, and sessions — each with a defined lifecycle, validation gates, and artifact trail.
|
|
98
|
+
|
|
99
|
+
```
|
|
100
|
+
Epic: /rai-epic-start → design → plan → [stories] → close
|
|
101
|
+
Story: /rai-story-start → design → plan → implement → review → close
|
|
102
|
+
Session: /rai-session-start → [work] → /rai-session-close
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### Knowledge Graph
|
|
106
|
+
|
|
107
|
+
`rai graph build` indexes your project: modules, governance docs, patterns, guardrails. Rai queries it for context instead of re-reading your entire codebase.
|
|
108
|
+
|
|
109
|
+
### Multi-Language Discovery
|
|
110
|
+
|
|
111
|
+
Automatically extracts and describes components from: **Python, TypeScript, JavaScript, C#, PHP, Dart, Svelte**.
|
|
112
|
+
|
|
113
|
+
### Adapters & Plugins
|
|
114
|
+
|
|
115
|
+
Extensible via entry points. Community ships with a filesystem adapter. Enterprise adapters (Jira, Confluence) available via [raise-pro](https://raiseframework.ai).
|
|
116
|
+
|
|
117
|
+
### Doctor
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
rai doctor # Diagnose project health
|
|
121
|
+
rai doctor --fix # Auto-remediate common issues
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
### 37 Skills
|
|
125
|
+
|
|
126
|
+
Session, story, epic, discovery, research, debug, bugfix, quality review, architecture review, publishing, MCP management, and more. Run `rai skill list` for the full catalog.
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## CLI
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
rai graph build # Build knowledge graph
|
|
134
|
+
rai graph query "auth patterns" # Query Rai's memory
|
|
135
|
+
rai pattern list # View learned patterns
|
|
136
|
+
rai adapter list # Show registered adapters
|
|
137
|
+
rai gate check --all # Run all quality gates
|
|
138
|
+
rai release check # Pre-publish quality check
|
|
139
|
+
rai doctor # Diagnose setup issues
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
17 command groups, 72 subcommands. See the [CLI reference](https://docs.raiseframework.ai/cli/).
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## Why RaiSE?
|
|
147
|
+
|
|
148
|
+
AI coding tools are powerful but unstructured. Here's what RaiSE adds:
|
|
149
|
+
|
|
150
|
+
| Without RaiSE | With RaiSE |
|
|
151
|
+
|----------------|------------|
|
|
152
|
+
| Every session starts from scratch | Memory persists — patterns, velocity, decisions |
|
|
153
|
+
| AI generates code, you hope it's right | Validation gates at every phase — tests, types, lint, review |
|
|
154
|
+
| No traceability — who decided what and why? | Every decision traced to an artifact in Git |
|
|
155
|
+
| AI writes code but doesn't learn | Patterns compound across sessions — Rai gets better |
|
|
156
|
+
| You manage the process manually | 37 skills automate the SDLC from epic to release |
|
|
157
|
+
|
|
158
|
+
RaiSE isn't a replacement for your AI assistant — it's the **discipline layer** that makes it reliable.
|
|
159
|
+
|
|
160
|
+
---
|
|
161
|
+
|
|
162
|
+
## Core Principles
|
|
163
|
+
|
|
164
|
+
1. **Humans Define, Machines Execute** — You own the specs, AI executes with discipline
|
|
165
|
+
2. **Governance as Code** — Standards versioned in Git, not tribal knowledge
|
|
166
|
+
3. **Jidoka** — Stop on defects. Never accumulate errors.
|
|
167
|
+
4. **Observable Workflow** — Every decision traceable to an artifact
|
|
168
|
+
5. **Kaizen** — Each session teaches Rai something. Patterns compound.
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Documentation
|
|
173
|
+
|
|
174
|
+
- **Docs site:** [docs.raiseframework.ai](https://docs.raiseframework.ai)
|
|
175
|
+
- **Framework:** [Constitution](framework/reference/constitution.md) · [Glossary](framework/reference/glossary.md) · [Philosophy](framework/reference/philosophy.md)
|
|
176
|
+
- **Getting started:** [Greenfield guide](docs/getting-started.mdx) · [Brownfield guide](docs/guides/)
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Contributing
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
git clone https://github.com/humansys/raise.git
|
|
184
|
+
cd raise && git checkout dev
|
|
185
|
+
uv sync --extra dev
|
|
186
|
+
rai doctor # Verify setup
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for branch model, testing, and PR guidelines.
|
|
190
|
+
|
|
191
|
+
---
|
|
192
|
+
|
|
193
|
+
## License
|
|
194
|
+
|
|
195
|
+
[Apache-2.0](LICENSE)
|
|
196
|
+
|
|
197
|
+
*RaiSE — Ship quality software at AI speed.*
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
members = ["packages/*"]
|
|
3
3
|
|
|
4
4
|
[tool.uv.sources]
|
|
5
|
-
raise-core = { workspace = true }
|
|
6
5
|
raise-server = { workspace = true }
|
|
6
|
+
raise-pro = { workspace = true }
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "raise-cli"
|
|
10
|
-
version = "2.2.
|
|
10
|
+
version = "2.2.3"
|
|
11
11
|
description = "RaiSE CLI - Reliable AI Software Engineering governance framework"
|
|
12
12
|
authors = [
|
|
13
13
|
{name = "Emilio Osorio", email = "emilio@humansys.ai"}
|
|
@@ -28,13 +28,6 @@ classifiers = [
|
|
|
28
28
|
]
|
|
29
29
|
|
|
30
30
|
dependencies = [
|
|
31
|
-
"raise-core==2.2.1",
|
|
32
|
-
"atlassian-python-api>=3.41.0",
|
|
33
|
-
"authlib>=1.3.0",
|
|
34
|
-
"cryptography>=46.0.5",
|
|
35
|
-
"requests>=2.32.4",
|
|
36
|
-
"urllib3>=2.6.3",
|
|
37
|
-
"certifi>=2024.7.4",
|
|
38
31
|
"typer>=0.12.0",
|
|
39
32
|
"rich>=13.7.0",
|
|
40
33
|
"pydantic>=2.6.0",
|
|
@@ -58,7 +51,9 @@ dev = [
|
|
|
58
51
|
"pyright>=1.1.350",
|
|
59
52
|
"bandit>=1.7.8",
|
|
60
53
|
"raise-server",
|
|
54
|
+
"raise-pro",
|
|
61
55
|
"httpx>=0.27.0",
|
|
56
|
+
"mcp>=1.26,<2",
|
|
62
57
|
]
|
|
63
58
|
mcp = [
|
|
64
59
|
"mcp>=1.26,<2",
|
|
@@ -93,7 +88,6 @@ glossary = "raise_cli.governance.parsers.glossary:GlossaryParser"
|
|
|
93
88
|
[project.entry-points."rai.hooks"]
|
|
94
89
|
telemetry = "raise_cli.hooks.builtin.telemetry:TelemetryHook"
|
|
95
90
|
gate-bridge = "raise_cli.hooks.builtin.gate_bridge:GateBridgeHook"
|
|
96
|
-
jira-sync = "raise_cli.hooks.builtin.jira_sync:JiraSyncHook"
|
|
97
91
|
backlog = "raise_cli.hooks.builtin.backlog:BacklogHook"
|
|
98
92
|
memory-sync = "raise_cli.hooks.builtin.memory:MemoryMdSyncHook"
|
|
99
93
|
|
|
@@ -109,10 +103,6 @@ project = "raise_cli.doctor.checks.project:ProjectCheck"
|
|
|
109
103
|
|
|
110
104
|
[project.entry-points."rai.adapters.pm"]
|
|
111
105
|
filesystem = "raise_cli.adapters.filesystem:FilesystemPMAdapter"
|
|
112
|
-
jira = "raise_cli.adapters.mcp_jira:McpJiraAdapter"
|
|
113
|
-
|
|
114
|
-
[project.entry-points."rai.docs.targets"]
|
|
115
|
-
confluence = "raise_cli.adapters.mcp_confluence:McpConfluenceAdapter"
|
|
116
106
|
|
|
117
107
|
[project.entry-points."rai.graph.backends"]
|
|
118
108
|
local = "raise_core.graph.backends.filesystem:FilesystemGraphBackend"
|
|
@@ -121,12 +111,18 @@ local = "raise_core.graph.backends.filesystem:FilesystemGraphBackend"
|
|
|
121
111
|
requires = ["hatchling"]
|
|
122
112
|
build-backend = "hatchling.build"
|
|
123
113
|
|
|
114
|
+
[dependency-groups]
|
|
115
|
+
dev = [
|
|
116
|
+
"readme-renderer[md]>=44.0",
|
|
117
|
+
]
|
|
118
|
+
|
|
124
119
|
[tool.hatch.build.targets.wheel]
|
|
125
|
-
packages = ["src/raise_cli"]
|
|
120
|
+
packages = ["src/raise_cli", "src/raise_core"]
|
|
126
121
|
|
|
127
122
|
[tool.hatch.build.targets.sdist]
|
|
128
123
|
include = [
|
|
129
124
|
"/src/raise_cli/",
|
|
125
|
+
"/src/raise_core/",
|
|
130
126
|
"/LICENSE",
|
|
131
127
|
"/README.md",
|
|
132
128
|
"/pyproject.toml",
|
|
@@ -135,7 +131,7 @@ include = [
|
|
|
135
131
|
[tool.ruff]
|
|
136
132
|
line-length = 88
|
|
137
133
|
target-version = "py312"
|
|
138
|
-
src = ["src"
|
|
134
|
+
src = ["src"]
|
|
139
135
|
exclude = ["dev/experiments"]
|
|
140
136
|
|
|
141
137
|
[tool.ruff.lint]
|
|
@@ -161,7 +157,7 @@ indent-style = "space"
|
|
|
161
157
|
[tool.pyright]
|
|
162
158
|
pythonVersion = "3.12"
|
|
163
159
|
typeCheckingMode = "strict"
|
|
164
|
-
include = ["src", "packages/raise-
|
|
160
|
+
include = ["src", "packages/raise-pro/src", "packages/raise-server/src"]
|
|
165
161
|
exclude = [
|
|
166
162
|
"**/__pycache__",
|
|
167
163
|
"**/node_modules",
|
|
@@ -181,7 +177,8 @@ addopts = [
|
|
|
181
177
|
"--strict-markers",
|
|
182
178
|
"--strict-config",
|
|
183
179
|
"--cov=src/raise_cli",
|
|
184
|
-
"--cov=
|
|
180
|
+
"--cov=src/raise_core",
|
|
181
|
+
"--cov=packages/raise-pro/src/rai_pro",
|
|
185
182
|
"--cov=packages/raise-server/src/raise_server",
|
|
186
183
|
"--cov-report=term-missing",
|
|
187
184
|
"--cov-report=html",
|
|
@@ -191,7 +188,7 @@ markers = [
|
|
|
191
188
|
]
|
|
192
189
|
|
|
193
190
|
[tool.coverage.run]
|
|
194
|
-
source = ["src/raise_cli", "packages/raise-
|
|
191
|
+
source = ["src/raise_cli", "src/raise_core", "packages/raise-pro/src/rai_pro", "packages/raise-server/src/raise_server"]
|
|
195
192
|
omit = [
|
|
196
193
|
"*/tests/*",
|
|
197
194
|
"*/__main__.py",
|
|
@@ -10,7 +10,7 @@ Usage::
|
|
|
10
10
|
|
|
11
11
|
async_adapter = JiraAdapter(config)
|
|
12
12
|
sync_adapter = SyncPMAdapter(async_adapter)
|
|
13
|
-
issue = sync_adapter.get_issue("
|
|
13
|
+
issue = sync_adapter.get_issue("PROJ-301") # sync call
|
|
14
14
|
"""
|
|
15
15
|
|
|
16
16
|
from __future__ import annotations
|
|
@@ -51,7 +51,7 @@ def _run_sync[T](coro: Coroutine[Any, Any, T], closeable: Any = None) -> T:
|
|
|
51
51
|
coro: The coroutine to run.
|
|
52
52
|
closeable: Optional object with ``aclose()`` method. Called in a
|
|
53
53
|
``finally`` block within the same event loop to prevent
|
|
54
|
-
asyncgen finalizer tracebacks
|
|
54
|
+
asyncgen finalizer tracebacks.
|
|
55
55
|
"""
|
|
56
56
|
|
|
57
57
|
async def _wrapped() -> T:
|