keelcore-standards 0.1.0__tar.gz

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.

Potentially problematic release.


This version of keelcore-standards might be problematic. Click here for more details.

Files changed (81) hide show
  1. keelcore_standards-0.1.0/.github/CODEOWNERS +31 -0
  2. keelcore_standards-0.1.0/.github/dependabot.yml +42 -0
  3. keelcore_standards-0.1.0/.github/workflows/ci.yml +90 -0
  4. keelcore_standards-0.1.0/.github/workflows/publish.yml +110 -0
  5. keelcore_standards-0.1.0/.gitignore +49 -0
  6. keelcore_standards-0.1.0/.markdownlint.json +7 -0
  7. keelcore_standards-0.1.0/.nvmrc +1 -0
  8. keelcore_standards-0.1.0/.python-version +1 -0
  9. keelcore_standards-0.1.0/CHANGELOG.md +58 -0
  10. keelcore_standards-0.1.0/Makefile +210 -0
  11. keelcore_standards-0.1.0/PKG-INFO +6 -0
  12. keelcore_standards-0.1.0/README.md +99 -0
  13. keelcore_standards-0.1.0/VERSION +1 -0
  14. keelcore_standards-0.1.0/adapters/claude/CLAUDE.md +35 -0
  15. keelcore_standards-0.1.0/adapters/copilot/copilot-instructions.md +35 -0
  16. keelcore_standards-0.1.0/adapters/cursor/api-management.mdc +6 -0
  17. keelcore_standards-0.1.0/adapters/cursor/bash.mdc +6 -0
  18. keelcore_standards-0.1.0/adapters/cursor/ci.mdc +6 -0
  19. keelcore_standards-0.1.0/adapters/cursor/coding.mdc +6 -0
  20. keelcore_standards-0.1.0/adapters/cursor/observability.mdc +6 -0
  21. keelcore_standards-0.1.0/adapters/cursor/platform.mdc +6 -0
  22. keelcore_standards-0.1.0/adapters/cursor/runtime.mdc +6 -0
  23. keelcore_standards-0.1.0/adapters/cursor/security.mdc +6 -0
  24. keelcore_standards-0.1.0/docs/adr/0000-template.md +28 -0
  25. keelcore_standards-0.1.0/docs/adr/0001-standards-as-submodule-and-package.md +55 -0
  26. keelcore_standards-0.1.0/docs/adr/0002-coverage-baseline-in-repo.md +119 -0
  27. keelcore_standards-0.1.0/docs/adr/0003-architecture-governance-process.md +94 -0
  28. keelcore_standards-0.1.0/docs/adr/0004-workload-identity-spiffe-spire.md +100 -0
  29. keelcore_standards-0.1.0/docs/adr/0005-observability-opentelemetry.md +101 -0
  30. keelcore_standards-0.1.0/docs/adr/0006-opa-centralized-policy-engine.md +109 -0
  31. keelcore_standards-0.1.0/docs/adr/0007-zero-downtime-deployment.md +124 -0
  32. keelcore_standards-0.1.0/docs/adr/0008-rapid-key-rotation.md +127 -0
  33. keelcore_standards-0.1.0/docs/adr/0009-gitops-change-management.md +126 -0
  34. keelcore_standards-0.1.0/docs/break-glass.md +94 -0
  35. keelcore_standards-0.1.0/docs/rfc/RFC-0000-template.md +70 -0
  36. keelcore_standards-0.1.0/embed.go +11 -0
  37. keelcore_standards-0.1.0/go/cmd/materialize/main.go +48 -0
  38. keelcore_standards-0.1.0/go.mod +3 -0
  39. keelcore_standards-0.1.0/governance/ai/conduct.md +66 -0
  40. keelcore_standards-0.1.0/governance/api-management.md +185 -0
  41. keelcore_standards-0.1.0/governance/arb.md +110 -0
  42. keelcore_standards-0.1.0/governance/bash.md +147 -0
  43. keelcore_standards-0.1.0/governance/ci.md +496 -0
  44. keelcore_standards-0.1.0/governance/coding.md +156 -0
  45. keelcore_standards-0.1.0/governance/observability.md +158 -0
  46. keelcore_standards-0.1.0/governance/platform.md +167 -0
  47. keelcore_standards-0.1.0/governance/release-policy.md +171 -0
  48. keelcore_standards-0.1.0/governance/runtime.md +165 -0
  49. keelcore_standards-0.1.0/governance/security.md +149 -0
  50. keelcore_standards-0.1.0/governance/testing.md +100 -0
  51. keelcore_standards-0.1.0/package-lock.json +1313 -0
  52. keelcore_standards-0.1.0/package.json +23 -0
  53. keelcore_standards-0.1.0/pyproject.toml +13 -0
  54. keelcore_standards-0.1.0/scripts/check/adr-metadata.sh +111 -0
  55. keelcore_standards-0.1.0/scripts/check/governance-metadata.sh +101 -0
  56. keelcore_standards-0.1.0/scripts/check/rfc-metadata.sh +109 -0
  57. keelcore_standards-0.1.0/scripts/check-legal-drift.sh +84 -0
  58. keelcore_standards-0.1.0/scripts/ci/audit-make-targets.sh +140 -0
  59. keelcore_standards-0.1.0/scripts/ci/dco-check.sh +88 -0
  60. keelcore_standards-0.1.0/scripts/ci/pr-policy.sh +166 -0
  61. keelcore_standards-0.1.0/scripts/ci/secret-scan.sh +94 -0
  62. keelcore_standards-0.1.0/scripts/ci/setup-markdownlint.sh +53 -0
  63. keelcore_standards-0.1.0/scripts/ci/setup-shellcheck.sh +48 -0
  64. keelcore_standards-0.1.0/scripts/ci/setup-syft.sh +46 -0
  65. keelcore_standards-0.1.0/scripts/ci/verify-canonical-scripts.sh +120 -0
  66. keelcore_standards-0.1.0/scripts/format.sh +47 -0
  67. keelcore_standards-0.1.0/scripts/git_precommit.sh +30 -0
  68. keelcore_standards-0.1.0/scripts/lib/paths.sh +24 -0
  69. keelcore_standards-0.1.0/scripts/lint/markdown.sh +61 -0
  70. keelcore_standards-0.1.0/scripts/lint/md.sh +57 -0
  71. keelcore_standards-0.1.0/scripts/lint/newlines.sh +90 -0
  72. keelcore_standards-0.1.0/scripts/lint/shellcheck.sh +50 -0
  73. keelcore_standards-0.1.0/scripts/lint.sh +57 -0
  74. keelcore_standards-0.1.0/scripts/release/go-publish.sh +71 -0
  75. keelcore_standards-0.1.0/scripts/release/npm-publish.sh +47 -0
  76. keelcore_standards-0.1.0/scripts/release/pypi-publish.sh +55 -0
  77. keelcore_standards-0.1.0/scripts/release/sbom.sh +64 -0
  78. keelcore_standards-0.1.0/scripts/release/sign.sh +85 -0
  79. keelcore_standards-0.1.0/scripts/test/coverage-delta.sh +119 -0
  80. keelcore_standards-0.1.0/scripts/test/coverage.sh +73 -0
  81. keelcore_standards-0.1.0/scripts/verify/go.sh +53 -0
