@marinjursic/prc-windows-arm64 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +3 -0
- package/bin/LICENSE +21 -0
- package/bin/README.md +335 -0
- package/bin/THIRD_PARTY_NOTICES.md +74 -0
- package/bin/adapters/checkov-v3.3.8.yaml +50 -0
- package/bin/adapters/gitleaks-v8.30.0.yaml +63 -0
- package/bin/adapters/grype-v0.116.1.yaml +58 -0
- package/bin/adapters/syft-v1.51.0.yaml +54 -0
- package/bin/catalog/assertions/core-repository.yaml +625 -0
- package/bin/catalog/assertions/iac.yaml +24 -0
- package/bin/catalog/assertions/supply-chain.yaml +45 -0
- package/bin/catalog/control-contracts.json +1 -0
- package/bin/catalog/control-id-registry.json +110470 -0
- package/bin/catalog/objectives/core-repository.yaml +243 -0
- package/bin/catalog/objectives/iac.yaml +13 -0
- package/bin/catalog/objectives/supply-chain.yaml +13 -0
- package/bin/catalog/profiles/api.yaml +12 -0
- package/bin/catalog/profiles/core-repository.yaml +49 -0
- package/bin/catalog/profiles/iac.yaml +18 -0
- package/bin/catalog/profiles/kubernetes.yaml +15 -0
- package/bin/catalog/profiles/quick.yaml +27 -0
- package/bin/catalog/profiles/supply-chain.yaml +20 -0
- package/bin/docs/architecture/adapters.md +380 -0
- package/bin/docs/architecture/agent-providers.md +188 -0
- package/bin/docs/architecture/applicability.md +80 -0
- package/bin/docs/architecture/catalog-integrity.md +85 -0
- package/bin/docs/architecture/evidence-and-results.md +154 -0
- package/bin/docs/architecture/execution-plans.md +61 -0
- package/bin/docs/architecture/product-contract.md +76 -0
- package/bin/docs/architecture/publisher-trust.md +68 -0
- package/bin/docs/architecture/remediation-contract.md +113 -0
- package/bin/docs/architecture/trust-model.md +95 -0
- package/bin/docs/assets/hero.svg +37 -0
- package/bin/docs/assets/logo.svg +13 -0
- package/bin/docs/assets/production-readiness-scan-demo-poster.png +0 -0
- package/bin/docs/assets/production-readiness-scan-demo.gif +0 -0
- package/bin/docs/assets/production-readiness-scan-demo.mp4 +0 -0
- package/bin/docs/assets/social-card.png +0 -0
- package/bin/docs/assets/social-card.svg +40 -0
- package/bin/docs/checklists/00-readiness-principle.md +17 -0
- package/bin/docs/checklists/01-release-foundations.md +91 -0
- package/bin/docs/checklists/02-product-risk-architecture.md +136 -0
- package/bin/docs/checklists/03-source-build-supply-chain.md +97 -0
- package/bin/docs/checklists/04-environments-quality-experience.md +226 -0
- package/bin/docs/checklists/05-application-security.md +320 -0
- package/bin/docs/checklists/06-data-privacy-performance.md +166 -0
- package/bin/docs/checklists/07-reliability-operations.md +355 -0
- package/bin/docs/checklists/08-maintenance-vendors-compliance.md +112 -0
- package/bin/docs/checklists/09-conditional-modules.md +229 -0
- package/bin/docs/checklists/10-evidence-and-decision.md +111 -0
- package/bin/docs/engineering/00-overview.md +51 -0
- package/bin/docs/engineering/01-governance-and-foundations.md +919 -0
- package/bin/docs/engineering/02-product-and-requirements.md +186 -0
- package/bin/docs/engineering/03-user-experience-web-and-content.md +1352 -0
- package/bin/docs/engineering/04-architecture-and-design.md +387 -0
- package/bin/docs/engineering/05-code-quality-and-implementation.md +1103 -0
- package/bin/docs/engineering/06-application-services-and-apis.md +476 -0
- package/bin/docs/engineering/07-data-and-information-lifecycle.md +1009 -0
- package/bin/docs/engineering/08-security-and-cryptography.md +1215 -0
- package/bin/docs/engineering/09-privacy-and-data-protection.md +205 -0
- package/bin/docs/engineering/10-verification-and-testing.md +841 -0
- package/bin/docs/engineering/11-developer-experience-platform-and-delivery.md +1013 -0
- package/bin/docs/engineering/12-operations-sre-and-support.md +795 -0
- package/bin/docs/engineering/13-documentation-and-knowledge.md +349 -0
- package/bin/docs/engineering/14-trust-safety-and-ecosystems.md +330 -0
- package/bin/docs/engineering/15-ai-ml-and-ai-assisted-development.md +785 -0
- package/bin/docs/engineering/16-specialized-domains-and-release-assurance.md +775 -0
- package/bin/docs/engineering/source-manifest.md +479 -0
- package/bin/docs/guides/ai-assisted-review.md +61 -0
- package/bin/docs/guides/getting-started.md +78 -0
- package/bin/docs/index.md +66 -0
- package/bin/docs/prompts/evidence-challenge.md +26 -0
- package/bin/docs/prompts/full-readiness-review.md +34 -0
- package/bin/docs/prompts/release-diff-review.md +31 -0
- package/bin/docs/records/evidence-record.md +42 -0
- package/bin/docs/records/go-no-go-decision.md +63 -0
- package/bin/docs/records/release-assessment.md +124 -0
- package/bin/docs/records/risk-exception.md +64 -0
- package/bin/docs/references.md +52 -0
- package/bin/docs/scanner/ai-control-review.md +208 -0
- package/bin/docs/scanner/benchmarks.md +122 -0
- package/bin/docs/scanner/cli-contract.md +130 -0
- package/bin/docs/scanner/configuration.md +101 -0
- package/bin/docs/scanner/control-contracts.md +47 -0
- package/bin/docs/scanner/core-repository.md +62 -0
- package/bin/docs/scanner/diff-and-invalidation.md +79 -0
- package/bin/docs/scanner/doctor.md +71 -0
- package/bin/docs/scanner/getting-started.md +355 -0
- package/bin/docs/scanner/go-http-timeouts.md +96 -0
- package/bin/docs/scanner/infrastructure-policy.md +64 -0
- package/bin/docs/scanner/kubernetes-workloads.md +63 -0
- package/bin/docs/scanner/mcp-agent-integration.md +138 -0
- package/bin/docs/scanner/openapi-contracts.md +75 -0
- package/bin/docs/scanner/private-key-armor.md +44 -0
- package/bin/docs/scanner/releases.md +160 -0
- package/bin/docs/scanner/remediation.md +273 -0
- package/bin/docs/scanner/risk-exceptions.md +52 -0
- package/bin/docs/scanner/security-walkthrough.md +236 -0
- package/bin/docs/scanner/state-and-history.md +113 -0
- package/bin/docs/scanner/supply-chain.md +132 -0
- package/bin/docs/scanner/test-discovery.md +60 -0
- package/bin/docs/stylesheets/extra.css +183 -0
- package/bin/fixtures/benchmarks/core-native/suite-comprehensive.yaml +302 -0
- package/bin/fixtures/benchmarks/core-native/suite.yaml +59 -0
- package/bin/fixtures/benchmarks/core-native/targets/baseline/README.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/baseline/app.go +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/conflict-template/app.js +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/container-risky-template/Dockerfile +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/container-valid/Dockerfile +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/dependency-lock-missing/package.json +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/dependency-lock-present/package-lock.json +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/dependency-lock-present/package.json +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/empty-manifest-template/package.json +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/final-newline-template/app.py +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/.github/CODEOWNERS +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/.github/dependabot.yml +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/.github/workflows/validate.yml +15 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/CODE_OF_CONDUCT.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/CONTRIBUTING.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/LICENSE +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/README.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/SECURITY.md +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/package-lock.json +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/package.json +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/foundation-present/tests/example.test.js +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-server-timeout-risky-template/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-server-timeout-risky-template/server.go +18 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-malformed-template/client.go +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-malformed-template/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-risky-template/client.go +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-risky-template/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-safe/client.go +22 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-safe/go.mod +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/go-http-timeout-safe/hazards_test.go +8 -0
- package/bin/fixtures/benchmarks/core-native/targets/kubernetes-risky-template/deployment.yaml +27 -0
- package/bin/fixtures/benchmarks/core-native/targets/kubernetes-valid/deployment.yaml +26 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-operation-ids-risky-template/openapi.yaml +17 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-operation-responses-risky-template/openapi.yaml +11 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-root-malformed-template/openapi.yaml +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-root-risky-template/openapi.yaml +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/openapi-root-valid/openapi.yaml +17 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-command/app.js +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-command/package.json +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-placeholder/app.js +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/package-test-placeholder/package.json +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/private-key-template/deploy.pem +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/readme-missing/fixture.txt +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/runtime-missing/package-lock.json +6 -0
- package/bin/fixtures/benchmarks/core-native/targets/runtime-missing/package.json +4 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-locked/.terraform.lock.hcl +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-locked/main.tf +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-unlocked-template/.terraform.lock.hcl +3 -0
- package/bin/fixtures/benchmarks/core-native/targets/terraform-unlocked-template/main.tf +7 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-declaration-valid/app.py +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-declaration-valid/tests/test_app.py +5 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-path-without-declaration/app.py +2 -0
- package/bin/fixtures/benchmarks/core-native/targets/test-path-without-declaration/tests/test_app.py +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-malformed/.github/workflows/validate.yml +1 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-no-jobs/.github/workflows/empty.yml +9 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-risky/.github/workflows/risky.yml +10 -0
- package/bin/fixtures/benchmarks/core-native/targets/workflow-valid/.github/workflows/validate.yml +14 -0
- package/bin/packs/core-foundation.yaml +25 -0
- package/bin/packs/core-native.yaml +59 -0
- package/bin/prc.exe +0 -0
- package/bin/schemas/adapter-execution-v0.1.schema.json +101 -0
- package/bin/schemas/adapter-execution-v0.2.schema.json +128 -0
- package/bin/schemas/adapter-execution.schema.json +145 -0
- package/bin/schemas/adapter-fixture-report.schema.json +59 -0
- package/bin/schemas/adapter-fixture-suite.schema.json +104 -0
- package/bin/schemas/adapter-manifest-v0.1.schema.json +55 -0
- package/bin/schemas/adapter-manifest-v0.2.schema.json +122 -0
- package/bin/schemas/adapter-manifest-v0.3.schema.json +172 -0
- package/bin/schemas/adapter-manifest.schema.json +299 -0
- package/bin/schemas/adapter-message.schema.json +136 -0
- package/bin/schemas/adapter-registry-report.schema.json +13 -0
- package/bin/schemas/adapter-registry.schema.json +47 -0
- package/bin/schemas/agent-execution-v0.1.schema.json +26 -0
- package/bin/schemas/agent-execution.schema.json +26 -0
- package/bin/schemas/agent-failure-v0.1.schema.json +102 -0
- package/bin/schemas/agent-failure.schema.json +102 -0
- package/bin/schemas/agent-output-v0.1.schema.json +36 -0
- package/bin/schemas/agent-output.schema.json +36 -0
- package/bin/schemas/agent-task-v0.1.schema.json +44 -0
- package/bin/schemas/agent-task.schema.json +46 -0
- package/bin/schemas/assertion-catalog.schema.json +69 -0
- package/bin/schemas/benchmark-report.schema.json +94 -0
- package/bin/schemas/benchmark-suite.schema.json +116 -0
- package/bin/schemas/catalog-bundle.schema.json +27 -0
- package/bin/schemas/catalog-manifest.schema.json +23 -0
- package/bin/schemas/checkov-iac-policy-report.schema.json +82 -0
- package/bin/schemas/control-contracts.schema.json +44 -0
- package/bin/schemas/control-review-output.schema.json +51 -0
- package/bin/schemas/doctor.schema.json +53 -0
- package/bin/schemas/evidence-v0.1.schema.json +21 -0
- package/bin/schemas/evidence.schema.json +21 -0
- package/bin/schemas/finding-v0.1.schema.json +70 -0
- package/bin/schemas/finding.schema.json +70 -0
- package/bin/schemas/fix-contract-v0.1.schema.json +35 -0
- package/bin/schemas/fix-contract-v0.2.schema.json +46 -0
- package/bin/schemas/fix-contract-v0.3.schema.json +49 -0
- package/bin/schemas/fix-contract.schema.json +49 -0
- package/bin/schemas/grype-vulnerability-report.schema.json +88 -0
- package/bin/schemas/history.schema.json +37 -0
- package/bin/schemas/invalidation.schema.json +86 -0
- package/bin/schemas/inventory-v0.1.schema.json +42 -0
- package/bin/schemas/inventory-v0.2.schema.json +95 -0
- package/bin/schemas/inventory-v0.3.schema.json +139 -0
- package/bin/schemas/inventory.schema.json +139 -0
- package/bin/schemas/objective-catalog.schema.json +62 -0
- package/bin/schemas/pack-report.schema.json +16 -0
- package/bin/schemas/pack.schema.json +53 -0
- package/bin/schemas/plan-v0.1.schema.json +31 -0
- package/bin/schemas/plan-v0.2.schema.json +32 -0
- package/bin/schemas/plan-v0.3.schema.json +44 -0
- package/bin/schemas/plan-v0.4.schema.json +48 -0
- package/bin/schemas/plan-v0.5.schema.json +49 -0
- package/bin/schemas/plan-v0.6.schema.json +137 -0
- package/bin/schemas/plan.schema.json +137 -0
- package/bin/schemas/profile.schema.json +42 -0
- package/bin/schemas/project-config.schema.json +128 -0
- package/bin/schemas/release-manifest-v0.1.schema.json +86 -0
- package/bin/schemas/release-manifest-v0.2.schema.json +146 -0
- package/bin/schemas/release-manifest-v0.3.schema.json +146 -0
- package/bin/schemas/release-manifest.schema.json +6 -0
- package/bin/schemas/remediation-candidate-v0.1.schema.json +51 -0
- package/bin/schemas/remediation-candidate-v0.2.schema.json +51 -0
- package/bin/schemas/remediation-candidate-v0.3.schema.json +51 -0
- package/bin/schemas/remediation-candidate-v0.4.schema.json +69 -0
- package/bin/schemas/remediation-candidate.schema.json +69 -0
- package/bin/schemas/remediation-run-v0.1.schema.json +69 -0
- package/bin/schemas/remediation-run-v0.2.schema.json +78 -0
- package/bin/schemas/remediation-run-v0.3.schema.json +86 -0
- package/bin/schemas/remediation-run-v0.4.schema.json +86 -0
- package/bin/schemas/remediation-run-v0.5.schema.json +131 -0
- package/bin/schemas/remediation-run-v0.6.schema.json +143 -0
- package/bin/schemas/remediation-run-v0.7.schema.json +160 -0
- package/bin/schemas/remediation-run-v0.8.schema.json +161 -0
- package/bin/schemas/remediation-run.schema.json +161 -0
- package/bin/schemas/risk-exception-verification.schema.json +17 -0
- package/bin/schemas/risk-exception.schema.json +137 -0
- package/bin/schemas/run-result-v0.1.schema.json +54 -0
- package/bin/schemas/run-result-v0.10.schema.json +64 -0
- package/bin/schemas/run-result-v0.11.schema.json +146 -0
- package/bin/schemas/run-result-v0.2.schema.json +60 -0
- package/bin/schemas/run-result-v0.3.schema.json +52 -0
- package/bin/schemas/run-result-v0.4.schema.json +52 -0
- package/bin/schemas/run-result-v0.5.schema.json +60 -0
- package/bin/schemas/run-result-v0.6.schema.json +61 -0
- package/bin/schemas/run-result-v0.7.schema.json +61 -0
- package/bin/schemas/run-result-v0.8.schema.json +61 -0
- package/bin/schemas/run-result-v0.9.schema.json +77 -0
- package/bin/schemas/run-result.schema.json +165 -0
- package/bin/schemas/signature-verification.schema.json +22 -0
- package/bin/schemas/signature.schema.json +18 -0
- package/bin/schemas/state-check-v0.1.schema.json +27 -0
- package/bin/schemas/state-check.schema.json +28 -0
- package/bin/schemas/trust-store.schema.json +50 -0
- package/bin/schemas/verification-execution-v0.1.schema.json +105 -0
- package/bin/schemas/verification-execution.schema.json +105 -0
- package/bin/schemas/version-v0.1.schema.json +27 -0
- package/bin/schemas/version.schema.json +27 -0
- package/manifest.json +9 -0
- package/package.json +28 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Production Readiness Checklist contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
package/bin/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Production Readiness Checklist contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/bin/README.md
ADDED
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="docs/assets/social-card.png" alt="Production Readiness Checklist — Know what's ready and what still needs work" width="100%">
|
|
4
|
+
|
|
5
|
+
# Production Readiness Checklist
|
|
6
|
+
|
|
7
|
+
**Know what's ready and what still needs work.**
|
|
8
|
+
|
|
9
|
+
10,042 evidence-driven controls plus a read-only scanner for understanding what a project has proved, what failed, and what still needs review.
|
|
10
|
+
|
|
11
|
+
[](docs/engineering/00-overview.md)
|
|
12
|
+
[](https://github.com/MarinJursic/production-readiness-checklist/actions/workflows/validate.yml)
|
|
13
|
+
[](https://marinjursic.github.io/production-readiness-checklist/)
|
|
14
|
+
[](https://github.com/MarinJursic/production-readiness-checklist)
|
|
15
|
+
[](LICENSE)
|
|
16
|
+
|
|
17
|
+
[Begin the complete review](docs/engineering/00-overview.md) · [Check a release quickly](docs/guides/getting-started.md) · [Use with an AI agent](docs/guides/ai-assisted-review.md) · [Contribute](CONTRIBUTING.md)
|
|
18
|
+
|
|
19
|
+
⭐ [Star this project](https://github.com/MarinJursic/production-readiness-checklist) · 🤝 [Help improve it](CONTRIBUTING.md) · [Share on LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fmarinjursic.github.io%2Fproduction-readiness-checklist%2F) · [Share on X](https://twitter.com/intent/tweet?text=Production%20Readiness%20Checklist%3A%20know%20what%27s%20ready%20and%20what%20still%20needs%20work.&url=https%3A%2F%2Fmarinjursic.github.io%2Fproduction-readiness-checklist%2F)
|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
Production readiness is not “all tests are green.” It is an evidence-backed decision about the exact product and artifact you intend to operate.
|
|
26
|
+
|
|
27
|
+
This repository provides one start-to-finish review path:
|
|
28
|
+
|
|
29
|
+
1. **Engineering lifecycle:** 8,621 unique `USEQ-*` controls across 16 phases, from governance and requirements through implementation, delivery, operations, AI, and specialized domains.
|
|
30
|
+
2. **Production decision:** 1,421 `PRC-*` controls across ten release tracks, ending with evidence, sign-off, deployment, and verification.
|
|
31
|
+
|
|
32
|
+
The source material contained 25,359 checkbox lines across 215 documents. It was consolidated into 16 navigable lifecycle manuals, with exact duplicates, repeated boilerplate, mirrored production controls, and 1,969 repeated cross-volume occurrences in the final corpus removed. The [source consolidation manifest](docs/engineering/source-manifest.md) records the treatment of every source document and section.
|
|
33
|
+
|
|
34
|
+
> [!IMPORTANT]
|
|
35
|
+
> No checklist or AI review can prove that a nontrivial application has zero defects. A credible decision requires current evidence, explicit risk ownership, and tested recovery paths. One material failure can block approval regardless of how many unrelated controls pass.
|
|
36
|
+
|
|
37
|
+
## Start here
|
|
38
|
+
|
|
39
|
+
For a product-wide assessment, begin with the [complete engineering review](docs/engineering/00-overview.md) and follow phases 1–16 in order. Then complete the production-release tracks.
|
|
40
|
+
|
|
41
|
+
For an imminent release with an established engineering baseline:
|
|
42
|
+
|
|
43
|
+
1. Copy the [release assessment template](docs/records/release-assessment.md).
|
|
44
|
+
2. Run the [immediate no-go screen](docs/checklists/01-release-foundations.md#2-immediate-no-go-conditions).
|
|
45
|
+
3. Review affected lifecycle controls and every applicable production track.
|
|
46
|
+
4. Record Pass, Fail, Blocked, or Not Applicable against each stable control ID.
|
|
47
|
+
5. Complete the [evidence and decision track](docs/checklists/10-evidence-and-decision.md).
|
|
48
|
+
|
|
49
|
+
## Complete engineering review
|
|
50
|
+
|
|
51
|
+
| Phases | Coverage |
|
|
52
|
+
| --- | --- |
|
|
53
|
+
| [1. Governance](docs/engineering/01-governance-and-foundations.md) · [2. Product](docs/engineering/02-product-and-requirements.md) · [3. UX](docs/engineering/03-user-experience-web-and-content.md) · [4. Architecture](docs/engineering/04-architecture-and-design.md) | Scope, ownership, risk, requirements, user experience, and system design |
|
|
54
|
+
| [5. Code](docs/engineering/05-code-quality-and-implementation.md) · [6. Services and APIs](docs/engineering/06-application-services-and-apis.md) · [7. Data](docs/engineering/07-data-and-information-lifecycle.md) · [8. Security](docs/engineering/08-security-and-cryptography.md) · [9. Privacy](docs/engineering/09-privacy-and-data-protection.md) · [10. Testing](docs/engineering/10-verification-and-testing.md) | Product construction and verification |
|
|
55
|
+
| [11. Platform and delivery](docs/engineering/11-developer-experience-platform-and-delivery.md) · [12. Operations and SRE](docs/engineering/12-operations-sre-and-support.md) · [13. Documentation](docs/engineering/13-documentation-and-knowledge.md) | Build, deploy, observe, recover, support, and maintain |
|
|
56
|
+
| [14. Trust and safety](docs/engineering/14-trust-safety-and-ecosystems.md) · [15. AI and ML](docs/engineering/15-ai-ml-and-ai-assisted-development.md) · [16. Specialized domains](docs/engineering/16-specialized-domains-and-release-assurance.md) | Triggered and emerging product risks, connected to final release assurance |
|
|
57
|
+
|
|
58
|
+
The order is for dependable navigation, not a waterfall mandate. Iterative teams can revisit phases continuously, but every applicable control still needs a disposition before final approval.
|
|
59
|
+
|
|
60
|
+
## Final production review
|
|
61
|
+
|
|
62
|
+
The ten production tracks cover release identity and no-go conditions; product risk and architecture; source, build, and supply chain; environments, quality, and experience; application security; data, privacy, and performance; reliability and operations; maintenance, vendors, and compliance; conditional features; and the final evidence-backed decision.
|
|
63
|
+
|
|
64
|
+
[Start the production review](docs/checklists/01-release-foundations.md) or read the [readiness principle](docs/checklists/00-readiness-principle.md).
|
|
65
|
+
|
|
66
|
+
## Use it with Claude or another coding agent
|
|
67
|
+
|
|
68
|
+
The root [`CLAUDE.md`](CLAUDE.md) and copy-ready prompts teach an agent to distinguish verified evidence from assumptions, cite repository evidence, and leave production-only or organizational questions Blocked.
|
|
69
|
+
|
|
70
|
+
```text
|
|
71
|
+
Perform a read-only, full-lifecycle review using CLAUDE.md.
|
|
72
|
+
Review docs/engineering phases 1–16, then docs/checklists for the final release gate.
|
|
73
|
+
Cite evidence for every Pass and list every unknown separately.
|
|
74
|
+
Do not modify code and do not make the final release decision.
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
- [Full repository review prompt](docs/prompts/full-readiness-review.md)
|
|
78
|
+
- [Release-diff review prompt](docs/prompts/release-diff-review.md)
|
|
79
|
+
- [Evidence challenge prompt](docs/prompts/evidence-challenge.md)
|
|
80
|
+
- [AI-assisted review guide](docs/guides/ai-assisted-review.md)
|
|
81
|
+
|
|
82
|
+
## Scanner: quickest path
|
|
83
|
+
|
|
84
|
+
The experimental scanner turns the checklist into a repeatable repository assessment. Every scan puts all **10,042 controls** in the detailed report. The quick profile runs 18 high-signal local checks, while the default `prc/core-repository@1.0` profile runs 40 narrow deterministic checks. A narrow check can prove one exact fact, but it cannot silently mark a broader control as fully passed. Everything that still needs proof stays visible.
|
|
85
|
+
|
|
86
|
+
A normal scan is read-only. It does **not** fix files, run project code, install project dependencies, or turn missing evidence into a pass.
|
|
87
|
+
|
|
88
|
+
<div align="center">
|
|
89
|
+
|
|
90
|
+
<a href="docs/assets/production-readiness-scan-demo.mp4"><img src="docs/assets/production-readiness-scan-demo.gif" alt="A continuous 27-second demo of prc scan checking a sample project, showing pass and fail evidence, and opening the readiness report" width="960"></a>
|
|
91
|
+
|
|
92
|
+
<sub>Run one command, review exact evidence, then explore the full 10,042-control report. Click the demo for the sharper MP4.</sub>
|
|
93
|
+
|
|
94
|
+
</div>
|
|
95
|
+
|
|
96
|
+
### Easiest setup with npm
|
|
97
|
+
|
|
98
|
+
The npm package source, launcher, six native platform packages, and release builder are implemented. The public package names were still unpublished when checked on August 25, 2026, so the commands below start working after the first release is listed in this project's release notes.
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
npm install -D @marinjursic/prc
|
|
102
|
+
npx prc quick
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Use `npx prc scan` for the larger 40-check local scan. That is the normal short path. The package has no install scripts and no third-party JavaScript dependencies. It does not download a binary after installation. npm selects one platform package; the launcher checks its release manifest and native binary hash, then starts it without a shell.
|
|
106
|
+
|
|
107
|
+
For a security-sensitive or repeatable install, pin a version from the scanner release notes and disable dependency install hooks:
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
npm install -D -E --ignore-scripts --no-audit --no-fund @marinjursic/prc@X.Y.Z
|
|
111
|
+
npm exec --offline --no -- prc scan
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
The install places reviewed package files in `node_modules` and updates `package.json` and `package-lock.json`; review those changes before committing them. The offline run fails instead of downloading a missing package.
|
|
115
|
+
|
|
116
|
+
For a short command that the whole project can reuse, add this to `package.json`:
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"scripts": {
|
|
121
|
+
"scan": "prc scan"
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Run it with `npm run scan`. npm reserves its top-level command names, so a project cannot add a custom `npm scan` command. Use `npm run --ignore-scripts scan` when you also want npm to skip `prescan` and `postscan` hooks.
|
|
127
|
+
|
|
128
|
+
### One-time setup from source
|
|
129
|
+
|
|
130
|
+
You need Git and Go 1.27 or a compatible later supported toolchain.
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
git clone https://github.com/MarinJursic/production-readiness-checklist.git
|
|
134
|
+
cd production-readiness-checklist
|
|
135
|
+
go mod verify
|
|
136
|
+
go build -trimpath -o prc ./cmd/prc
|
|
137
|
+
./prc doctor
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
The `prc` binary is now ready. `doctor` checks that the target and bundled catalog
|
|
141
|
+
can be read and explains any missing optional tool; it does not run the target.
|
|
142
|
+
Keep the binary in this directory, because the scanner automatically finds the compatible bundled `catalog/` beside it. Published scanner release archives already contain the binary, catalog, adapter manifests, schemas, and scanner guides together; verify a downloaded archive as described in the [release guide](docs/scanner/releases.md), extract it, and run from anywhere without installing project dependencies.
|
|
143
|
+
|
|
144
|
+
To use `prc` without the `./` prefix, add this entire directory to `PATH`; do not move only the binary away from its compatible catalog. On macOS or Linux, for example: `export PATH="/absolute/path/to/production-readiness-checklist:$PATH"`.
|
|
145
|
+
|
|
146
|
+
### Scan a project
|
|
147
|
+
|
|
148
|
+
Choose one of three clear levels:
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
# Fast local screen: 18 high-signal checks, no AI.
|
|
152
|
+
./prc quick /path/to/your/project
|
|
153
|
+
|
|
154
|
+
# Core local scan: 40 checks, no AI.
|
|
155
|
+
./prc scan /path/to/your/project
|
|
156
|
+
|
|
157
|
+
# Full catalog AI advice, after provider login.
|
|
158
|
+
./prc full codex /path/to/your/project
|
|
159
|
+
# or: ./prc full claude /path/to/your/project
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Every level still lists all 10,042 controls in the report. `quick` means fewer
|
|
163
|
+
local checks and less terminal noise; it does not mean the other controls
|
|
164
|
+
passed. `full` runs the core local scan and asks the selected AI provider for
|
|
165
|
+
advice on every active control. AI advice remains unverified.
|
|
166
|
+
|
|
167
|
+
From the extracted or cloned scanner directory:
|
|
168
|
+
|
|
169
|
+
```bash
|
|
170
|
+
./prc scan /path/to/your/project
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
To scan the current directory, use:
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
./prc scan
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
The command accepts options before or after the project path. The terminal shows every deterministic result with a word and symbol. On a real terminal, Pass is green and Fail is red; redirected and machine output has no color:
|
|
180
|
+
|
|
181
|
+
```text
|
|
182
|
+
╭────────────────────────────────────────────────────╮
|
|
183
|
+
│ ✓ PRODUCTION READINESS CHECKLIST │
|
|
184
|
+
│ Know what's ready and what still needs work. │
|
|
185
|
+
╰────────────────────────────────────────────────────╯
|
|
186
|
+
|
|
187
|
+
Production Readiness Checklist 0.1.0-dev
|
|
188
|
+
|
|
189
|
+
Run: 91c2…
|
|
190
|
+
Profile: prc/core-repository@1.0
|
|
191
|
+
Target: example-api (4c0e…)
|
|
192
|
+
Mode: scan only — no fixes and no project scripts
|
|
193
|
+
|
|
194
|
+
Checking 40 deterministic assertions...
|
|
195
|
+
|
|
196
|
+
✓ PASS PRC-A-CORE-001 Observed README.md.
|
|
197
|
+
✗ FAIL PRC-A-CORE-007 No supported lock file was found for node.
|
|
198
|
+
! BLOCKED PRC-A-CORE-013 The optional analysis was not authorized.
|
|
199
|
+
? MANUAL PRC-A-CORE-012 An accountable reviewer must supply evidence.
|
|
200
|
+
|
|
201
|
+
╭─ SCAN COMPLETE
|
|
202
|
+
│ Needs work
|
|
203
|
+
│ ██████████████████░░ 93% · 37/40 applicable checks passed
|
|
204
|
+
│ 1 failed · 1 unresolved · 1 manual · 0 not applicable
|
|
205
|
+
╰─ One or more required local checks failed.
|
|
206
|
+
|
|
207
|
+
Needs attention
|
|
208
|
+
✗ FAIL HIGH PRC-A-CORE-007 No supported lock file was found for node.
|
|
209
|
+
! BLOCKED MEDIUM PRC-A-CORE-013 The optional analysis was not authorized.
|
|
210
|
+
? MANUAL LOW PRC-A-CORE-012 An accountable reviewer must supply evidence.
|
|
211
|
+
|
|
212
|
+
Coverage
|
|
213
|
+
Local checks 40 total · 37 passed · 3 need attention · 0 did not apply
|
|
214
|
+
Full catalog 10042/10042 included · 10020 need evidence or review
|
|
215
|
+
|
|
216
|
+
Report
|
|
217
|
+
Detailed report: /Users/you/Library/Caches/prc/reports/example-api-91c2….html
|
|
218
|
+
Open it for remediation steps, evidence, category scores, and all controls.
|
|
219
|
+
Scan mode: report only; no fixes were applied. No project scripts were run.
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Open the reported HTML file in a browser. The first screen shows the project, one large score, the readiness result, and four counts: passed, failed, review, and not needed. Smaller category scores come next, followed by verified problems sorted from critical to informational. Each problem begins as a compact, severity-colored row; open it to see the full reason and suggested next action. Scoring notes, passed checks, raw evidence, long file lists, IDs, scan metadata, and the complete 10,042-control catalog stay behind clearly labeled detail controls until you need them. `needs_review` means the scanner has not proved the broad rule. `partially_verified` means linked narrow checks passed; it is still not a complete Pass. Reports are private and stored outside the scanned project by default, so creating one does not change the project being scanned.
|
|
223
|
+
|
|
224
|
+
The report separates verified problems, narrow checks that passed, unresolved
|
|
225
|
+
local checks, manual decisions, broad controls still needing evidence, and AI
|
|
226
|
+
advice. An AI citation can be marked `snapshot_location_validated` only when it
|
|
227
|
+
points to a real line in the exact screened snapshot. Its claim is still marked
|
|
228
|
+
`advisory_unverified`: a real line can be irrelevant or misunderstood.
|
|
229
|
+
|
|
230
|
+
A result-bearing exit code is not a crash: `0` means the selected profile passed, `1` means an active gate failed, and `2` means evidence remains incomplete or blocked. Use `--exit-policy never` only when a script should always receive `0` after a completed report; the report still preserves the real terminal state.
|
|
231
|
+
|
|
232
|
+
Useful report options:
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
# Choose a new output path; an existing file is never overwritten.
|
|
236
|
+
./prc scan /path/to/project --report /safe/path/readiness.html
|
|
237
|
+
|
|
238
|
+
# Print JSON for another tool. Machine formats do not create an extra HTML file.
|
|
239
|
+
./prc scan /path/to/project --format json --exit-policy never > readiness.json
|
|
240
|
+
|
|
241
|
+
# Explicitly suppress the default HTML report.
|
|
242
|
+
./prc scan /path/to/project --no-report
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
The native `prc scan` command remains available for Go, Python, Java, Rust, infrastructure, air-gapped, and mixed repositories that do not use npm.
|
|
246
|
+
|
|
247
|
+
### Optional deep review with Codex or Claude Code
|
|
248
|
+
|
|
249
|
+
The ordinary scan is local and deterministic. AI review is a separate option for broad or subjective rules such as project-appropriate folder structure. First sign in through an installed provider CLI, then scan:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
prc login codex
|
|
253
|
+
prc full codex
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
For Claude Code, use:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
prc login claude
|
|
260
|
+
prc full claude
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
`prc auth` shows login status and `prc logout codex` or `prc logout claude` clears the scanner's saved login. These commands use each provider's official sign-in flow. The scanner stores that login in a private scanner-only directory, separate from the provider's normal configuration, plugins, instructions, and sessions. Existing supported API-key environment variables remain an alternative.
|
|
264
|
+
|
|
265
|
+
`prc full` uses the same guarded path as `prc scan --ai`. Selecting the provider is also your explicit permission to send bounded, secret-screened source excerpts to that remote provider. The provider receives no target workspace path and gets no shell, file-reading, write, web, MCP, or install tools. Do not enable AI review for source that its provider is not allowed to process.
|
|
266
|
+
|
|
267
|
+
The full run is intentionally large: controls are sent in sealed batches of at most eight, and the coordinator must create one separate subagent for every control. Completed batches are saved outside the target and reused when the same scan resumes. This can take a long time and use many tokens. AI results are always labeled advisory; they cannot create a verified Pass, a final Not Applicable decision, or modify the project.
|
|
268
|
+
|
|
269
|
+
Advanced options such as reviewing one control, changing effort, or setting a Claude cost limit remain available in the [safe AI control review](docs/scanner/ai-control-review.md).
|
|
270
|
+
|
|
271
|
+
### What it checks today
|
|
272
|
+
|
|
273
|
+
The default profile checks repository governance, immutable source identity, dependency and runtime declarations, discoverable tests, GitHub Actions safety, private-key armor, OpenAPI contracts, Go HTTP timeout hazards, container definitions, Terraform locks, and Kubernetes workload policy. Focused API, Kubernetes, supply-chain, and infrastructure-as-code profiles are also available. Reviewed offline OCI adapters exist for Gitleaks, Syft, Grype, and Checkov, but external analyzers are never launched by the simple command; they require an explicit `verify-local` capability grant, an exact profile binding, and pinned local inputs. The [infrastructure policy guide](docs/scanner/infrastructure-policy.md) includes the exact Checkov command and its limits.
|
|
274
|
+
|
|
275
|
+
The scanner includes every production concern in its report, but it does not pretend every concern can be proved from source code. Unsupported runtime, organizational, environment, legal, and human evidence stays visibly blocked or in review. That is intentional: the report describes what was actually proven for one target and evidence set, not an unqualified claim that software has no defects.
|
|
276
|
+
|
|
277
|
+
Fixing is a separate workflow. `prc scan` never calls it. The bounded `prc fix` command works only in isolated candidate directories and supports a deliberately small set of independently verifiable changes; it never merges, deploys, or releases anything automatically.
|
|
278
|
+
|
|
279
|
+
Continue with the [complete scanner quick start](docs/scanner/getting-started.md), [safe start-to-finish walkthrough](docs/scanner/security-walkthrough.md), [CLI and exit codes](docs/scanner/cli-contract.md), [diagnostics](docs/scanner/doctor.md), [read-only agent integration](docs/scanner/mcp-agent-integration.md), [project configuration](docs/scanner/configuration.md), [state and history](docs/scanner/state-and-history.md), [supply-chain scanning](docs/scanner/supply-chain.md), and [isolated remediation](docs/scanner/remediation.md). The [research findings and improvement plan](research/PROJECT_RESEARCH_AND_IMPROVEMENT_PLAN.md) records the Reddit audit, standards review, coverage gaps, and prioritized next work. Architecture details live in the [product contract](docs/architecture/product-contract.md), [trust model](docs/architecture/trust-model.md), [adapter protocol](docs/architecture/adapters.md), [evidence model](docs/architecture/evidence-and-results.md), and [remediation contract](docs/architecture/remediation-contract.md).
|
|
280
|
+
|
|
281
|
+
## Evidence, not checkbox theater
|
|
282
|
+
|
|
283
|
+
| Field | Example |
|
|
284
|
+
| --- | --- |
|
|
285
|
+
| Control | `USEQ-1A2B3C4D` or `PRC-34-017` |
|
|
286
|
+
| Status | Pass / Fail / Blocked / Not Applicable |
|
|
287
|
+
| Owner | One accountable person |
|
|
288
|
+
| Evidence | Test run, configuration export, dashboard, decision record, or drill report |
|
|
289
|
+
| Scope | Product, commit, artifact, configuration, data, and environment |
|
|
290
|
+
| Reviewed | Reviewer, date, freshness, and limitations |
|
|
291
|
+
| Exception | Risk owner, compensating control, remediation date, and expiry |
|
|
292
|
+
|
|
293
|
+
Use the [evidence record](docs/records/evidence-record.md) and [risk exception](docs/records/risk-exception.md) templates to keep reviews auditable.
|
|
294
|
+
|
|
295
|
+
## Repository structure
|
|
296
|
+
|
|
297
|
+
```text
|
|
298
|
+
.
|
|
299
|
+
├── adapters/ # Reviewed, immutable external-analyzer manifests
|
|
300
|
+
├── CLAUDE.md # Guardrails for AI-assisted reviews
|
|
301
|
+
├── catalog/ # Versioned objectives, assertions, and profiles
|
|
302
|
+
├── cmd/prc/ # Experimental scanner CLI
|
|
303
|
+
├── docs/
|
|
304
|
+
│ ├── engineering/ # 16-phase lifecycle review + source manifest
|
|
305
|
+
│ ├── checklists/ # 10 final production tracks
|
|
306
|
+
│ ├── guides/ # Adoption and AI-review guidance
|
|
307
|
+
│ ├── prompts/ # Copy-ready agent prompts
|
|
308
|
+
│ ├── records/ # Evidence, risk, release, and decision templates
|
|
309
|
+
│ └── scanner/ # Scanner usage and generated profile documentation
|
|
310
|
+
├── fixtures/ # Positive, negative, and adversarial scanner cases
|
|
311
|
+
├── scanner/ # Inventory, evaluation, adapters, and bounded remediation
|
|
312
|
+
├── schemas/ # Versioned catalog and scanner JSON schemas
|
|
313
|
+
├── scripts/ # Generation, validation, and integrity tooling
|
|
314
|
+
└── .github/ # Issue forms, PR template, and CI workflows
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
## Standards and scope
|
|
318
|
+
|
|
319
|
+
The structure was researched against whole-lifecycle and engineering-quality sources including ISO/IEC/IEEE 12207:2026, SWEBOK Guide V4.0, ISO/IEC 25010:2023, NIST SSDF 1.1, OWASP ASVS, WCAG 2.2, NIST AI RMF, and DORA guidance. See [references and scope](docs/references.md) for primary links and limitations.
|
|
320
|
+
|
|
321
|
+
This project is engineering guidance, not legal advice, a certification, or a substitute for qualified security, privacy, accessibility, safety, or compliance review.
|
|
322
|
+
|
|
323
|
+
## Contributing
|
|
324
|
+
|
|
325
|
+
This project should improve through real-world experience. If a control is missing, duplicated, unclear, outdated, incorrectly categorized, or difficult to verify, please help fix it. Contributions can expand the checklist, improve existing wording and evidence guidance, strengthen the documentation and tooling, or advance the future AI scanner.
|
|
326
|
+
|
|
327
|
+
- [Propose a missing or improved control](https://github.com/MarinJursic/production-readiness-checklist/issues/new?template=control-proposal.yml)
|
|
328
|
+
- [Report a documentation or navigation problem](https://github.com/MarinJursic/production-readiness-checklist/issues/new?template=documentation.yml)
|
|
329
|
+
- Read the [contribution guide](CONTRIBUTING.md) and open a focused pull request
|
|
330
|
+
|
|
331
|
+
First-time contributors are welcome. Please report vulnerabilities privately as described in [SECURITY.md](SECURITY.md).
|
|
332
|
+
|
|
333
|
+
If this project helps your team, [star the repository](https://github.com/MarinJursic/production-readiness-checklist), share the [documentation site](https://marinjursic.github.io/production-readiness-checklist/), or use GitHub’s **Cite this repository** action via [CITATION.cff](CITATION.cff).
|
|
334
|
+
|
|
335
|
+
Released under the [MIT License](LICENSE).
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Third-party notices
|
|
2
|
+
|
|
3
|
+
## Checkov executable image and embedded policies
|
|
4
|
+
|
|
5
|
+
`adapters/checkov-v3.3.8.yaml` references the official immutable
|
|
6
|
+
[Checkov v3.3.8](https://github.com/bridgecrewio/checkov/releases/tag/3.3.8)
|
|
7
|
+
OCI image for offline Terraform, Kubernetes, and Dockerfile policy analysis.
|
|
8
|
+
The image and its embedded policies are not vendored in this repository.
|
|
9
|
+
Checkov is copyright Bridgecrew and contributors and is licensed under the
|
|
10
|
+
[Apache License 2.0](https://github.com/bridgecrewio/checkov/blob/3.3.8/LICENSE).
|
|
11
|
+
|
|
12
|
+
The adapter disables network access, policy downloads, result uploads,
|
|
13
|
+
external module downloads, and variable evaluation. Policy results remain
|
|
14
|
+
subject to the licenses and notices of the checks and dependencies included in
|
|
15
|
+
the upstream image.
|
|
16
|
+
|
|
17
|
+
## Grype executable image and vulnerability database
|
|
18
|
+
|
|
19
|
+
`adapters/grype-v0.116.1.yaml` references the official immutable
|
|
20
|
+
[Grype v0.116.1](https://github.com/anchore/grype/releases/tag/v0.116.1) OCI
|
|
21
|
+
image for offline repository dependency-vulnerability analysis. The image and
|
|
22
|
+
the separately acquired vulnerability database are not vendored in this
|
|
23
|
+
repository. Grype is copyright Anchore, Inc. and contributors and is licensed
|
|
24
|
+
under the [Apache License 2.0](https://github.com/anchore/grype/blob/v0.116.1/LICENSE).
|
|
25
|
+
|
|
26
|
+
Grype databases are distributed by Anchore from `grype.anchore.io`. A scan
|
|
27
|
+
accepts only a locally mounted schema-v6 database whose official archive URL
|
|
28
|
+
contains an immutable SHA-256 checksum and whose recorded build time is no more
|
|
29
|
+
than 120 hours old. Database content and provider feeds retain their respective
|
|
30
|
+
upstream terms; consult the database source metadata before redistribution.
|
|
31
|
+
|
|
32
|
+
## Syft executable image
|
|
33
|
+
|
|
34
|
+
`adapters/syft-v1.51.0.yaml` references the official immutable non-root
|
|
35
|
+
[Syft v1.51.0](https://github.com/anchore/syft/releases/tag/v1.51.0) OCI image
|
|
36
|
+
for offline software bill-of-materials generation. The image is not vendored in
|
|
37
|
+
this repository. Syft is copyright Anchore, Inc. and contributors and is
|
|
38
|
+
licensed under the [Apache License 2.0](https://github.com/anchore/syft/blob/v1.51.0/LICENSE).
|
|
39
|
+
|
|
40
|
+
## Gitleaks default configuration
|
|
41
|
+
|
|
42
|
+
`scanner/adapter/gitleaks-v8.30.0.toml.gz` is a deterministic gzip container for
|
|
43
|
+
the unmodified default configuration from
|
|
44
|
+
[Gitleaks v8.30.0](https://github.com/gitleaks/gitleaks/tree/v8.30.0), embedded
|
|
45
|
+
for deterministic offline secret scanning. The archive SHA-256 is
|
|
46
|
+
`da1838bd7cedb1bbd297163435c1675e777babb98ddf641a653f309733bd1fd1`;
|
|
47
|
+
the exact decompressed configuration SHA-256 is
|
|
48
|
+
`e163e53b9e7e8a8511e77271e2b323ed057759542a6d988258afe3a1fa329caf`.
|
|
49
|
+
|
|
50
|
+
The repository's `.gitleaksignore` contains one full fingerprint for the
|
|
51
|
+
historical uncompressed vendored configuration, whose own detector patterns
|
|
52
|
+
triggered one of its rules. It does not suppress a rule or current path.
|
|
53
|
+
|
|
54
|
+
MIT License
|
|
55
|
+
|
|
56
|
+
Copyright (c) 2019 Zachary Rice
|
|
57
|
+
|
|
58
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
59
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
60
|
+
in the Software without restriction, including without limitation the rights
|
|
61
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
62
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
|
63
|
+
so, subject to the following conditions:
|
|
64
|
+
|
|
65
|
+
The above copyright notice and this permission notice shall be included in all
|
|
66
|
+
copies or substantial portions of the Software.
|
|
67
|
+
|
|
68
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
69
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
70
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
71
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
72
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
73
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
74
|
+
SOFTWARE.
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
schema_version: prc.adapter-manifest/v0.4
|
|
2
|
+
id: prc.adapter.checkov@3.3
|
|
3
|
+
title: Checkov offline infrastructure policy analysis
|
|
4
|
+
description: Runs the reviewed Checkov 3.3.8 image against exactly the inventoried Terraform, Kubernetes, and container definition files with scanner-owned offline policy.
|
|
5
|
+
publisher:
|
|
6
|
+
id: prc-project
|
|
7
|
+
name: Production Readiness Checklist
|
|
8
|
+
owner: scanner-maintainers
|
|
9
|
+
maintenance: active
|
|
10
|
+
protocol: prc-adapter-checkov-json-v1
|
|
11
|
+
output_schema: checkov.report/v3.3.8+prc-v1
|
|
12
|
+
observation_kinds: [iac-policy]
|
|
13
|
+
compatibility:
|
|
14
|
+
engine_apis: [prc.engine/v0.1]
|
|
15
|
+
tool:
|
|
16
|
+
name: checkov
|
|
17
|
+
version: 3.3.8
|
|
18
|
+
upstream: https://github.com/bridgecrewio/checkov
|
|
19
|
+
formats:
|
|
20
|
+
- name: checkov-json
|
|
21
|
+
versions: [3.3.8]
|
|
22
|
+
limitations:
|
|
23
|
+
- Evaluates only statically inventoried Terraform, Terraform JSON, Kubernetes, and Dockerfile inputs with the checks embedded in the pinned Checkov image.
|
|
24
|
+
- Does not run Helm, Kustomize, CDK, Serverless, external modules, external checks, variable evaluation, Prisma Cloud enrichment, result upload, or network-backed policy downloads.
|
|
25
|
+
- Target Checkov configuration cannot change the scanner-owned framework, input, output, suppression, download, or failure policy; inline suppressions and parsing errors fail the adapter closed.
|
|
26
|
+
- A file for which Checkov produces no passed or failed policy record is reported as unsupported rather than clean.
|
|
27
|
+
- Static policy analysis can contain false positives and false negatives and does not prove the security or behavior of deployed infrastructure.
|
|
28
|
+
runner: oci
|
|
29
|
+
image: docker.io/bridgecrew/checkov@sha256:c64ffb6d6fc8087c896341a2c697770a04a1cf558db04fa7b8129d8ca6bce336
|
|
30
|
+
command:
|
|
31
|
+
- --config-file
|
|
32
|
+
- /workspace/.prc/checkov-config.json
|
|
33
|
+
capabilities:
|
|
34
|
+
read_workspace: true
|
|
35
|
+
write_scratch: true
|
|
36
|
+
network: deny
|
|
37
|
+
network_hosts: []
|
|
38
|
+
secret_handles: []
|
|
39
|
+
child_processes: true
|
|
40
|
+
resources:
|
|
41
|
+
timeout_seconds: 300
|
|
42
|
+
memory_mb: 2048
|
|
43
|
+
cpus: 1
|
|
44
|
+
pids: 128
|
|
45
|
+
tmpfs_mb: 256
|
|
46
|
+
max_line_bytes: 262144
|
|
47
|
+
max_messages: 100000
|
|
48
|
+
max_stdin_bytes: 1024
|
|
49
|
+
max_stdout_bytes: 134217728
|
|
50
|
+
max_stderr_bytes: 65536
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
schema_version: prc.adapter-manifest/v0.4
|
|
2
|
+
id: prc.adapter.gitleaks@8.30
|
|
3
|
+
title: Gitleaks current-tree secret detection
|
|
4
|
+
description: Runs the reviewed Gitleaks 8.30.0 image against the exact sealed inventory snapshot and normalizes a fully redacted JSON report.
|
|
5
|
+
publisher:
|
|
6
|
+
id: prc-project
|
|
7
|
+
name: Production Readiness Checklist
|
|
8
|
+
owner: scanner-maintainers
|
|
9
|
+
maintenance: active
|
|
10
|
+
protocol: prc-adapter-gitleaks-json-v1
|
|
11
|
+
output_schema: gitleaks.report/v8.30.0
|
|
12
|
+
observation_kinds: [secret-detection]
|
|
13
|
+
compatibility:
|
|
14
|
+
engine_apis: [prc.engine/v0.1]
|
|
15
|
+
tool:
|
|
16
|
+
name: gitleaks
|
|
17
|
+
version: 8.30.0
|
|
18
|
+
upstream: https://github.com/gitleaks/gitleaks
|
|
19
|
+
formats:
|
|
20
|
+
- name: gitleaks-json
|
|
21
|
+
versions: [8.30.0]
|
|
22
|
+
limitations:
|
|
23
|
+
- Scans only regular files in the current sealed inventory; Git history and symlinks are not scanned.
|
|
24
|
+
- Files larger than 10 MiB, archives, and recursively decoded content are not scanned.
|
|
25
|
+
- Uses the pinned upstream default rules and ignores target-owned Gitleaks configuration, ignore files, and allow comments.
|
|
26
|
+
- Secret detection can produce false positives and false negatives; a clean result is not proof that no secret exists.
|
|
27
|
+
runner: oci
|
|
28
|
+
image: ghcr.io/gitleaks/gitleaks@sha256:691af3c7c5a48b16f187ce3446d5f194838f91238f27270ed36eef6359a574d9
|
|
29
|
+
command:
|
|
30
|
+
- dir
|
|
31
|
+
- --no-banner
|
|
32
|
+
- --no-color
|
|
33
|
+
- --log-level=fatal
|
|
34
|
+
- --config=/dev/stdin
|
|
35
|
+
- --gitleaks-ignore-path=/dev/null
|
|
36
|
+
- --ignore-gitleaks-allow
|
|
37
|
+
- --max-archive-depth=0
|
|
38
|
+
- --max-decode-depth=0
|
|
39
|
+
- --max-target-megabytes=10
|
|
40
|
+
- --timeout=110
|
|
41
|
+
- --redact=100
|
|
42
|
+
- --report-format=json
|
|
43
|
+
- --report-path=-
|
|
44
|
+
- --exit-code=0
|
|
45
|
+
- /workspace
|
|
46
|
+
capabilities:
|
|
47
|
+
read_workspace: true
|
|
48
|
+
write_scratch: false
|
|
49
|
+
network: deny
|
|
50
|
+
network_hosts: []
|
|
51
|
+
secret_handles: []
|
|
52
|
+
child_processes: true
|
|
53
|
+
resources:
|
|
54
|
+
timeout_seconds: 120
|
|
55
|
+
memory_mb: 512
|
|
56
|
+
cpus: 1
|
|
57
|
+
pids: 64
|
|
58
|
+
tmpfs_mb: 1
|
|
59
|
+
max_line_bytes: 262144
|
|
60
|
+
max_messages: 10000
|
|
61
|
+
max_stdin_bytes: 1048576
|
|
62
|
+
max_stdout_bytes: 16777216
|
|
63
|
+
max_stderr_bytes: 65536
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
schema_version: prc.adapter-manifest/v0.4
|
|
2
|
+
id: prc.adapter.grype@0.116
|
|
3
|
+
title: Grype offline dependency vulnerability analysis
|
|
4
|
+
description: Runs the reviewed Grype 0.116.1 image against the exact sealed inventory with a hash-bound fresh offline database and preserves a canonical enriched report.
|
|
5
|
+
publisher:
|
|
6
|
+
id: prc-project
|
|
7
|
+
name: Production Readiness Checklist
|
|
8
|
+
owner: scanner-maintainers
|
|
9
|
+
maintenance: active
|
|
10
|
+
protocol: prc-adapter-grype-json-v1
|
|
11
|
+
output_schema: grype.report/v0.116.1+prc-v1
|
|
12
|
+
observation_kinds: [dependency-vulnerability]
|
|
13
|
+
compatibility:
|
|
14
|
+
engine_apis: [prc.engine/v0.1]
|
|
15
|
+
tool:
|
|
16
|
+
name: grype
|
|
17
|
+
version: 0.116.1
|
|
18
|
+
upstream: https://github.com/anchore/grype
|
|
19
|
+
formats:
|
|
20
|
+
- name: grype-json
|
|
21
|
+
versions: [0.116.1]
|
|
22
|
+
limitations:
|
|
23
|
+
- Scans packages discoverable from regular files in the current sealed repository inventory; it does not assess a built release artifact or container image.
|
|
24
|
+
- Requires an operator-supplied Grype schema-v6 database built no more than 120 hours before the scan and acquired separately with the reviewed Grype database workflow.
|
|
25
|
+
- Package discovery, ecosystem matching, advisory correlation, severity, fixes, CVSS, EPSS, KEV, and risk data can contain false positives, false negatives, aliases, delays, or incomplete metadata.
|
|
26
|
+
- The scanner-owned configuration disables network access, application update checks, database updates, external Maven lookup, target ignore/VEX policy, and target Grype configuration.
|
|
27
|
+
- Default Grype matcher behavior and its built-in kernel-header ignore rules remain in effect; ignored or suppressed matches and package alerts cause this adapter to fail closed.
|
|
28
|
+
- A clean repository result is time-bound to the recorded database and is not proof that no vulnerability exists or that dependencies are reachable in production.
|
|
29
|
+
runner: oci
|
|
30
|
+
image: ghcr.io/anchore/grype@sha256:1e71065c0a4cff3e6bd3b8add525ffac4343eb4971694eb90a31cf6d4d3e85db
|
|
31
|
+
command:
|
|
32
|
+
- dir:/workspace
|
|
33
|
+
- --quiet
|
|
34
|
+
- --config=/workspace/.prc/grype-config.yaml
|
|
35
|
+
- --output=json
|
|
36
|
+
capabilities:
|
|
37
|
+
read_workspace: true
|
|
38
|
+
write_scratch: true
|
|
39
|
+
network: deny
|
|
40
|
+
network_hosts: []
|
|
41
|
+
secret_handles: []
|
|
42
|
+
child_processes: true
|
|
43
|
+
resources:
|
|
44
|
+
timeout_seconds: 300
|
|
45
|
+
memory_mb: 2048
|
|
46
|
+
cpus: 1
|
|
47
|
+
pids: 128
|
|
48
|
+
tmpfs_mb: 256
|
|
49
|
+
max_line_bytes: 262144
|
|
50
|
+
max_messages: 10000
|
|
51
|
+
max_stdin_bytes: 1024
|
|
52
|
+
max_stdout_bytes: 134217728
|
|
53
|
+
max_stderr_bytes: 65536
|
|
54
|
+
data_mounts:
|
|
55
|
+
- name: grype-db
|
|
56
|
+
destination: /prc-inputs/grype-db
|
|
57
|
+
max_files: 16
|
|
58
|
+
max_bytes: 3221225472
|