mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-10 12:47:04 +00:00
Add a dedicated lifecycle reference and back it with concrete role metadata changes: - `docs/contributing/design/services/lifecycle.md`: enumerate the values `meta/services.yml.<entity>.lifecycle` MAY take and the criteria each value commits the role to. Linear axis runs from `planned` -> `pre-alpha` -> `alpha` -> `beta` -> `rc` -> `stable` -> `maintenance` -> `deprecated` -> `eol`, with the inner five forming the tested envelope (matrix-deploy + Playwright gate applies). `beta` requires single sign-on against web-app-keycloak / svc-db-openldap whenever the upstream software ships an OIDC or LDAP adapter; `rc` additionally requires a live burn-in deploy on infinito.nexus. - Introduce a parallel `unsupported` tier off the linear axis for roles the project ships without test or maintenance commitment (proprietary products, demo prototypes). The role's `README.md` MUST state the unsupported status explicitly. - `docs/contributing/design/services/layout.md`: cross-link the new lifecycle.md as the semantic counterpart to the on-disk shape documented under `run_after` and `lifecycle`. - Move web-app-confluence, web-app-jira, web-app-magento from `alpha`/`planned` to `lifecycle: unsupported`. They are commercial proprietary products / catalogue demonstrations the project does not commit to maintain. Their meta entries flip to `unsupported` to match. - `tests/lint/repository/test_role_meta_layout.py`: extend `ALLOWED_LIFECYCLES` to cover the full set introduced in lifecycle.md (`rc`, `maintenance`, `eol`, `unsupported`) so the lint guard accepts the documented values without false positives. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Design 🎨
This directory contains contributor guidance for code design and implementation. Its scope is architecture, service wiring, coding principles, exceptions, and the boundaries that shape maintainable changes.