2026-07-24 00:24:53 +02:00
|
|
|
[build-system]
|
|
|
|
|
requires = ["setuptools>=68", "wheel"]
|
|
|
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
|
|
|
|
|
|
[project]
|
|
|
|
|
name = "kings-guard"
|
|
|
|
|
version = "0.1.0"
|
|
|
|
|
description = "Adaptive security contract and posture-evaluation scaffold for complex multi-tenant cloud environments."
|
|
|
|
|
readme = "README.md"
|
|
|
|
|
requires-python = ">=3.12"
|
|
|
|
|
license = { file = "LICENSE" }
|
|
|
|
|
authors = [{ name = "Coulomb" }]
|
|
|
|
|
dependencies = []
|
|
|
|
|
|
|
|
|
|
[project.optional-dependencies]
|
|
|
|
|
dev = [
|
|
|
|
|
"pytest>=8.2,<9.0",
|
|
|
|
|
"ruff>=0.6,<1.0",
|
Declare layer machine-readably (§11); adopt v0.6 corrections
The standard moved v0.4 -> v0.6. All four findings from our v0.4 review
were adopted in v0.5, and v0.6 went further on two of them.
§11 now requires a machine-readable declaration — prose cannot
distinguish a declaration from a transcribed review. We had none.
Added layer.yaml (form adapted from ops-warden's reference
implementation), scripts/check_layer_conformance.py, and
tests/test_layer_conformance.py.
The check makes our central claim mechanical rather than asserted: no
direct Tooling client in src/. The test exercises the negative case on a
synthetic tree, so it fails if the checker goes blind. pyyaml is added as
a DEV dependency only — `dependencies = []` is load-bearing for the §5
claim and stays empty.
Adopted from v0.6:
- containment is no longer ours (§9.2). Actuation is an Engine concept,
unowned and held at zero; kings-guard proposes containment and never
performs it. The register row is now a dependency, not our gap.
- observation is scoped to Staff-reachable sources, with identity and
secret observation pending — our finding 1, adopted near-verbatim.
- access-engine DECLINED the authentication-evidence gap; owner is now
the identity layer plus audit-core, reproposed and unassented.
- §11 blocked-clean recorded, with the rule that it must not rank below
conforming — our finding 2.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UEtvmYUBP2fDtirJGWn5MW
Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 4014379@bnt-lap001
Assistant-Session: 4af9e20f-1768-4afc-951b-b507784e382b
2026-08-29 10:20:39 +02:00
|
|
|
# Reads layer.yaml in scripts/check_layer_conformance.py. Deliberately a
|
|
|
|
|
# DEV dependency: `dependencies = []` above is load-bearing for the §5
|
|
|
|
|
# no-Tooling-client claim and must stay empty.
|
|
|
|
|
"pyyaml>=6.0,<7.0",
|
2026-07-24 00:24:53 +02:00
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[project.scripts]
|
|
|
|
|
kings-guard-demo = "kings_guard.main:main"
|
|
|
|
|
|
|
|
|
|
[tool.setuptools.packages.find]
|
|
|
|
|
where = ["src"]
|
|
|
|
|
|
|
|
|
|
[tool.setuptools.package-data]
|
|
|
|
|
kings_guard = ["fixtures/*.json"]
|
|
|
|
|
|
2026-09-02 00:11:57 +02:00
|
|
|
|
2026-07-24 00:24:53 +02:00
|
|
|
[tool.pytest.ini_options]
|
|
|
|
|
testpaths = ["tests"]
|
|
|
|
|
addopts = [
|
|
|
|
|
"--strict-markers",
|
|
|
|
|
"--disable-warnings",
|
|
|
|
|
"--tb=short",
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
[tool.ruff]
|
|
|
|
|
line-length = 100
|
|
|
|
|
target-version = "py312"
|
|
|
|
|
|
|
|
|
|
[tool.ruff.lint]
|
|
|
|
|
select = ["E", "F", "I", "B"]
|