Skip to content

spec: add portable "consumability" readiness rubric - #10

Merged
leonardoaraujosantos merged 1 commit into
mainfrom
docs/consumability-spec
Jul 5, 2026
Merged

leonardoaraujosantos merged 1 commit into
mainfrom
docs/consumability-spec

Conversation

@leonardoaraujosantos

Copy link
Copy Markdown
Contributor

Summary

Consolidates the "a library is usable by others" requirements into a single, self-contained OpenSpec capability — openspec/specs/consumability — written project-agnostically so it can be lifted into other projects as an adoption checklist.

Why

The build/install/CI/benchmark improvements from PRs #4–#9 were captured only inside build-and-packaging (mixed with internal build mechanics), and the governance/versioning items (CONTRIBUTING, SECURITY, CoC, changelog, semver policy) were shipped as files but never captured as requirements. This spec gathers them all in one readiness rubric.

The rubric (8 requirements, each with scenarios)

  1. Consumable installed package — find_package-style discovery, namespaced targets, no vendoring
  2. Low-friction source build — one configure+build, deps auto-resolved/pinned, graceful optional-component degradation
  3. Language-ecosystem packages — bindings' native lib builds + bundles on standard install (pip wheel, etc.)
  4. CI gate — builds/tests on supported platforms, blocks merges on failure
  5. Documented, reproducible performance references — claims backed by a runnable benchmark + recorded numbers
  6. Versioning & stability policy — semver, stability expectations, ABI SOVERSION, changelog
  7. Governance & community-health files — license, contributing, CoC, security (private reporting), templates
  8. Onboarding documentation — getting-started + examples, kept truthful to the code

Every requirement maps to something Cyberfluids now satisfies (PRs #4–#9), so the spec doubles as this project's readiness record and a reusable checklist.

Notes

  • Linked from the features.md capability matrix.
  • openspec validate --all --strict → 15/15.
  • Intentionally overlaps build-and-packaging at the readiness level (it references the detailed mechanics there) — the point is a portable, standalone rubric.

Consolidate the "a library is usable by others" requirements into one
self-contained OpenSpec capability so it can be lifted into other projects as an
adoption checklist. Previously these were split across build-and-packaging (the
build/install/CI/benchmark requirements) with the governance/versioning items
not captured as requirements at all.

The consumability spec states project-agnostic readiness requirements:
- Consumable installed package (find_package-style discovery, namespaced targets)
- Low-friction source build (one command, deps auto-resolved/pinned)
- Language-ecosystem packages that build + bundle the native library
- CI gate blocking merges on failure
- Documented, reproducible performance references
- Versioning + API-stability policy (semver, SOVERSION, changelog)
- Governance & community-health files (license, contributing, CoC, security, templates)
- Onboarding documentation kept truthful to the code

Linked from the features matrix. openspec validate --all --strict passes (15/15).
@leonardoaraujosantos
leonardoaraujosantos merged commit 2970986 into main Jul 5, 2026
3 checks passed
@leonardoaraujosantos
leonardoaraujosantos deleted the docs/consumability-spec branch July 5, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant