diff --git a/workplans/OPEN-WP-0003-integration-cli-validator.md b/workplans/OPEN-WP-0003-integration-cli-validator.md new file mode 100644 index 0000000..f4a88a2 --- /dev/null +++ b/workplans/OPEN-WP-0003-integration-cli-validator.md @@ -0,0 +1,82 @@ +--- +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. \ No newline at end of file diff --git a/workplans/OPEN-WP-0004-integration-portfolio-registration.md b/workplans/OPEN-WP-0004-integration-portfolio-registration.md new file mode 100644 index 0000000..abdc907 --- /dev/null +++ b/workplans/OPEN-WP-0004-integration-portfolio-registration.md @@ -0,0 +1,81 @@ +--- +id: OPEN-WP-0004 +type: workplan +title: "Integration portfolio registration" +domain: infotech +repo: open-reuse +status: ready +owner: codex +topic_slug: infotech +created: "2026-06-24" +updated: "2026-06-24" +--- + +# Integration portfolio registration + +Grow `registry/indexes/integrations.yaml` beyond the markitect-quarkdown +reference entry. Survey the portfolio for proven OSS integrations, coordinate +definition authoring in consuming repositories, and register discovery rows in +open-reuse. + +## Design decisions + +- **Source of truth:** Integration definitions live in consuming repos; + open-reuse holds the discovery index only (per PRD open question 7). +- **Entry bar:** Only integrations that have **proven value** in practice — + open-reuse does not register experiments or planned work. +- **Dependency:** Prefer `open-reuse validate` from OPEN-WP-0003 for final + verification; manual checklist is acceptable until that workplan completes. + +## Survey portfolio candidates + +```task +id: OPEN-WP-0004-T01 +status: todo +priority: high +``` + +Scan the local repo portfolio (reuse-surface `local-repo-roster.yaml`, domain +`INTENT.md` files, and existing `*.integration.yaml` files) for proven +integrations not yet indexed. Produce a short candidate list with owner repo, +upstream project, reuse mode estimate, and registration readiness +(ready / needs-definition / needs-boundary-work). + +## Prioritize and assign targets + +```task +id: OPEN-WP-0004-T02 +status: todo +priority: high +``` + +Select 2–3 candidates for registration in this workplan cycle. Record the +selection and rationale in the task result. Defer remaining candidates to +backlog with explicit blockers. + +## Author integration definitions + +```task +id: OPEN-WP-0004-T03 +status: todo +priority: high +``` + +For each selected candidate, ensure a conforming Integration Definition exists +in the consuming repo at `integration/.integration.yaml` using +`templates/integration-entry.template.yaml`. Complete at minimum: upstream, +reuse classification, boundary, validation harness, and maintainers. Coordinate +PRs in owning repos where definitions are missing. + +## Expand registry index + +```task +id: OPEN-WP-0004-T04 +status: todo +priority: medium +``` + +Add index rows to `registry/indexes/integrations.yaml` for each registered +integration. Update `registry/README.md` reference section. Run +`open-reuse validate` (or manual checklist) and confirm all new rows pass +promotion gates for `registered` or `active` status. \ No newline at end of file