generated from coulomb/repo-seed
Scripts, Makefile target, and MCP tool for checking a repository against ADR-001 (workplans as repo artefacts, state-hub as cache). Checks performed: File-side: workplans/ dir exists, valid YAML frontmatter (required fields, type, status, id format), filename matches id, embedded task blocks have id/status/priority. State-hub cross-reference: state_hub_workstream_id references resolve to real DB records; orphan detection flags active DB workstreams with no backing workplan file. Usage: make validate-adr REPO=<path> [DOMAIN=<slug>] validate_repo_adr(repo_path, domain_slug?) # MCP tool Running against the-custodian itself correctly surfaces the 4 pre-ADR-001 workstreams that still need workplan files written. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
55 lines
1.7 KiB
Makefile
55 lines
1.7 KiB
Makefile
.PHONY: install install-cli db db-tools migrate seed api dashboard check start clean register-project validate-adr
|
|
|
|
COMPOSE = docker compose -f infra/docker-compose.yml --env-file .env
|
|
|
|
install:
|
|
uv sync
|
|
|
|
## Symlink the custodian CLI into ~/.local/bin so it's on PATH system-wide
|
|
install-cli: install
|
|
mkdir -p ~/.local/bin
|
|
ln -sf "$(shell pwd)/.venv/bin/custodian" ~/.local/bin/custodian
|
|
@echo "Installed: custodian → $$(readlink -f ~/.local/bin/custodian)"
|
|
@echo "Make sure ~/.local/bin is on your PATH:"
|
|
@echo " echo 'export PATH=\"\$$HOME/.local/bin:\$$PATH\"' >> ~/.bashrc && source ~/.bashrc"
|
|
|
|
db:
|
|
$(COMPOSE) up -d postgres
|
|
|
|
db-tools:
|
|
$(COMPOSE) --profile tools up -d
|
|
|
|
migrate:
|
|
uv run alembic upgrade head
|
|
|
|
seed:
|
|
uv run python scripts/seed.py
|
|
|
|
api:
|
|
uv run uvicorn api.main:app --reload --host 127.0.0.1 --port 8000
|
|
|
|
dashboard:
|
|
cd dashboard && npm run dev
|
|
|
|
check:
|
|
curl -sf http://127.0.0.1:8000/state/health | python3 -m json.tool
|
|
|
|
start: db
|
|
sleep 3
|
|
$(MAKE) migrate
|
|
$(MAKE) api
|
|
|
|
## Register a project: make register-project DOMAIN=railiance PROJECT_PATH=/home/worsch/railiance
|
|
register-project:
|
|
@test -n "$(DOMAIN)" || (echo "ERROR: DOMAIN is required. Usage: make register-project DOMAIN=<domain> PROJECT_PATH=<path>"; exit 1)
|
|
@test -n "$(PROJECT_PATH)" || (echo "ERROR: PROJECT_PATH is required."; exit 1)
|
|
scripts/register_project.sh "$(DOMAIN)" "$(PROJECT_PATH)"
|
|
|
|
## Check a repo for ADR-001 compliance: make validate-adr REPO=/path/to/repo [DOMAIN=custodian]
|
|
validate-adr:
|
|
@test -n "$(REPO)" || (echo "ERROR: REPO is required. Usage: make validate-adr REPO=<path> [DOMAIN=<slug>]"; exit 1)
|
|
uv run python scripts/validate_repo_adr.py "$(REPO)" $(if $(DOMAIN),--domain "$(DOMAIN)",)
|
|
|
|
clean:
|
|
$(COMPOSE) down -v
|