Files
config-atlas/Makefile
tegwick 4620244f39
Some checks failed
validate-registry / validate (push) Has been cancelled
feat(explain): complete ATLAS-WP-0004 — graph edges, blast-radius, determinism tests
T05: tests/test_effective_config.py (6 tests) — order-independence, most-specific
winner, no value/secret leak; wired into make validate + CI.
T04: tools/blast_radius.py + make blast-radius — consumers, transitive dependents
(cycle-safe), secret refs, fan-out risk band.
T03: tools/config_graph.py + make graph/graph-query — emit config-typed edges to
registry/indexes/graph.yaml (queryable by surface id); staleness check in the gate.

WP-0004 finished (5/5). Read-first control-plane MVP complete: explain, graph,
and blast-radius over the seeded surfaces.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-27 00:16:58 +02:00

52 lines
1.8 KiB
Makefile

# config-atlas — registry validation gate (ATLAS-WP-0002-T06)
# Markdown-first repo: no build/run, only validation and the explain tool.
.PHONY: validate validate-schema validate-reuse validate-whitespace validate-tests explain blast-radius
# Effective-config override path for a surface (ATLAS-WP-0004).
# make explain SURFACE=surface.infotech.state-hub.api-config
explain:
@python3 tools/config_explain.py $(SURFACE)
# Change blast-radius / dependency view for a surface (ATLAS-WP-0004).
# make blast-radius SURFACE=surface.infotech.state-hub.api-config
blast-radius:
@python3 tools/blast_radius.py $(SURFACE)
# Regenerate the config knowledge-graph edge artifact (ATLAS-WP-0004).
graph:
@python3 tools/config_graph.py
# Query graph edges touching a surface id.
# make graph-query SURFACE=surface.infotech.state-hub.api-config
graph-query:
@python3 tools/config_graph.py --surface $(SURFACE)
# Full gate run by agents and CI.
validate: validate-schema validate-graph validate-tests validate-whitespace validate-reuse
@echo "validate: all checks passed"
# The committed graph edge artifact must match the registry.
validate-graph:
@python3 tools/config_graph.py --check
# Resolver determinism + no-value-leak tests (ATLAS-WP-0004-T05).
validate-tests:
@python3 -m unittest discover -s tests -q
# Surface entries validate against the JSON Schema; index is consistent.
validate-schema:
@python3 tools/validate_registry.py
# No trailing whitespace / conflict markers in staged or working tree.
validate-whitespace:
@git diff --check HEAD -- . && echo "validate-whitespace: OK"
# Capability registry federation validation (skipped if reuse-surface absent).
validate-reuse:
@if command -v reuse-surface >/dev/null 2>&1; then \
reuse-surface validate --root . ; \
else \
echo "validate-reuse: reuse-surface CLI not on PATH — skipped" ; \
fi