@@ -0,0 +1,31 @@
1
+ # CODEOWNERS
2
+ # Changes to these paths require review from the designated owners.
3
+ # Owners are referenced by GitHub team or username.
4
+ # The last matching rule takes precedence.
5
+
6
+ # Default owner for everything
7
+ * @keelcore/platform-team
8
+
9
+ # CI workflows — security/infra review required
10
+ .github/workflows/ @keelcore/platform-infra
11
+ .github/CODEOWNERS @keelcore/platform-infra
12
+ .github/dependabot.yml @keelcore/platform-infra
13
+
14
+ # Scripts — infra review required; author cannot self-approve
15
+ scripts/ @keelcore/platform-infra
16
+
17
+ # Governance documents — ARB review required
18
+ governance/ @keelcore/arb
19
+ docs/adr/ @keelcore/arb
20
+ docs/rfc/ @keelcore/arb
21
+ docs/break-glass.md @keelcore/arb @keelcore/platform-infra
22
+
23
+ # Dependency manifests — infra review required
24
+ go.mod @keelcore/platform-infra
25
+ package.json @keelcore/platform-infra
26
+ package-lock.json @keelcore/platform-infra
27
+ pyproject.toml @keelcore/platform-infra
28
+
29
+ # Version and changelog — ARB review required
30
+ VERSION @keelcore/arb
31
+ CHANGELOG.md @keelcore/arb
@@ -0,0 +1,42 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+ day: "monday"
8
+ commit-message:
9
+ prefix: "chore(ci)"
10
+ labels:
11
+ - "dependencies"
12
+ - "ci"
13
+
14
+ - package-ecosystem: "npm"
15
+ directory: "/"
16
+ schedule:
17
+ interval: "weekly"
18
+ day: "monday"
19
+ commit-message:
20
+ prefix: "chore(deps)"
21
+ labels:
22
+ - "dependencies"
23
+
24
+ - package-ecosystem: "gomod"
25
+ directory: "/"
26
+ schedule:
27
+ interval: "weekly"
28
+ day: "monday"
29
+ commit-message:
30
+ prefix: "chore(deps)"
31
+ labels:
32
+ - "dependencies"
33
+
34
+ - package-ecosystem: "pip"
35
+ directory: "/"
36
+ schedule:
37
+ interval: "weekly"
38
+ day: "monday"
39
+ commit-message:
40
+ prefix: "chore(deps)"
41
+ labels:
42
+ - "dependencies"
@@ -0,0 +1,90 @@
1
+ name: ci
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+ workflow_dispatch:
8
+
9
+ concurrency:
10
+ group: ${{ github.workflow }}-${{ github.ref }}
11
+ cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
12
+
13
+ permissions:
14
+ contents: read
15
+
16
+ jobs:
17
+ audit:
18
+ name: audit / makefile
19
+ runs-on: ubuntu-latest
20
+ timeout-minutes: 5
21
+ steps:
22
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
23
+ - run: make audit
24
+
25
+ pr-policy:
26
+ name: policy / pr
27
+ runs-on: ubuntu-latest
28
+ timeout-minutes: 5
29
+ if: github.event_name == 'pull_request'
30
+ env:
31
+ GITHUB_HEAD_REF: ${{ github.head_ref }}
32
+ PR_TITLE: ${{ github.event.pull_request.title }}
33
+ PR_BODY: ${{ github.event.pull_request.body }}
34
+ PR_AUTHOR: ${{ github.event.pull_request.user.login }}
35
+ steps:
36
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
37
+ with:
38
+ fetch-depth: 2
39
+ - run: make ci-pr-policy
40
+
41
+ check-governance:
42
+ name: check / governance metadata
43
+ runs-on: ubuntu-latest
44
+ timeout-minutes: 5
45
+ steps:
46
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
47
+ - run: make check-adr-metadata
48
+ - run: make check-governance-metadata
49
+ - run: make check-rfc-metadata
50
+
51
+ lint-markdown:
52
+ name: lint / markdown
53
+ runs-on: ubuntu-latest
54
+ timeout-minutes: 5
55
+ steps:
56
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
57
+
58
+ - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
59
+ with:
60
+ node-version-file: ".nvmrc"
61
+ cache: "npm"
62
+ cache-dependency-path: "package-lock.json"
63
+
64
+ - run: make setup-markdownlint
65
+ - run: make lint-newlines
66
+ - run: make lint-md
67
+
68
+ lint-bash:
69
+ name: lint / bash
70
+ runs-on: ubuntu-latest
71
+ timeout-minutes: 5
72
+ steps:
73
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
74
+
75
+ - run: make setup-shellcheck
76
+ - run: make lint-bash
77
+
78
+ verify-go:
79
+ name: verify / go module
80
+ runs-on: ubuntu-latest
81
+ timeout-minutes: 10
82
+ steps:
83
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
84
+
85
+ - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
86
+ with:
87
+ go-version-file: go.mod
88
+ cache: true
89
+
90
+ - run: make verify-go
@@ -0,0 +1,110 @@
1
+ name: publish
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ workflow_dispatch:
8
+ inputs:
9
+ tag:
10
+ description: "Tag to publish (e.g. v1.2.0)"
11
+ required: true
12
+
13
+ concurrency:
14
+ group: ${{ github.workflow }}-${{ github.ref }}
15
+ cancel-in-progress: false
16
+
17
+ permissions:
18
+ contents: read
19
+
20
+ jobs:
21
+ sbom:
22
+ name: release / sbom
23
+ runs-on: ubuntu-latest
24
+ timeout-minutes: 10
25
+ permissions:
26
+ contents: read
27
+ steps:
28
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
29
+
30
+ - run: make setup-syft
31
+ - run: make release-sbom
32
+
33
+ - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
34
+ with:
35
+ name: sbom
36
+ path: sbom.spdx.json
37
+ retention-days: 90
38
+
39
+ publish-npm:
40
+ name: publish / npm
41
+ runs-on: ubuntu-latest
42
+ timeout-minutes: 10
43
+ environment: npm-publish
44
+ permissions:
45
+ contents: read
46
+ id-token: write
47
+ attestations: write
48
+ steps:
49
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
50
+
51
+ - uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
52
+ with:
53
+ node-version-file: ".nvmrc"
54
+ registry-url: "https://registry.npmjs.org"
55
+ cache: "npm"
56
+ cache-dependency-path: "package-lock.json"
57
+
58
+ - run: make release-npm
59
+ env:
60
+ NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
61
+
62
+ - name: Attest npm provenance
63
+ uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
64
+ with:
65
+ subject-path: "*.tgz"
66
+
67
+ publish-pypi:
68
+ name: publish / pypi
69
+ runs-on: ubuntu-latest
70
+ timeout-minutes: 10
71
+ environment: pypi-publish
72
+ permissions:
73
+ contents: read
74
+ id-token: write
75
+ attestations: write
76
+ steps:
77
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
78
+
79
+ - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
80
+ with:
81
+ python-version-file: ".python-version"
82
+
83
+ - run: make release-pypi
84
+
85
+ - name: Publish to PyPI
86
+ uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0
87
+
88
+ - name: Attest PyPI provenance
89
+ uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0
90
+ with:
91
+ subject-path: "dist/*"
92
+
93
+ publish-go:
94
+ name: publish / go (pkg.go.dev)
95
+ runs-on: ubuntu-latest
96
+ timeout-minutes: 10
97
+ environment: go-publish
98
+ permissions:
99
+ contents: read
100
+ steps:
101
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
102
+
103
+ - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0
104
+ with:
105
+ go-version-file: go.mod
106
+
107
+ - run: make release-go
108
+ env:
109
+ GITHUB_REF_NAME: ${{ github.ref_name }}
110
+ INPUT_TAG: ${{ inputs.tag }}
@@ -0,0 +1,49 @@
1
+ # IDE — JetBrains
2
+ .idea/
3
+ *.iml
4
+ *.iws
5
+ *.ipr
6
+
7
+ # IDE — VS Code
8
+ .vscode/
9
+
10
+ # IDE — Cursor
11
+ .cursor/
12
+
13
+ # IDE — Vim / Neovim
14
+ *.swp
15
+ *.swo
16
+ *~
17
+
18
+ # Node
19
+ node_modules/
20
+ npm-debug.log*
21
+ yarn-debug.log*
22
+ yarn-error.log*
23
+
24
+ # Python
25
+ __pycache__/
26
+ *.py[cod]
27
+ *.pyo
28
+ *.egg
29
+ *.egg-info/
30
+ dist/
31
+ build/
32
+ .venv/
33
+ venv/
34
+ .Python
35
+
36
+ # Go
37
+ /vendor/
38
+
39
+ # Script log files (written by scripts/lint.sh, scripts/release/*.sh, etc.)
40
+ /tmp/*.log
41
+
42
+ # macOS
43
+ .DS_Store
44
+ .AppleDouble
45
+ .LSOverride
46
+
47
+ # Materialize output (consumers gitignore this in their own repos)
48
+ .standards/
49
+ .claude
@@ -0,0 +1,7 @@
1
+ {
2
+ "default": true,
3
+ "MD013": false,
4
+ "MD024": { "allow_different_nesting": true, "siblings_only": true },
5
+ "MD029": false,
6
+ "MD033": false
7
+ }
@@ -0,0 +1 @@
1
+ 20
@@ -0,0 +1 @@
1
+ 3.12
@@ -0,0 +1,58 @@
1
+ # Changelog
2
+
3
+ All notable changes to keelcore/standards are documented here.
4
+
5
+ Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
+ Versioning follows [Semantic Versioning](https://semver.org/).
7
+
8
+ Breaking changes (governance removals, renamed files): major bump.
9
+ New governance or expanded rules: minor bump.
10
+ Corrections, clarifications, metadata: patch bump.
11
+
12
+ ---
13
+
14
+ ## [Unreleased]
15
+
16
+ ### Added
17
+
18
+ - Architecture Review Board governance (`governance/arb.md`) — membership, quorum, tie-breaking, escalation
19
+ - RFC workflow (`docs/rfc/RFC-0000-template.md`) — full Draft → Implemented lifecycle
20
+ - DACI metadata fields on ADR template and all existing ADRs (Driver, Approver, Contributors, Informed, Supersedes, Superseded By)
21
+ - Maturity metadata on all governance standards (Draft | Recommended | Required | Deprecated)
22
+ - Automated ADR metadata enforcement (`scripts/check/adr-metadata.sh`)
23
+ - Automated governance metadata enforcement (`scripts/check/governance-metadata.sh`)
24
+ - RFC metadata enforcement (`scripts/check/rfc-metadata.sh`)
25
+ - PR policy gate (`scripts/ci/pr-policy.sh`) — commit format, branch naming, description completeness, secret scan
26
+ - Break-glass procedure (`docs/break-glass.md`)
27
+ - Supply chain: artifact signing (`scripts/release/sign.sh`), SBOM generation (`scripts/release/sbom.sh`)
28
+ - CI: SLSA provenance attestation, artifact signing, SBOM, and SHA256SUMS in publish workflow
29
+ - CI: concurrency control (cancel superseded PR runs), npm caching, environment protection on publish jobs
30
+ - `.github/CODEOWNERS` — coverage for workflows, scripts, governance, and manifests
31
+ - `.github/dependabot.yml` — automated action SHA pin updates
32
+ - `VERSION` file as single source of truth for standards version
33
+
34
+ ## [0.1.0] - 2026-03-09
35
+
36
+ ### Added
37
+
38
+ - Initial scaffold: `governance/coding.md`, `governance/ci.md`, `governance/bash.md`
39
+ - Platform architecture standards (`governance/platform.md`)
40
+ - Observability standards (`governance/observability.md`)
41
+ - Security and IAM standards (`governance/security.md`)
42
+ - Runtime and orchestration standards (`governance/runtime.md`)
43
+ - API management standards (`governance/api-management.md`)
44
+ - ADR template (`docs/adr/0000-template.md`)
45
+ - ADR-0001: Standards distributed as submodule and language package
46
+ - ADR-0002: Coverage baseline stored in repository
47
+ - ADR-0003: Architecture governance via DACI, RFC, and ARB
48
+ - ADR-0004: SPIFFE/SPIRE for workload identity
49
+ - ADR-0005: OpenTelemetry as unified observability framework
50
+ - ADR-0006: OPA as centralized authorization policy engine
51
+ - ADR-0007: Zero-downtime deployment via blue/green and canary
52
+ - ADR-0008: Rapid key rotation with 5-minute platform SLA
53
+ - ADR-0009: GitOps as declarative change management mechanism
54
+ - Multi-ecosystem publishing (Go, npm, PyPI) via GitHub Actions
55
+ - Tool adapters for Claude Code, Cursor, and GitHub Copilot
56
+ - Release scripts: `npm-publish.sh`, `pypi-publish.sh`, `go-publish.sh`
57
+ - Lint scripts: `markdown.sh`, `shellcheck.sh`
58
+ - Verify script: `go.sh`
@@ -0,0 +1,210 @@
1
+ # keelcore/standards — Master Orchestrator
2
+ # All CI concerns are invoked through this file.
3
+ # Workflow YAML calls `make <target>`; developers call the same targets locally.
4
+
5
+ .PHONY: build lint lint-newlines lint-md lint-bash lint-markdown \
6
+ test unit-test integration-test clean audit \
7
+ ci-pr-policy ci-secret-scan ci-dco ci-coverage-delta \
8
+ coverage check-adr-metadata check-governance-metadata check-rfc-metadata \
9
+ check-legal-drift release-sbom release-sign release-go release-npm release-pypi \
10
+ setup-markdownlint setup-shellcheck setup-syft verify-canonical verify-go \
11
+ format lint-all pre-commit help
12
+
13
+ ## Universal canonical targets (language-independent; mandated by CI standards)
14
+
15
+ build:
16
+ @echo "✅ Nothing to build (standards is a documentation repository)"
17
+
18
+ lint: lint-newlines lint-md lint-bash
19
+
20
+ test: unit-test integration-test
21
+
22
+ unit-test:
23
+ @echo "✅ No unit tests (standards is a documentation repository)"
24
+
25
+ integration-test:
26
+ @echo "✅ No integration tests (standards is a documentation repository)"
27
+
28
+ clean:
29
+ @echo "🧹 Nothing to clean (standards is a documentation repository)"
30
+
31
+ ## Audit
32
+
33
+ audit:
34
+ @echo "🔍 Running CI/Makefile audit..."
35
+ ./scripts/ci/audit-make-targets.sh
36
+
37
+ ## Lint targets
38
+
39
+ lint-newlines:
40
+ @echo "🔍 Checking trailing newlines..."
41
+ ./scripts/lint/newlines.sh
42
+
43
+ lint-md:
44
+ @echo "🔍 Running markdown lint (markdownlint-cli)..."
45
+ ./scripts/lint/md.sh
46
+
47
+ lint-bash:
48
+ @echo "🔍 Running shellcheck..."
49
+ ./scripts/lint/shellcheck.sh
50
+
51
+ lint-markdown:
52
+ @echo "🔍 Running markdown lint (markdownlint-cli2)..."
53
+ ./scripts/lint/markdown.sh
54
+
55
+ ## Check targets
56
+
57
+ check-adr-metadata:
58
+ @echo "🔍 Checking ADR metadata..."
59
+ ./scripts/check/adr-metadata.sh
60
+
61
+ check-governance-metadata:
62
+ @echo "🔍 Checking governance metadata..."
63
+ ./scripts/check/governance-metadata.sh
64
+
65
+ check-rfc-metadata:
66
+ @echo "🔍 Checking RFC metadata..."
67
+ ./scripts/check/rfc-metadata.sh
68
+
69
+ check-legal-drift:
70
+ @echo "⚖️ Checking legal file drift..."
71
+ ./scripts/check-legal-drift.sh
72
+
73
+ ## CI gate targets
74
+
75
+ ci-pr-policy:
76
+ @echo "🔍 Running PR policy check..."
77
+ ./scripts/ci/pr-policy.sh
78
+
79
+ ci-secret-scan:
80
+ @echo "🔍 Running secret scan..."
81
+ ./scripts/ci/secret-scan.sh
82
+
83
+ ci-dco:
84
+ @echo "🔍 Running DCO sign-off check..."
85
+ ./scripts/ci/dco-check.sh
86
+
87
+ ci-coverage-delta:
88
+ @echo "📊 Checking coverage delta..."
89
+ ./scripts/test/coverage-delta.sh
90
+
91
+ ## Coverage
92
+
93
+ coverage:
94
+ @echo "📊 Generating coverage report..."
95
+ ./scripts/test/coverage.sh
96
+
97
+ ## Release targets
98
+
99
+ release-sbom:
100
+ @echo "📋 Generating SBOM..."
101
+ ./scripts/release/sbom.sh
102
+
103
+ release-sign:
104
+ @echo "✍️ Signing artifacts..."
105
+ ./scripts/release/sign.sh
106
+
107
+ release-go:
108
+ @echo "🚀 Publishing Go module..."
109
+ ./scripts/release/go-publish.sh
110
+
111
+ release-npm:
112
+ @echo "🚀 Publishing npm package..."
113
+ ./scripts/release/npm-publish.sh
114
+
115
+ release-pypi:
116
+ @echo "🚀 Publishing PyPI package..."
117
+ ./scripts/release/pypi-publish.sh
118
+
119
+ ## Setup targets
120
+
121
+ setup-markdownlint:
122
+ @echo "🔧 Installing markdownlint-cli..."
123
+ ./scripts/ci/setup-markdownlint.sh
124
+
125
+ setup-shellcheck:
126
+ @echo "🔧 Installing shellcheck..."
127
+ ./scripts/ci/setup-shellcheck.sh
128
+
129
+ setup-syft:
130
+ @echo "🔧 Installing syft..."
131
+ ./scripts/ci/setup-syft.sh
132
+
133
+ ## Canonical script verification
134
+
135
+ verify-canonical:
136
+ @echo "🔍 Verifying canonical scripts in downstream repo (REPO=<path>)..."
137
+ ./scripts/ci/verify-canonical-scripts.sh $(REPO)
138
+
139
+ ## Verify targets
140
+
141
+ verify-go:
142
+ @echo "🔍 Verifying Go module..."
143
+ ./scripts/verify/go.sh
144
+
145
+ ## Utility targets
146
+
147
+ format:
148
+ @echo "🖊️ Formatting repository..."
149
+ ./scripts/format.sh
150
+
151
+ lint-all:
152
+ @echo "🔍 Running all linters (full suite)..."
153
+ ./scripts/lint.sh
154
+
155
+ pre-commit:
156
+ @echo "🪝 Running pre-commit checks..."
157
+ ./scripts/git_precommit.sh
158
+
159
+ ## Help
160
+
161
+ help:
162
+ @echo "keelcore/standards Build System"
163
+ @echo "Usage: make [target]"
164
+ @echo ""
165
+ @echo "Universal targets (canonical; language-independent):"
166
+ @echo " build No-op (documentation repository)"
167
+ @echo " lint lint-newlines + lint-md + lint-bash"
168
+ @echo " test unit-test + integration-test"
169
+ @echo " unit-test No-op (documentation repository)"
170
+ @echo " integration-test No-op (documentation repository)"
171
+ @echo " clean No-op (documentation repository)"
172
+ @echo " audit CI/Makefile standards compliance audit"
173
+ @echo ""
174
+ @echo "Lint:"
175
+ @echo " lint-newlines Check trailing newlines (.md .sh .go .yml etc.)"
176
+ @echo " lint-md markdownlint-cli check (canonical; from keel)"
177
+ @echo " lint-bash shellcheck on all scripts"
178
+ @echo " lint-markdown markdownlint-cli2 check (standards native)"
179
+ @echo ""
180
+ @echo "Checks:"
181
+ @echo " check-adr-metadata Validate ADR metadata fields"
182
+ @echo " check-governance-metadata Validate governance file metadata"
183
+ @echo " check-rfc-metadata Validate RFC metadata fields"
184
+ @echo " check-legal-drift Verify legal files match source of truth"
185
+ @echo ""
186
+ @echo "CI Gates:"
187
+ @echo " ci-pr-policy PR policy gate"
188
+ @echo " ci-secret-scan Secret scan (gitleaks)"
189
+ @echo " ci-dco DCO Signed-off-by check"
190
+ @echo " ci-coverage-delta Coverage delta gate"
191
+ @echo " coverage Generate coverage report"
192
+ @echo ""
193
+ @echo "Release:"
194
+ @echo " release-sbom Generate SPDX SBOM"
195
+ @echo " release-sign Sign artifacts (cosign)"
196
+ @echo " release-go Publish Go module"
197
+ @echo " release-npm Publish npm package"
198
+ @echo " release-pypi Publish PyPI package"
199
+ @echo ""
200
+ @echo "Setup:"
201
+ @echo " setup-markdownlint Install markdownlint-cli"
202
+ @echo ""
203
+ @echo "Verification:"
204
+ @echo " verify-canonical REPO=<path> Check downstream repo scripts match standards"
205
+ @echo " verify-go Build and vet the Go module"
206
+ @echo ""
207
+ @echo "Utilities:"
208
+ @echo " format Run all formatters"
209
+ @echo " lint-all Run full linter suite (scripts/lint.sh)"
210
+ @echo " pre-commit Run pre-commit checks"
@@ -0,0 +1,6 @@
1
+ Metadata-Version: 2.4
2
+ Name: keelcore-standards
3
+ Version: 0.1.0
4
+ Summary: Engineering standards for keelcore projects — coding, CI, and bash.
5
+ License: MIT
6
+ Requires-Python: >=3.9