Skip to main content

Canonical analysis contracts, provider adapters, normalized findings, validation, and deterministic artifact generation for Quantum-L9 CI.

Project description


l9-ci-sdk

Canonical analysis contracts, provider adapters, normalized findings, validation, and deterministic artifact generation for the L9 CI constellation.

CI Core orchestrates. CI SDK observes. Downstream products diagnose, mutate, learn, prevent, and decide — they are not implemented here.

Agent operating law (architecture, phases, layer edges, git hygiene): AGENTS.md. Deep SSOT: docs/architecture/, docs/adr/, .l9/.

Install

Python ≥ 3.11. Two supported paths (keep deps aligned):

# Local editable install (console script `l9-ci`)
python -m venv .venv && source .venv/bin/activate
pip install -e ".[ci]"

# Or: runtime deps only (matches Core provision-sdk)
pip install -r requirements.txt
export PYTHONPATH=.
python -m l9_ci --help

CLI map

Entry points: l9-ci (after editable/wheel install) or python -m l9_ci.

Group Commands
semgrep detect, normalize
bundle validate, project-agent-payload
compatibility check
gate evaluate
providers list, detect
baseline compare-tests, scan-packet-envelope, compare-scan, validate-ledger
manifest generate, check

Core happy path:

semgrep JSON → l9-ci semgrep normalize → l9-ci bundle validate
  → l9-ci bundle project-agent-payload → Core upload / publish

Exit codes and contract details: docs/architecture/cli-contract.md, .l9/integration-contract.yaml.

Local gate (fail-closed)

Mechanical checks SSOT: .pre-commit-config.yaml. Orchestration: Makefile.

make bootstrap   # .venv + deps + install pre-commit/pre-push hooks + doctor
make fmt         # intentional autofix (commit results)
make check       # hooks → clean tree → mypy → pytest
make push        # check, then git push

Do not bypass with git push --no-verify. Prefer make push. Local zizmor is fail-closed even when dogfood CI is advisory. actionlint remains CI-only until a pre-commit hook is added.

Dropbox / mypy: a .venv inside Dropbox often breaks mypy’s native extensions. Prefer a clone outside Dropbox, or point Make at an off-Dropbox interpreter (see AGENTS.md §10).

CI surfaces in this repo

Surface Workflows Role
Core-driven self-analysis l9-analysis*.yml Pins l9-ci-core by immutable SHA; advisory dogfood today
Self-CI (no Core) l9-self-ci.yml Classifier / rule-modes gate (engine: ci-debt)
YAML governance l9-yaml-governance.yml + dogfood Reusable yamllint / governance JSON / Action pins / actionlint / zizmor
Biome static checks l9-biome-scan.yml + dogfood JSON/JS/TS formatter+linter ownership (biome.json)
Manifest reconcile l9-manifest-reconcile.yml Keeps root MANIFEST.md aligned with tracked truth

YAML governance configs: root lint/. Biome config: root biome.json. Downstream callers pin immutable SDK SHAs. Details: docs/architecture/yaml-governance.md, docs/architecture/biome.md, docs/architecture/repository-manifest.md.

Constellation

Product Role
l9-ci-core Orchestrates
l9-ci-sdk (this repo) Observes / contracts
l9-ci-debt-resolver Diagnoses
PR_Repair Mutates
l9-ci-debt-intelligence Learns
l9-ci-debt-lsp Prevents
l9-assurance Decides

Docs for agents (collision policy)

  • README.md — short human entrypoint. Agents must not rewrite it from unrelated feature PRs (see AGENTS.md §13).
  • AGENTS.md — agent operating law; update when law/surface changes.
  • Git hygiene — WIP commits over stashes; never switch branches over uncommitted work (see AGENTS.md §12).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

l9_ci-1.0.0.tar.gz (431.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

l9_ci-1.0.0-py3-none-any.whl (128.7 kB view details)

Uploaded Python 3

File details

Details for the file l9_ci-1.0.0.tar.gz.

File metadata

  • Download URL: l9_ci-1.0.0.tar.gz
  • Upload date:
  • Size: 431.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for l9_ci-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d841f7d15c32ff4348162fa01f29a02e981c49ac6ff1d9c07cdc4db31b2b6072
MD5 1f3f4f2c4aa289f952f58ada71419108
BLAKE2b-256 6d0fc891df0733193498102925b4a643c784552385829443c4f3407a22aafc4b

See more details on using hashes here.

File details

Details for the file l9_ci-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: l9_ci-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 128.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for l9_ci-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c495261defd2053adfbb38cef05760fade0f55a6546f4a137ceccfacc8cea019
MD5 52e5c9e47482e2cc0aeddd963607c58b
BLAKE2b-256 eb17c5931b46d15b9a1e2422cc8602ff359c0da3cd9ce5f8e287707d8cff6b6c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page