risk-nexus/Makefile
tegwick bb199ff2ac Add AGENTS.md and use Mode of Authority wording
AGENTS.md was required (C-35) and missing. Replace bare "operator" in
this session's ruling and help text per the environment orientation.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 6903@bnt-lap001
Assistant-Session: 8319e8a8-ffa6-4eb3-b8bf-b29945628f89
2026-09-22 10:26:00 +02:00

72 lines
2.5 KiB
Makefile

PY := python3
TOOLS := tools
# Parameters for the query and write targets (see `make help` for examples).
ID ?=
SEV ?=
SYSTEM ?=
OUTCOME ?=
NOTE ?=
.DEFAULT_GOAL := help
.PHONY: help list all show waits escalations policies check due fixes coverage \
register checked test
##@ Inspect the register (read-only)
list: ## Live findings, most severe first. Filters: make list SEV=high | make list SYSTEM=qonto-assistant
@$(PY) $(TOOLS)/risk.py list $(if $(SEV),--severity $(SEV)) $(if $(SYSTEM),--system $(SYSTEM))
all: ## Every finding, including fixed and withdrawn
@$(PY) $(TOOLS)/risk.py list --all $(if $(SEV),--severity $(SEV)) $(if $(SYSTEM),--system $(SYSTEM))
show: ## One finding or regulatory record: make show ID=RISK-F-0012
@test -n "$(ID)" || { echo 'usage: make show ID=RISK-F-0012'; exit 2; }
@$(PY) $(TOOLS)/risk.py show $(ID)
waits: ## What the register waits on, or owes, ordered by default date
@$(PY) $(TOOLS)/risk.py waits
escalations: ## Escalations and their delivery state
@$(PY) $(TOOLS)/risk.py escalations
policies: ## Regulatory records and full legal policies with next review
@$(PY) $(TOOLS)/risk.py policies
##@ Run the register
check: ## Full sweep: verify the index, report due and quiet work, read the inbox
@$(PY) $(TOOLS)/check_all.py
due: ## Just the work list: what needs a check right now
@$(PY) $(TOOLS)/register_check.py
@$(PY) $(TOOLS)/inbox_check.py
fixes: ## State of every fix the register tracks, read from owner workplans
@$(PY) $(TOOLS)/fix_tracker.py
coverage: ## Which estate repos the register has never heard from
@$(PY) $(TOOLS)/coverage.py
##@ Record and maintain
checked: ## Record a check: make checked ID=RISK-F-0012 OUTCOME=clean|moved NOTE="what was seen"
@if [ -n "$(ARGS)" ]; then $(PY) $(TOOLS)/record_check.py $(ARGS); \
else test -n "$(ID)" -a -n "$(OUTCOME)" || { echo 'usage: make checked ID=RISK-F-0012 OUTCOME=clean NOTE="..."'; exit 2; }; \
$(PY) $(TOOLS)/record_check.py $(ID) $(OUTCOME) $(if $(NOTE),"$(NOTE)"); fi
@$(PY) $(TOOLS)/register_index.py
register: ## Rebuild REGISTER.md from findings/
@$(PY) $(TOOLS)/register_index.py
test: ## Run the tool test suite
@PYTHONDONTWRITEBYTECODE=1 $(PY) -m unittest discover -s tests -v
##@ Help
help: ## List targets with examples (the default)
@awk 'BEGIN {FS = ":.*## "} \
/^##@/ {printf "\n\033[1m%s\033[0m\n", substr($$0, 5); next} \
/^[a-z][a-zA-Z_-]*:.*## / {printf " \033[36m%-12s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST)
@echo
@echo "Defer a check (founder decision): make checked ARGS='RISK-F-0012 defer 2026-10-15 \"reason\"'"