| name | ci-standards |
| description | CI/CD standards knowledge for validating project compliance with CI conventions |
| context | inline |
CI Standards
Inline skill providing CI/CD standards knowledge from the governance documentation. Used by ci-checker and ci-fixer agents to validate compliance.
Reference Documents
Mandatory Nx Targets Per App Type
| App Type | Required Targets |
|---|
| Demo-be backend | codegen, typecheck, lint, build, test:unit, test:quick, test:integration, specs:coverage |
| Demo-fe frontend | codegen, typecheck, lint, build, test:unit, test:quick, specs:coverage |
| Fullstack app | codegen, typecheck, lint, build, test:unit, test:quick, test:integration, specs:coverage |
| CLI app (Rust) | typecheck, lint, build, test:unit, test:quick, test:integration, specs:coverage |
| Content platform | typecheck, lint, build, test:unit, test:quick, test:integration, specs:coverage |
| Library | lint, build, test:unit, test:quick |
| E2E runner | lint, test:e2e, test:e2e:ui, specs:coverage |
Coverage Thresholds
| Threshold | Projects |
|---|
| 90% | organiclever-be, CLI apps, Rust libs |
| 80% | Content platforms (ayokoding-www, ose-www) |
| 70% | organiclever-app-web |
Docker Setup Requirements
Every app with a dev or test:integration target must have:
infra/dev/{app}/docker-compose.yml — Dev environment
infra/dev/{app}/docker-compose.ci.yml — CI overlay (backends only)
infra/dev/{app}/.env.example — Environment variable template
apps/{app}/docker-compose.integration.yml — Integration tests (backends only)
E2E Pairing Rules
| Variant Type | Pairs With |
|---|
| Backend | Corresponding frontend via E2E |
| Frontend | Corresponding backend via E2E |
| Fullstack | Self-contained (own API routes) |
Gherkin Consumption Mandate
All testable projects must consume Gherkin specs at ALL test levels. Unit tests are a superset of Gherkin — they MUST implement ALL Gherkin scenarios plus additional non-Gherkin tests.
Workflow Requirements
Each demo backend/frontend must have a per-variant test workflow (test-{app-name}.yml) calling reusable workflows with CRON schedule (2x daily at WIB 06:00 and 18:00).