Skip to content

brennhill/stricture

Repository files navigation

Stricture

Stricture Splash

v0.1-alpha: Stricture is in active development. CLI shape, annotation profiles, and policy schema are still being refined.

Stop API Drift Before Deploy

Stricture is a lineage-first drift control and architectural enforcement layer for API ecosystems. It tells you what changed, who is impacted, and whether deploy should proceed.

Why Teams Use It

  • Detect drift traditional linters miss: field contracts, source versions, and cross-service invariants.
  • Get actionable findings: cause service, impacted services, blast radius, and owner/escalation.
  • Enforce policy in CI/CD with deterministic warn/block decisions.
  • Reuse existing metadata via overlays (OpenAPI, OpenTelemetry, OpenLineage, AsyncAPI).

How It Works (60 Seconds)

  1. Add lightweight source comments where fields are emitted or transformed.
  2. Keep service metadata in a systems registry (docs/config-examples/lineage-systems.yml pattern).
  3. Export lineage, diff against baseline, and apply policy gates in CI.

Minimal annotation:

// strict-source: PromotionsConfig
PromotionType string `json:"promotion_type"`

Namespace convention:

  • Source comments use strict- prefixes (for example strict-source).
  • YAML config keys use stricture_ prefixes (for example stricture_policy_url).

Quickstart

# Build CLI
make build

# Initialize repo config
./bin/strict init

# Run static checks
./bin/strict lint .

# Export current lineage snapshot
./bin/strict lineage-export --out .stricture/current-lineage.json .

# Compare against baseline and gate release
./bin/strict lineage-diff \
  --base .stricture/baseline-lineage.json \
  --head .stricture/current-lineage.json \
  --mode block

First run bootstrap:

mkdir -p .stricture
cp .stricture/current-lineage.json .stricture/baseline-lineage.json

Common Commands

strict list-rules
strict explain --rule ARCH-dependency-direction
strict inspect-lineage path/to/file.go
strict lineage-escalate --service ServiceY --artifact .stricture/current-lineage.json --systems docs/config-examples/lineage-systems.yml

Open Standard (SOS)

Stricture Open Standard defines portable lineage, drift, and policy semantics.

Documentation

Website

License

About

An ecosystem linter tool.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors