AI Initiative logoAI Initiative
Reading room / CertFabric

cert-fabric

Introduces the certification service, its evidence interfaces and developer/operator entry points.

Service technical guide
This is the retained source text, not a new validation of its claims. Numerical results and comparative claims require the accompanying source review before public reuse.

Read the connected case study or article →

Not explicitly attributed in document header · Date not established

Provenance, authorship and editorial notes

cert-fabric

Id

certfabric-guide

Project

CertFabric

Source path

conduir-evolution/services/cert-fabric/README.md

Source host

local

Source sha256

e42cd0f3166ac29270d62ef0b299515a48e561f8e8bf1ff9bb11530639556d4d

Repo root

conduir-evolution

Repo head

61278260a6a877769ef025356ecc5feb1d53f1b4

Date
Not recorded
Author

Not explicitly attributed in document header

Document status

Service technical guide

Source status statement
Not recorded
Summary

Introduces the certification service, its evidence interfaces and developer/operator entry points.

Topics
  • AI Workflow
  • Verification
  • CertFabric
  • Service technical guide
Related ids
  • certfabric-architecture
Evidence concerns
  • Examples and health endpoints do not certify production security or general product quality.
  • Private source selection. Source inspection only; no fresh build, deployment or effectiveness certification.
Copy scope

Full original document, byte-identical

Copy status

copied-private-review

Format

markdown

Bytes

5065

Word count

586

Headings
  • cert-fabric
  • Quickstart (local CLI)
  • Quickstart (FastAPI service)
  • What it produces
  • What it certifies
  • How to onboard a service
  • Authority
  • Version
Sensitive content review
Automated secret patterns
Email occurrences

0

Customer record terms
Limitation

Pattern scan plus editorial review; not a guarantee of no personal or proprietary material. Private copies retain source code examples, internal locations and attributions.

Attribution note

Source document attribution is preserved. Repository ownership or an agent role is not automatically authorship.

Date basis

Document header or dated filename; source may contain later updates

Source pin note

SHA-256 binds exact copied working-file bytes; repo_head is repository context, not proof that every byte is committed at that head.

Publication recommendation

Private technical reading candidate; editorial selection and claim review required before public use

cert-fabric

Conduir Modularity Certification-as-a-Service — the substrate's immune system.

Validates that a service is independently buildable, deployable, and substitutable per the Prime Directive (../delivery/MODULARITY-CERT-FRAMEWORK-V1-ARCHITECTURE-REVIEW-2026-05-22.md):

"We accept a slightly higher architectural cost today to ensure total component swappability tomorrow."

Quickstart (local CLI)

cd services/cert-fabric
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,production]"

# Run against a service manifest
cert-fabric run \
  --manifest ../llm-gateway/cert.manifest.yaml \
  --service-root ../llm-gateway \
  --out /tmp/cert-runs \
  --local --skip-provenance --skip-vuln-scan

# View a verdict
cert-fabric show-verdict <run_id>

# Run the adversarial self-test matrix (7 modes per v8.1 §7.2)
cert-fabric self-test

Quickstart (FastAPI service)

# Local
uvicorn cert_fabric.api.server:app --host 0.0.0.0 --port 48030

# Docker
docker build -t cert-fabric:local services/cert-fabric/
docker run -p 48030:48030 cert-fabric:local

# Full stack with Postgres ledger
docker compose -f services/cert-fabric/docker-compose.fragment.yml up -d

API surface (see ARCHITECTURE.md §API):

EndpointPurpose
POST /api/v1/cert/runSubmit a cert run; returns run_id + polling URLs
GET /api/v1/cert/run/{id}/statusPhase + percent complete
GET /api/v1/cert/run/{id}/verdictFinal verdict.json
GET /api/v1/cert/{service}/latestMost-recent verdict for a service
GET /api/v1/cert/{service}/historyVerdict history (cohort dashboard source)
POST /api/v1/cert/self-test/replayRun adversarial self-test matrix
GET /healthzLiveness
GET /readyzReadiness (verifies ledger reachable)
GET /metricsPrometheus-style metrics

What it produces

For every cert run:

<out>/<service>/<run_id>/
├── manifest.copy.yaml              # the manifest as submitted
├── runner_isolation.json           # scorched-earth env + Docker prefixes (v8.1 §6.6)
├── stage1-static-gates.json        # R-1..R-7 results
├── stage2-provenance.json          # cosign verify-attestation result
├── stage3-test-results.json        # Bucket A-E + R-8 outcomes
├── stage4-vuln-scan.json           # Trivy/Grype CVE findings
├── stage6-sealing.json             # Cosign sign + attestation diagnostics
├── stage8-teardown.json            # Docker hygiene verification
├── tests/                          # JUnit XMLs per bucket
├── verdict.json                    # canonical 10-clause + 0-100 score
├── proof_manifest.sha256           # SHA-256 of every artifact
└── proof_manifest.attestation.json # Cosign attestation, SLSA in-toto v1 predicate

sha256sum -c proof_manifest.sha256 re-verifies the bundle's integrity.
cosign verify-attestation --type https://conduir.dev/cert-fabric/v2 ... re-verifies authenticity.

What it certifies

The 10-clause verdict (v8.1 §6.1):

ClauseWeightSource
fresh_env10Stage 2 provenance verified
service_local_infra10Bucket B PASS with only local infra
no_sibling_dependency10R-1/R-3 static + Bucket B clean
substitutability15Bucket D + behavioral parity
boundary10Bucket A structural
boundary_integrity15R-1..R-8 (static + R-8 runtime DB)
operational10/health, /ready, /metrics, OpenAPI
pr_isolation5Server-derived PR diff scope
deployability107 sub-gates: semver, Cosign, SBOM, vuln_scan, CI, etc.
contract_compatibility5N-1 backward compat

PASS bar: all applicable hard gates PASS AND maturity score ≥ 80. Score never overrides a failed hard gate.

How to onboard a service

1. Author services/<svc>/cert.manifest.yaml (~20 lines; see llm-gateway example (../llm-gateway/cert.manifest.yaml)).
2. Add tests in services/<svc>/tests/bucket_a/, bucket_b/, bucket_c/, bucket_d/ (and optionally bucket_e/).
3. Add services/<svc>/score.yaml declaring backing resources.
4. Submit: cert-fabric run --manifest services/<svc>/cert.manifest.yaml --service-root services/<svc>/.
5. Triage the verdict; iterate.

See RUNBOOK.md (RUNBOOK.md) for operator-side procedures (deployment, secrets, monitoring, incident response).

Authority

Version

Continue exploring