DevS69 SDETKit
From noisy CI evidence to deterministic ship / no-ship decisions.
DevS69 SDETKit is a release-confidence CLI for deterministic ship/no-ship decisions with machine-readable evidence.
Primary outcome: know if a change is ready to ship. Runtime requirement: Python 3.10+.
Canonical first path: python -m sdetkit gate fast -> python -m sdetkit gate release -> python -m sdetkit doctor.
Start here
python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install sdetkit==1.0.3
python -m sdetkit gate fast --format json --stable-json --out build/gate-fast.json
python -m sdetkit gate release --format json --out build/release-preflight.json
python -m sdetkit doctor --format json --out build/doctor.json
Generated first-run artifacts:
build/
├── gate-fast.json
├── release-preflight.json
└── doctor.json
Why SDETKit?
Most quality tools stop at a failed check. SDETKit connects the evidence into an operator decision:
- Decide: produce deterministic
SHIP/NO-SHIPevidence. - Diagnose: extract the first meaningful failure instead of repeating the loudest wrapper error.
- Prove: recommend exact verification commands and preserve machine-readable artifacts.
- Protect: keep investigation and remediation review-first unless an explicit guarded policy allows more.
From failure to next action
input: FAILED tests/test_release_contract.py::test_wheel_smoke
classification: test
affected_file: tests/test_release_contract.py
next_command: python -m pytest -q tests/test_release_contract.py -o addopts=
authority: review-first; no repository mutation or merge authorization
Start with docs/first-failure-triage.md and docs/investigation-operator-guide.md.
Public launch proof
See the committed public launch proof for a realistic saved pytest failure reduced to its first failing node, affected file, focused proof command, and review-first decision. The same proof includes a fixture-based Python, JavaScript/TypeScript, and Go adoption profile generated without installing target dependencies, executing target code, mutating the target, or authorizing a merge.
The proof is tied to an immutable source commit and is explicitly marked main-only until the qualified 1.2.0 release.
Decision contract
| Signal | Decision |
|---|---|
gate-fast.json.ok == true and release-preflight.json.ok == true |
✅ SHIP |
Any ok: false |
❌ NO-SHIP |
failed_steps present in either artifact |
❌ NO-SHIP |
Secondary lanes cover review, investigation, quality, maintenance, and CI automation once the primary gate decision is stable. Investigation/reporting/planning lanes are diagnostic-only by default; repository mutation requires explicit guarded policy and PR-only remediation controls.
What SDETKit gives teams
- Deterministic decisions: every release-confidence run ends in an auditable SHIP / NO-SHIP signal.
- Evidence-first artifacts: JSON and Markdown outputs can be reviewed by humans, bots, and CI.
- Diagnostic investigation:
sdetkit investigateexplains failures and recommends proof commands without mutating the repository. - Guarded automation path: remediation and PR automation are explicit opt-in lanes, not the default behavior.
- One workflow everywhere: use the same core commands locally, in CI, and during operator handoff.
| Lane | Command | Start here when... |
|---|---|---|
| Release gate | python -m sdetkit gate fast -> python -m sdetkit gate release -> python -m sdetkit doctor |
You need a ship/no-ship decision. |
| Readiness evidence | python -m sdetkit repo audit . --format json --fail-on none → python -m sdetkit security scan --fail-on none --format sarif --output build/security.sarif --sbom-output build/sbom.cdx.json → python -m sdetkit evidence pack --output .sdetkit/out/evidence.zip |
You need local repository, security, and bundled evidence. See Repo Audit, Security Gate, and Artifact reference. |
| Review | python -m sdetkit review . --no-workspace --format operator-json |
You need operator-facing findings. |
| Investigation | python -m sdetkit investigate failure --log build/quality.log --format markdown |
A CI log or PR check needs triage before remediation. |
| CI-ready | ./ci.sh quick --artifact-dir .sdetkit/out and make merge-ready |
You want a local CI-equivalent smoke path. |
Product proof
SDETKit is backed by committed live-adoption proof.
- Evidence:
docs/artifacts/live-adoption/product-proof-post-1072/ - Decision:
SHIP with known STRICT_FINDINGS - Blocking failures:
0 - Known strict finding:
legacy-noargscompatibility behavior only - Proof page:
docs/live-adoption-product-proof.md
For this repository, make first-proof emits FIRST_PROOF_DECISION=SHIP|NO-SHIP and writes the consolidated bundle under build/first-proof/.
Release channel
The install command above uses the latest published package, sdetkit==1.0.3. The repository main branch contains additional diagnostic, verification, benchmark, trajectory, multi-ecosystem, CI-provider, and mixed-workspace capabilities that remain main-only until the qualified 1.2.0 release. See the current product delta before treating repository documentation as installed-wheel proof.
Documentation map
- Start in 5 minutes: docs/start-here-5-minutes.md
- Operator essentials: docs/operator-essentials.md
- Investigation operator guide: docs/investigation-operator-guide.md
- Adaptive diagnosis: docs/adaptive-diagnosis.md
- Public launch proof: docs/public-launch-proof.md
- Artifact reference: docs/artifact-reference.md
- Recommended CI flow: docs/recommended-ci-flow.md
- CLI reference: docs/cli.md
- Contributor guide: CONTRIBUTING.md
Advanced lanes live in docs
Historical and transition-era references (secondary) remain outside the first-time path.
- External repository adoption: docs/adoption.md
- Portfolio readiness and reporting: docs/portfolio-readiness.md
- Operations handbook: docs/operations-handbook.md
- Remediation cookbook: docs/remediation-cookbook.md
- Release process: docs/project/release-process.md
Top-tier reporting sample pipeline
Run make top-tier-reporting; see docs/portfolio-reporting-recipe.md and docs/kpi-schema.md.
Upgrade next (intent router)
Run make upgrade-next; see docs/upgrade-next-commands.md.
Real workflow operations
See docs/real-workflow-operations.md. Common aliases: make ops-daily, make ops-daily-fast, make ops-weekly, make ops-premerge, make ops-premerge-fast, make ops-premerge-next, make ops-premerge-next-fast, make ops-followup, make ops-now, make ops-now-lite, make ops-next.
Repository layout
| Area | Purpose |
|---|---|
src/ |
SDETKit Python package and CLI implementation. |
tests/ |
Unit, workflow, docs, and contract tests. |
docs/ |
Operator guides, artifact references, quality gates, and developer docs, including docs/artifacts/. |
.github/workflows/ |
CI, quality, maintenance, and artifact upload automation. |
Project policies
- Docs map: docs/docs-map.md
- Security: SECURITY.md
- Quality playbook: docs/project/quality-playbook.md
- Release notes: CHANGELOG.md
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file sdetkit-1.2.0.tar.gz.
File metadata
- Download URL: sdetkit-1.2.0.tar.gz
- Upload date:
- Size: 2.1 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e6e1759a8e7c716ea4a6c51f50aa16d422caa56ce9ff218c073056c4b3c2eea9
|
|
| MD5 |
64574e15a74e6e4a3b41b1a901f5371a
|
|
| BLAKE2b-256 |
29f23f834f1e4e2c1cc894232019a79b1108f0330a4917033be3c4111f77cde7
|
Provenance
The following attestation bundles were made for sdetkit-1.2.0.tar.gz:
Publisher:
release.yml on sherif69-sa/DevS69-sdetkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sdetkit-1.2.0.tar.gz -
Subject digest:
e6e1759a8e7c716ea4a6c51f50aa16d422caa56ce9ff218c073056c4b3c2eea9 - Sigstore transparency entry: 2192390713
- Sigstore integration time:
-
Permalink:
sherif69-sa/DevS69-sdetkit@5165a82f8cd2ab3ce6be29737a2afdad58ea85a5 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/sherif69-sa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5165a82f8cd2ab3ce6be29737a2afdad58ea85a5 -
Trigger Event:
push
-
Statement type:
File details
Details for the file sdetkit-1.2.0-py3-none-any.whl.
File metadata
- Download URL: sdetkit-1.2.0-py3-none-any.whl
- Upload date:
- Size: 1.6 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1686c1ea8fc17748ed30bec1a8c7a2b79e2c1f714a6918f9b97647d2f5369b96
|
|
| MD5 |
86dda9c87778a00bb5f354a60e043f71
|
|
| BLAKE2b-256 |
747bd1217d88b4bfacf9a485bcdb1e82c0115f8747319b7a9541e8caba4b4a9a
|
Provenance
The following attestation bundles were made for sdetkit-1.2.0-py3-none-any.whl:
Publisher:
release.yml on sherif69-sa/DevS69-sdetkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
sdetkit-1.2.0-py3-none-any.whl -
Subject digest:
1686c1ea8fc17748ed30bec1a8c7a2b79e2c1f714a6918f9b97647d2f5369b96 - Sigstore transparency entry: 2192390721
- Sigstore integration time:
-
Permalink:
sherif69-sa/DevS69-sdetkit@5165a82f8cd2ab3ce6be29737a2afdad58ea85a5 -
Branch / Tag:
refs/tags/v1.2.0 - Owner: https://github.com/sherif69-sa
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@5165a82f8cd2ab3ce6be29737a2afdad58ea85a5 -
Trigger Event:
push
-
Statement type: