Files
open-reuse/workplans/OPEN-WP-0003-integration-cli-validator.md
tegwick a7c0c910fe docs(workplans): add OPEN-WP-0003 and OPEN-WP-0004
OPEN-WP-0003: CLI validator for Integration Definition schema and index checks.
OPEN-WP-0004: Portfolio survey and registration of additional integrations.
2026-06-24 18:16:42 +02:00

82 lines
2.3 KiB
Markdown

---
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.