--- id: OPEN-WP-0003 type: workplan title: "Integration CLI validator" domain: infotech repo: open-reuse status: ready owner: codex topic_slug: infotech created: "2026-06-24" updated: "2026-06-24" --- # Integration CLI validator Replace the manual validation checklist in `registry/README.md` with an automated `open-reuse validate` command. Follows OPEN-WP-0002 schema v0.1 and patterns from reuse-surface `reuse-surface validate`. ## Design decisions - **Runtime:** Python package (`open_reuse/`) with `uv`/`pyproject.toml`, matching reuse-surface CLI conventions. - **Scope:** Validate Integration Definition YAML against `schemas/integration.schema.yaml` and check index consistency in `registry/indexes/integrations.yaml`. - **Out of scope:** Upstream monitoring, validation harness execution, or federation publish — those belong to later workplans. ## Bootstrap Python package ```task id: OPEN-WP-0003-T01 status: todo priority: high ``` Add `pyproject.toml`, `open_reuse/` package skeleton, and entry point `open-reuse` with a `validate` subcommand stub. Include `jsonschema` and `pyyaml` as dependencies. Document install and run commands in `AGENTS.md` and `.claude/rules/stack-and-commands.md`. ## Implement validate command ```task id: OPEN-WP-0003-T02 status: todo priority: high ``` Implement `open-reuse validate` with: - Schema validation of one or more `*.integration.yaml` files (default: scan `registry/integrations/` if present). - Index checks: every `indexes/integrations.yaml` row has required fields; `id` and `reuse_mode` are consistent when the definition file is reachable. - `--fail-on-warnings` for promotion-gate checks (missing maintainers on `active` status, missing index row for local definitions). - Exit code 0 on success, non-zero on errors. ## Add tests and CI ```task id: OPEN-WP-0003-T03 status: todo priority: medium ``` Add `tests/test_validate.py` covering schema pass/fail, index consistency, and the markitect-quarkdown reference fixture. Add `.gitea/workflows/ci.yml` running pytest on push/PR to `main`. ## Update registry documentation ```task id: OPEN-WP-0003-T04 status: todo priority: medium ``` Update `registry/README.md` to reference `open-reuse validate` as the primary validation path. Mark manual checklist as fallback until CI is green.