phase 0+1: project scaffold, k8s manifests, CI pipeline, steering, hooks, tests
- Repository structure for all services, infra, lakehouse, dashboards - K8s manifests targeting stonks-oracle namespace with GHCR images - Ingress via Traefik with ca-issuer TLS for internal services - ConfigMap wired to existing cluster services (pg, redis, minio, ollama) - GitHub Actions workflow for lint, test, multi-service container builds - Dockerfile with build-arg CMD per service - Makefile for local build/push/deploy - Steering rules for TDD workflow, K8s conventions, project context - Agent hooks for lint-on-save, test-on-save, k8s-validate, phase-commit - Ruff linter config, all lint issues fixed - 14 passing tests for schemas, config, redis keys - PostgreSQL migrations, Trino catalogs, Superset config, MinIO lifecycle
This commit is contained in:
@@ -0,0 +1,14 @@
|
||||
---
|
||||
name: Lint Python on Save
|
||||
description: Run ruff linter when any Python file is saved
|
||||
version: "1.0"
|
||||
trigger:
|
||||
type: onSave
|
||||
filePattern: "**/*.py"
|
||||
---
|
||||
|
||||
When any Python file is saved:
|
||||
|
||||
1. Run `ruff check {filePath}` on the saved file
|
||||
2. If there are fixable issues, run `ruff check --fix {filePath}` to auto-fix
|
||||
3. Report any remaining issues concisely
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: Phase Commit and Push
|
||||
description: Commit and push after completing a spec phase task
|
||||
version: "1.0"
|
||||
trigger:
|
||||
type: manual
|
||||
---
|
||||
|
||||
When triggered manually after completing a phase:
|
||||
|
||||
1. Run `git add -A`
|
||||
2. Ask the user for a commit message, suggesting format: `phase N: short description`
|
||||
3. Run `git commit -m "{message}"`
|
||||
4. Run `git push origin main`
|
||||
5. Report the commit SHA and confirm push succeeded
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: Run Tests on Save
|
||||
description: Automatically run relevant tests when a Python service file is saved
|
||||
version: "1.0"
|
||||
trigger:
|
||||
type: onSave
|
||||
filePattern: "services/**/*.py"
|
||||
---
|
||||
|
||||
When a Python file under `services/` is saved:
|
||||
|
||||
1. Identify which service module was modified (e.g. `services/ingestion/worker.py` → `ingestion`)
|
||||
2. Look for corresponding tests in `tests/` matching the service name
|
||||
3. Run `pytest tests/test_{service_name}*.py -x --tb=short -q` if test files exist
|
||||
4. If no specific test file exists, run `ruff check` on the modified file to catch syntax/lint issues
|
||||
5. Report results concisely — only show failures or a one-line success confirmation
|
||||
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: Validate K8s Manifests
|
||||
description: Validate Kubernetes YAML when manifest files are saved
|
||||
version: "1.0"
|
||||
trigger:
|
||||
type: onSave
|
||||
filePattern: "infra/k8s/**/*.yaml"
|
||||
---
|
||||
|
||||
When a Kubernetes manifest YAML file is saved:
|
||||
|
||||
1. Parse the YAML to check for syntax errors
|
||||
2. Verify required fields exist (apiVersion, kind, metadata)
|
||||
3. Check that namespace is set to `stonks-oracle` for application resources
|
||||
4. Verify image references point to `ghcr.io/celesrenata/stonks-oracle/`
|
||||
5. Report any issues found
|
||||
Reference in New Issue
Block a user