# CASAN Commercial Readiness Contract ## Promise After `casan init`, a repository can use CASAN Core prompt assurance and the Local Assurance Viewer without modifying application source, installing a Domain Pack, running a domain pipeline, or exporting HTML after every prompt. CASAN never turns missing evidence into zero and never calls an installation READY when a required client activation step remains. ## State model | Dimension | Ready state | Non-blocking state | Owner | |---|---|---|---| | Core | `ready`, `ready_with_attention` | — | CASAN runtime + selected client | | Domain Pipeline | `configured` | `discovered`, `not_configured` | Project team | | Provider Telemetry | `available` | `optional_unavailable` | Client/provider adapter | Core installation acceptance uses H1–H7 as an installation contract: 1. H1 project configuration exists and is valid; 2. H2 selected client integration is installed and trust is explicit; 3. H3 local report capability exists in the resolved runtime; 4. H4 enforcement mode is disclosed (`observe` is a warning); 5. H5 evidence directories are writable; 6. H6 provider token/cost telemetry is measured when available and explicitly optional when unavailable; 7. H7 bootstrap and version/hash pin exist. When at least one selected client route is operational but another selected route fails the deep doctor check, Core is `ready_with_attention`: reports and governed prompts remain usable through the healthy route, while the broken route is shown as an explicit activation action. These checks do not claim that a real prompt run is H1–H7 certified. Run certification is created only from canonical lifecycle evidence after a prompt. ## CASAN-owned files - `.casan/discovery.json`: bounded read-only discovery projection; - `.casan/readiness.json`: shared CLI/viewer state; - `.casan/domain.json`: optional reference to a project-owned manifest. No command above creates requirements, traceability mappings, tests, source files or a fake runnable pipeline. ## Operator path ```bash casan init casan doctor casan readiness --refresh casan view # Optional, only for project-specific SRS→test acceptance casan domain discover casan domain configure path/to/project.manifest.json casan pipeline --help ``` `casan pipeline` runs only when the project provides `scripts/run-casan-pipeline.mjs`. Otherwise it returns `CASAN_PIPELINE_NOT_CONFIGURED` while leaving Core fully usable.