diff --git a/docs/quality/CONTRIBUTOR_GUIDE.md b/docs/quality/CONTRIBUTOR_GUIDE.md new file mode 100644 index 00000000..4764ca9e --- /dev/null +++ b/docs/quality/CONTRIBUTOR_GUIDE.md @@ -0,0 +1,148 @@ +# Stellar Wave Contributor Guide + +## What is a Stellar Wave Issue? + +A **Stellar Wave** issue represents a significant, well-scoped feature or infrastructure improvement that deserves careful, production-ready implementation. Stellar Wave issues are the gold standard for quality in the Tikka ecosystem. + +The name reflects our commitment to making a "wave" of quality across all packages — raising the bar for robustness, documentation, testing, and observability. + +--- + +## When to Use Stellar Wave + +Label an issue **Stellar Wave** if it: + +✅ **Is a major feature or improvement** +- New auction mechanism, payment flow, or notification system +- Infrastructure overhaul (new cache layer, observability platform, CI/CD enhancement) +- API redesign or significant contract interaction change + +✅ **Will impact multiple components or users** +- Changes to backend API used by client and SDK +- Database schema changes affecting indexer or oracle +- Public API additions to published packages + +✅ **Requires careful rollout** +- Data migrations needed +- Backward compatibility concerns +- Deployment sequencing required + +❌ **Is NOT appropriate for Stellar Wave** +- Bug fixes (use `bug` label instead) +- Minor refactorings (use `refactor` label) +- Documentation-only PRs (use `docs` label) +- Dependency updates (use `dependencies` label) + +--- + +## How to Implement a Stellar Wave Issue + +### 1. Plan Before Coding + +Read this entire quality standards document: [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) + +Identify which sections apply to your issue: +- Is it backend-only? Focus on [Backend section](./STELLAR_WAVE_CHECKLIST.md#backend-backend) +- Does it touch client? Include [Client requirements](./STELLAR_WAVE_CHECKLIST.md#client-client) +- Are there database changes? Review [Migration section](./STELLAR_WAVE_CHECKLIST.md#5-database-migrations) + +### 2. Implement with Quality in Mind + +Build the feature while addressing each requirement category: + +| Category | Action | +|---|---| +| **Docs** | Write API spec, code comments, runbook as you code | +| **Tests** | Write tests alongside implementation (TDD or alongside approach) | +| **Logging** | Add structured logs for debugging and monitoring | +| **Errors** | Implement proper error handling and user messaging | +| **Migration** | Create database migrations; test rollback | +| **Types** | Use TypeScript strict mode; validate inputs with Zod | + +### 3. Verify Before Review + +Run the package-specific CI command from [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md#package-specific-expectations): + +```bash +# Example for backend +cd backend +pnpm run build +pnpm run test -- --ci +pnpm run lint +pnpm run validate:openapi +``` + +Use the [Review Checklist](./STELLAR_WAVE_CHECKLIST.md#review-checklist) before opening your PR. + +### 4. Open PR with Context + +In your PR description: +- Link the original issue +- Briefly describe implementation approach +- Highlight any design decisions or trade-offs +- Note any new dependencies added +- Confirm you've completed the Stellar Wave checklist + +Example: +```markdown +Fixes #42 (Implement auction mechanism) + +## Implementation +- Implemented blind auction with commit-reveal phases +- Added auction state machine to validate transitions +- Integrated with existing raffle contract interface + +## Quality Checklist +- [x] Tests: 84% coverage, integration tests for state machine +- [x] Docs: OpenAPI spec, runbook for operators +- [x] Logging: Structured logs for each auction phase +- [x] Errors: User-friendly messages, proper HTTP status codes +- [x] Migrations: TypeORM migration for auction_events table, rollback tested + +## New Dependencies +None + +## Breaking Changes +None; auction mechanism is additive feature +``` + +### 5. Address Review Feedback + +Reviewers will check: +- Does implementation satisfy the Stellar Wave standard? +- Are there gaps in tests, docs, or error handling? +- Does code follow package conventions? +- Are there security or performance concerns? + +Iterate until all feedback addressed. + +--- + +## Common Pitfalls + +| Pitfall | How to Avoid | +|---|---| +| **Missing Tests** | Write tests first or alongside code; aim for 80%+ coverage | +| **Vague Error Messages** | Put yourself in user's shoes; error should explain what went wrong and suggest fix | +| **No Logging** | Add structured logs with context; should be debuggable from logs alone | +| **Incomplete Migrations** | Test `migration:revert` works; include data migration logic, not just schema | +| **Undocumented Design Decisions** | Comment non-obvious logic; document why, not just what | +| **Ignored Package Conventions** | Read existing code in the package; follow established patterns | +| **Cross-Package Integration Issues** | Test with real dependencies; don't mock away integration problems | + +--- + +## Questions? + +Refer to: +- [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) — comprehensive requirements +- [ARCHITECTURE.md](../ARCHITECTURE.md) — ecosystem design and data flows +- Package README — language, tools, and conventions + +If guidance is missing or unclear, open an issue labeled `question` or `documentation`. + +--- + +**Remember:** Stellar Wave issues are about raising the bar collectively. High standards make the codebase more maintainable, debuggable, and reliable for everyone. + +Happy building! 🌊 diff --git a/docs/quality/QUICK_REFERENCE.md b/docs/quality/QUICK_REFERENCE.md new file mode 100644 index 00000000..e1025e7b --- /dev/null +++ b/docs/quality/QUICK_REFERENCE.md @@ -0,0 +1,115 @@ +# Stellar Wave Quick Reference + +**One-page checklist for contributors implementing Stellar Wave issues.** + +--- + +## Pre-Implementation + +- [ ] Read [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) +- [ ] Identify affected package(s) (backend, client, indexer, oracle, sdk) +- [ ] Plan docs, tests, logging, error handling upfront + +--- + +## Universal Checklist + +| Item | Status | +|---|---| +| **Docs** — API spec, code comments, runbook | | +| **Tests** — Unit (80%+), integration, e2e | ✓ | +| **Logging** — Structured logs, no PII | ✓ | +| **Errors** — Proper status codes, user-friendly messages | ✓ | +| **Migrations** — TypeORM, reversible, data-safe | ✓ | +| **Linting** — `pnpm run lint` passes | ✓ | +| **Security** — No secrets in code, dependencies audited | ✓ | + +--- + +## Package-Specific Commands + +### Backend +```bash +cd backend +pnpm run build && pnpm run test -- --ci && pnpm run lint && pnpm run validate:openapi +``` + +### Client +```bash +cd client +pnpm run build && pnpm run test:unit && pnpm run test:e2e && pnpm run lint +``` + +### Indexer +```bash +cd indexer +pnpm run build && pnpm run test && pnpm run test:integration --forceExit && pnpm run lint +``` + +### Oracle +```bash +cd oracle +pnpm run build && pnpm run test && pnpm run lint +``` + +### SDK +```bash +cd sdk +npm run build && npm run test && npm run lint && npm run docs +``` + +--- + +## Cross-Package + +```bash +# From root +pnpm run build && pnpm run test +``` + +--- + +## Before Opening PR + +- [ ] All CI commands pass locally +- [ ] No console.log, TODOs, or debug code left +- [ ] Code follows package conventions +- [ ] `README.md` updated (if user-facing) +- [ ] Changelog entry added (if applicable) +- [ ] Related issues linked + +--- + +## PR Description Template + +```markdown +Fixes # + +## Implementation +- [ ] Describe approach + +## Stellar Wave Checklist +- [x] Tests: +- [x] Docs: +- [x] Logging: +- [x] Errors: +- [x] Migrations: + +## Breaking Changes + + +## Dependencies + +``` + +--- + +## Need Help? + +- **Full Requirements** → [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) +- **What is Stellar Wave?** → [CONTRIBUTOR_GUIDE.md](./CONTRIBUTOR_GUIDE.md) +- **Ecosystem Design** → [ARCHITECTURE.md](../ARCHITECTURE.md) + +--- + +**Last Updated:** 2026-05-29 diff --git a/docs/quality/README.md b/docs/quality/README.md new file mode 100644 index 00000000..2154ca87 --- /dev/null +++ b/docs/quality/README.md @@ -0,0 +1,94 @@ +# Tikka Quality Standards + +Welcome to the quality standards directory for the Tikka ecosystem. Here you'll find the guidelines and checklists that define what it means to ship high-quality, production-ready code. + +--- + +## Documents + +### 📋 [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) +**The definitive standard for Stellar Wave issues.** + +Comprehensive requirements across: +- Documentation (API specs, code comments, runbooks) +- Tests (unit, integration, e2e) +- Telemetry (logging, tracing, metrics) +- Error handling (user-facing messages, graceful degradation) +- Database migrations (TypeORM, reversibility, data safety) +- Package-specific expectations (backend, client, indexer, oracle, sdk) +- CI/CD integration and commands + +**When to use:** Before implementing a Stellar Wave issue, or reviewing one. Reference this to ensure nothing is missed. + +--- + +### 🎯 [CONTRIBUTOR_GUIDE.md](./CONTRIBUTOR_GUIDE.md) +**Guidance for implementing Stellar Wave issues.** + +Explains: +- What qualifies as a Stellar Wave issue +- Step-by-step implementation workflow +- Common pitfalls and how to avoid them +- PR submission best practices + +**When to use:** You're about to start a Stellar Wave issue, or onboarding a new contributor. + +--- + +### ⚡ [QUICK_REFERENCE.md](./QUICK_REFERENCE.md) +**One-page checklist for fast reference.** + +Contains: +- Pre-implementation checklist +- Package-specific CI commands +- PR description template +- Quick links to full docs + +**When to use:** Before opening a PR, or as a refresher during implementation. + +--- + +## Quick Start + +1. **Implementing your first Stellar Wave issue?** + - Read [CONTRIBUTOR_GUIDE.md](./CONTRIBUTOR_GUIDE.md) first + - Then reference [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) as you build + +2. **Need to verify implementation?** + - Use [QUICK_REFERENCE.md](./QUICK_REFERENCE.md) for CI commands and checklist + - Reference package-specific section in [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) + +3. **Reviewing someone else's Stellar Wave PR?** + - Check against [STELLAR_WAVE_CHECKLIST.md](./STELLAR_WAVE_CHECKLIST.md) requirements + - Use [CONTRIBUTOR_GUIDE.md](./CONTRIBUTOR_GUIDE.md) to understand implementation approach + +--- + +## Philosophy + +Stellar Wave issues are the ecosystem's commitment to quality. By maintaining high standards: + +✅ **Reliability** — Issues are thoroughly tested and documented +✅ **Maintainability** — Clear logging and comments make debugging easier +✅ **Scalability** — Error handling and migrations prepare for growth +✅ **Consistency** — Package-specific expectations align with ecosystem patterns + +Every Stellar Wave issue raises the bar for the entire project. + +--- + +## Feedback + +These standards are living documentation. If you find: +- **Missing guidance** — Open an issue with `quality` label +- **Outdated information** — Submit a PR with corrections +- **Unclear requirements** — Ask in PR discussions or issues + +Together, we maintain excellence. 🌊 + +--- + +**Related Resources:** +- [Tikka Architecture](../ARCHITECTURE.md) — Ecosystem design and data flows +- [Tikka README](../../README.md) — Project overview and setup +- [GitHub Workflows](.github/workflows/) — CI/CD configuration diff --git a/docs/quality/STELLAR_WAVE_CHECKLIST.md b/docs/quality/STELLAR_WAVE_CHECKLIST.md new file mode 100644 index 00000000..ee772b09 --- /dev/null +++ b/docs/quality/STELLAR_WAVE_CHECKLIST.md @@ -0,0 +1,358 @@ +# Stellar Wave Quality Standards + +This document defines the **common completion standard** for every Stellar Wave issue in the Tikka ecosystem. Use this checklist to ensure your implementation is production-ready before requesting review. + +--- + +## Overview + +Stellar Wave issues require robust implementation across: +- **Documentation** — API specs, architecture, deployment guides +- **Tests** — Unit, integration, e2e coverage +- **Telemetry** — Logging, tracing, error reporting +- **Error Handling** — Graceful degradation, user-facing messages +- **Migrations** — Database schema changes, data migration safety +- **Package-Specific Expectations** — Tailored requirements per component +- **CI/CD Integration** — Automated quality gates + +--- + +## Acceptance Criteria + +Every Stellar Wave issue MUST meet these explicit acceptance criteria before being marked "ready for review": + +- **Complete Documentation:** API surface, examples, error codes, and runbook/troubleshooting are present and linked from the package README. +- **Tests Passing:** Unit, integration, and applicable E2E tests are implemented and pass locally and in CI; new logic achieves the stated coverage targets. +- **Telemetry & Alerts:** Structured logging, tracing spans for critical flows, and error reporting are instrumented; key metrics and alert thresholds are documented. +- **Robust Error Handling:** User-facing errors are actionable and localized; unexpected failures are captured and do not expose internals. +- **Safe Migrations:** Database migrations are reversible or have a documented rollback plan; data migration steps preserve existing data integrity. +- **Package Expectations Met:** The package-specific checklist entries in this document are fully satisfied for every affected package. +- **CI Integration:** The PR triggers relevant CI jobs and artifacts (builds, test reports, docs) and all jobs succeed. + +These criteria map directly to the Review Checklist below — maintainers should verify each bullet when reviewing a PR. + +--- + +## Universal Requirements + +All Stellar Wave issues **must** satisfy these baseline requirements: + +### 1. Documentation + +- [ ] **API Documentation** + - OpenAPI/Swagger spec generated and validated + - Clear request/response examples + - Error codes and status meanings documented + - Rate limiting, auth requirements, and constraints noted + +- [ ] **Code Comments** + - Complex logic explained inline + - Non-obvious design decisions justified + - Public API surfaces fully JSDoc/TypeDoc annotated + +- [ ] **Runbook / Troubleshooting Guide** + - Common failure scenarios and recovery steps + - Monitoring dashboards and alerts referenced + - Contact/escalation procedures + +- [ ] **README Update** + - Feature described in package README + - Setup/configuration instructions (if applicable) + - Links to full documentation + +### 2. Tests + +All new code **must** have corresponding test coverage: + +- [ ] **Unit Tests** + - Core logic thoroughly tested + - Edge cases covered (null, empty, max values, etc.) + - Error conditions and exceptions tested + - Minimum 80% code coverage for new modules + +- [ ] **Integration Tests** + - Component interactions verified + - Database/external service mocking appropriate + - End-to-end data flows validated + +- [ ] **E2E Tests** (where applicable — primarily client/API) + - User workflows validated in browser or API client + - Cross-browser compatibility confirmed (client only) + - Mobile responsiveness verified (client only) + +- [ ] **Test Execution** + - `pnpm run test` (or package-specific test command) passes locally + - Tests pass in CI pipeline + - No flaky tests; retry logic is explicit where necessary + +### 3. Telemetry & Observability + +- [ ] **Logging** + - Structured logging (JSON format) for programmatic analysis + - Appropriate log levels used (debug, info, warn, error) + - PII never logged (wallets, user IDs, API keys masked) + - Request IDs or trace IDs propagated across service boundaries + +- [ ] **Tracing** (backend/indexer/oracle) + - Critical operations instrumented with start/end spans + - Errors captured with full stack traces and context + - Distributed tracing enabled across service calls + +- [ ] **Metrics** (backend/indexer/oracle) + - Operation durations recorded + - Error rates tracked + - Custom business metrics exposed (e.g., raffle created, ticket purchased) + +- [ ] **Error Reporting** (Sentry/similar) + - Unhandled exceptions automatically reported + - Severity levels correctly assigned + - Sensitive data scrubbed from error context + +### 4. Error Handling + +- [ ] **User-Facing Errors** + - HTTP status codes semantically correct (400, 401, 403, 404, 500, etc.) + - Error messages human-readable and actionable + - No stack traces exposed to clients + - Internationalization (i18n) applied for client-facing strings + +- [ ] **Graceful Degradation** + - Partial failures don't cascade to complete outages + - Fallback mechanisms in place for external service calls + - Circuit breakers or timeout handlers implemented + - Data consistency maintained under failure + +- [ ] **Validation** + - Input validation performed before processing + - Business logic constraints enforced + - Zod (or similar) schemas used for type safety + +### 5. Database Migrations + +- [ ] **Migration Scripts** (backend/indexer) + - TypeORM migrations generated and reviewed + - Reversible (`migration:revert` works) + - Data migration logic handles existing records safely + - Zero-downtime migration strategy (if needed for large tables) + +- [ ] **Schema Versioning** + - Migration numbering follows convention (timestamp-based) + - Migration names clearly describe intent + - No raw SQL without documentation + +- [ ] **Rollback Plan** + - Rollback procedure documented + - Data backups verified before production deployment + - Previous schema supported until rollout complete + +### 6. Code Quality + +- [ ] **Linting & Formatting** + - `pnpm run lint` passes without errors + - ESLint rules enforced consistently + - Prettier formatting applied + - No console.log left in production code + +- [ ] **Type Safety** + - TypeScript strict mode enabled + - No `any` types except where explicitly justified + - Return types explicitly annotated for public functions + +- [ ] **Security** + - OWASP top 10 risks assessed + - Input sanitization applied + - Secrets not hardcoded (use environment variables) + - Dependency vulnerabilities checked (`npm audit` / `pnpm audit`) + +--- + +## Package-Specific Expectations + +### Backend (`backend/`) + +| Requirement | Details | +|---|---| +| **API Spec** | OpenAPI generated via `pnpm run generate:openapi` and validated via `pnpm run validate:openapi` | +| **Tests** | `pnpm run test` covers unit and integration. E2E tests in `test/jest-e2e.json` | +| **Build** | `pnpm run build` produces dist/ without errors; NestJS CLI used | +| **Linting** | `pnpm run lint` checks `src/` and `test/` | +| **Logging** | Pino (via nestjs-pino) for structured logs; context injected with request IDs | +| **Error Handling** | Filters and exception handlers catch and transform errors; Swagger HttpException decorators applied | +| **Database** | TypeORM migrations in `src/migrations/`; Supabase PostgreSQL as primary store | +| **Auth** | SIWS (Sign-In With Stellar) via Passport; JWT tokens validated on protected routes | +| **Telemetry** | Sentry integration for error reporting; optional Grafana dashboards | + +**CI Command:** +```bash +cd backend && pnpm run build && pnpm run test -- --ci && pnpm run lint && pnpm run validate:openapi +``` + +--- + +### Client (`client/`) + +| Requirement | Details | +|---|---| +| **Build** | `pnpm run build` produces dist/ via Vite; source maps included for debugging | +| **Tests** | Unit tests via `pnpm run test:unit` (Vitest); E2E via `pnpm run test:e2e` (Playwright) | +| **Linting** | `pnpm run lint` checks all .ts/.tsx/.js/.jsx files | +| **Types** | TypeScript strict mode; all React components typed | +| **Accessibility** | WCAG 2.1 AA compliance; keyboard navigation tested; screen reader tested | +| **Responsive Design** | Mobile, tablet, desktop viewports verified; Tailwind CSS for styling | +| **i18n** | User-facing strings translated via i18next; language switcher functional | +| **Error UI** | User-friendly error messages displayed; retry mechanisms provided | +| **Performance** | Bundle size tracked; lazy loading for routes; Web Vitals optimized | + +**CI Command:** +```bash +cd client && pnpm run build && pnpm run test:unit && pnpm run test:e2e && pnpm run lint +``` + +--- + +### Indexer (`indexer/`) + +| Requirement | Details | +|---|---| +| **Event Processing** | Blockchain events parsed correctly; extensions follow extensible pattern | +| **Tests** | Unit: `pnpm run test`; Integration: `pnpm run test:integration --forceExit` (with Redis + DB) | +| **Build** | `pnpm run build` produces dist/; NestJS CLI validates structure | +| **Linting** | `pnpm run lint` checks `src/` and `test/` | +| **Logging** | Structured logs for every event processed; backoff/retry logic traced | +| **Database** | TypeORM migrations in `src/migrations/`; PostgreSQL schema changes documented | +| **Message Queue** | BullMQ jobs for async processing; failed jobs dead-letter queued and tracked | +| **Caching** | Redis used for hot data; TTLs set appropriately; cache invalidation explicit | +| **Health Checks** | Database, Redis, Horizon connection status monitored | +| **Data Consistency** | Idempotent processing; duplicate detection prevents re-processing | + +**CI Command:** +```bash +cd indexer && pnpm run build && pnpm run test && pnpm run test:integration --forceExit && pnpm run lint +``` + +--- + +### Oracle (`oracle/`) + +| Requirement | Details | +|---|---| +| **Draw Request Handling** | Listens for events; validates request format; submits randomness | +| **Tests** | Unit tests cover VRF/PRNG logic; integration tests verify contract interaction | +| **Build** | `pnpm run build` produces dist/ | +| **Linting** | `pnpm run lint` enforces code quality | +| **Logging** | Every draw request logged; randomness generation tracked; contract submission confirmed | +| **Error Recovery** | Transient failures retried with exponential backoff; permanent failures escalated | +| **Security** | Oracle key management secure (HSM or similar); signature verification before submission | +| **Monitoring** | Draw request latency tracked; success/failure rates monitored; alerts for anomalies | + +**CI Command:** +```bash +cd oracle && pnpm run build && pnpm run test && pnpm run lint +``` + +--- + +### SDK (`sdk/`) + +| Requirement | Details | +|---|---| +| **API Documentation** | TypeDoc generated docs; examples for every public function | +| **Build** | `npm run build` produces dist/; ESM and CommonJS outputs (if applicable) | +| **Tests** | Unit tests via Jest; edge cases for Soroban contract interaction | +| **Linting** | ESLint checks all TypeScript files | +| **Types** | Zod schemas for data validation; TypeScript strict mode | +| **Publishing** | Versioning follows semver; CHANGELOG updated; npm registry publication tested | +| **Backward Compatibility** | Breaking changes documented; deprecation warnings provided; migration guide offered | + +**CI Command:** +```bash +cd sdk && npm run build && npm run test && npm run lint && npm run docs +``` + +--- + +## Cross-Package Requirements + +When a change spans multiple packages (e.g., backend + client): + +- [ ] **Coordinated Testing** + - Integration tests verify the packages work together + - Deployment order documented (if backend must deploy first) + - Feature flags or versioning used if async deployment needed + +- [ ] **Documentation** + - Root-level README updated with cross-package changes + - Architecture diagram updated (if flow changes) + - API contracts clearly defined (request/response formats) + +- [ ] **CI Pipeline** + - Root-level `pnpm run test` runs all affected packages + - Workflow orchestration ensures correct build order + - Dependent packages re-tested after changes + +**Root CI Command:** +```bash +pnpm install && pnpm run build && pnpm run test && pnpm run lint +``` + +--- + +## Review Checklist + +Before marking a Stellar Wave issue as ready for review, verify: + +- [ ] All universal requirements above satisfied +- [ ] Package-specific expectations met +- [ ] CI pipeline green (all workflows pass) +- [ ] Code review checklist completed (see [CODE_REVIEW.md](./CODE_REVIEW.md) if exists) +- [ ] No TODOs or FIXMEs left in code +- [ ] Related GitHub issues or PRs linked +- [ ] Changelog entry added (if applicable) +- [ ] Release notes drafted (for major features) + +--- + +## Suggested Verification Steps + +1. **Local Pre-Flight** + ```bash + cd + pnpm install + pnpm run build + pnpm run test + pnpm run lint + ``` + +2. **Cross-Package (if applicable)** + ```bash + # From root + pnpm run build + pnpm run test + ``` + +3. **CI Validation** + - Push branch to trigger GitHub Actions workflows + - Verify all workflow jobs pass + - Check artifact uploads (docs, build outputs) succeeded + +4. **Manual Testing** + - Smoke test the feature in staging environment + - Verify monitoring/logging appears in observability platform + - Confirm error scenarios gracefully handled + +--- + +## Continuous Improvement + +This checklist is living documentation. If you find: +- **Missing item** — Add to this document and open a PR +- **Outdated tool** — Update references and explain migration path +- **Unclear expectation** — Clarify or add examples + +Stellar Wave issues drive quality elevation across the ecosystem. Let's maintain the bar together. + +--- + +**Last Updated:** 2026-05-29 +**Maintained By:** Tikka Quality Team +**Related:** [ARCHITECTURE.md](../ARCHITECTURE.md) | [CI Workflows](.github/workflows/)