From 63571bb26af2f374ba9d99dd6117c29022295506 Mon Sep 17 00:00:00 2001 From: jellespijker Date: Thu, 4 Jun 2026 12:48:35 +0200 Subject: [PATCH] [UC-3697] Setup pre-commit and agentic enablement for libUvula --- .github/CODEOWNERS | 17 ++ .github/PULL_REQUEST_TEMPLATE.md | 6 + .github/copilot-instructions.md | 22 +++ .../accessibility-auditor.instructions.md | 16 ++ .../code-reviewer.instructions.md | 30 ++++ .../gha-helper.instructions.md | 34 ++++ .../pr-assistant.instructions.md | 60 +++++++ .../testing-automation.instructions.md | 16 ++ .github/dependabot.yml | 23 +++ .github/services/account-api.yaml | 164 ++++++++++++++++++ .github/services/account-frontend.yaml | 36 ++++ .github/services/account-worker.yaml | 115 ++++++++++++ .github/services/lab.env | 26 +++ .github/services/production.env | 25 +++ .github/services/staging.env | 25 +++ .github/workflows/build.yaml | 52 ++++++ .github/workflows/combine.yaml | 8 + .github/workflows/dependabot.yaml | 15 ++ .github/workflows/deploy.yaml | 53 ++++++ .github/workflows/lab-delete.yaml | 33 ++++ .github/workflows/lab-deploy.yaml | 40 +++++ .github/workflows/pull-request.yaml | 80 +++++++++ .github/workflows/test.yaml | 69 ++++++++ .pre-commit-config.yaml | 66 +++++++ .talismanrc | 28 +++ AGENTS.md | 124 +++++++++++++ README.md | 2 +- UvulaJS/UvulaJS.cpp | 82 ++++----- src/xatlas.cpp | 2 +- 29 files changed, 1217 insertions(+), 52 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/copilot-instructions.md create mode 100644 .github/copilot-instructions/accessibility-auditor.instructions.md create mode 100644 .github/copilot-instructions/code-reviewer.instructions.md create mode 100644 .github/copilot-instructions/gha-helper.instructions.md create mode 100644 .github/copilot-instructions/pr-assistant.instructions.md create mode 100644 .github/copilot-instructions/testing-automation.instructions.md create mode 100644 .github/dependabot.yml create mode 100644 .github/services/account-api.yaml create mode 100644 .github/services/account-frontend.yaml create mode 100644 .github/services/account-worker.yaml create mode 100644 .github/services/lab.env create mode 100644 .github/services/production.env create mode 100644 .github/services/staging.env create mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/combine.yaml create mode 100644 .github/workflows/dependabot.yaml create mode 100644 .github/workflows/deploy.yaml create mode 100644 .github/workflows/lab-delete.yaml create mode 100644 .github/workflows/lab-deploy.yaml create mode 100644 .github/workflows/pull-request.yaml create mode 100644 .github/workflows/test.yaml create mode 100644 .pre-commit-config.yaml create mode 100644 .talismanrc create mode 100644 AGENTS.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..893994f --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,17 @@ +# Generally we can assume these file extensions belongs to a group of developers +*.scss @Stardust_frontend +*.tsx @Stardust_frontend +*.js @Stardust_frontend +*.html @Stardust_frontend +*.py @Stardust_backend + +# These root files are very specific to development environments +/docker-compose.yml @Stardust_devops +Dockerfile @Stardust_devops +/*.md @Stardust + +# These directories are about: frontend, backend and github administration +/frontend/ @Stardust_frontend +/backend/ @Stardust_backend +/.github/ @Stardust_devops +/secrets/ @Stardust_devops diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..7ec0e36 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,6 @@ +Jira ticket: UC-XXX + +- [ ] Describe the changes that were made and why +- [ ] Add screenshot +- [ ] Unit tests +- [ ] E2E tests diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md new file mode 100644 index 0000000..cb300c1 --- /dev/null +++ b/.github/copilot-instructions.md @@ -0,0 +1,22 @@ +# GitHub Copilot Custom Instructions + +Welcome! This configuration coordinates our multi-role coding assistant system to ensure that all generated code, documentation, and tests comply with UltiMaker Digital Factory's rigorous engineering quality standards for the **stardust-account** (Cura Cloud identity and login portal) stack. + +## Role-Based Personas + +Depending on the context of your query, please adopt one of our 5 specialized development personas: + +1. **[PR Assistant](.github/copilot-instructions/pr-assistant.instructions.md):** Focuses on managing branch tracking, bracketed Jira commit naming standards, and generating structured, descriptive pull request details. +2. **[GHA Helper](.github/copilot-instructions/gha-helper.instructions.md):** Focuses on building secure, optimized, and cached GitHub Actions pipelines. +3. **[Code Reviewer](.github/copilot-instructions/code-reviewer.instructions.md):** Focuses on reviewing architectural patterns (SOLID, DRY, KISS), checking for static bugs or lints, and enforcing compact files (around 300 lines, max 400 is acceptable, but prefer smaller). +4. **[Accessibility Auditor](.github/copilot-instructions/accessibility-auditor.instructions.md):** Focuses on reviewing and generating WCAG 2.1 AA compliant UI templates, keyboard navigation, and landmark groupings for our SSO and account portal pages. +5. **[Testing Automation](.github/copilot-instructions/testing-automation.instructions.md):** Focuses on pytest async tests, Jest unit assertions, and non-flaky browser automation with Cypress. + +--- + +## Strategic Principles + +- **Future AI Optimization:** Write clean, modular files (around 300 lines, max 400 is acceptable, but prefer smaller) with single-responsibility structures. This keeps context sizes minimal, limits token overhead, and reduces compilation time for succeeding AI agents. +- **Secure by Design:** Actively mitigate OWASP Top 10 vulnerabilities (NoSQL injection, insecure endpoints). Secure user credentials (argon2/bcrypt), handle MFA/TOTP safely, and never log/expose PII. +- **Experimental Guardrails:** Never commit manual tests, scratch files, or test scripts. All experiment work belongs in the gitignored `scratch/` directory. +- **Design Tokens Compliance:** Align frontend logic strictly with token values mapped in `DESIGN.md` (HSL colors, typography scales, layout rhythm). \ No newline at end of file diff --git a/.github/copilot-instructions/accessibility-auditor.instructions.md b/.github/copilot-instructions/accessibility-auditor.instructions.md new file mode 100644 index 0000000..69e214d --- /dev/null +++ b/.github/copilot-instructions/accessibility-auditor.instructions.md @@ -0,0 +1,16 @@ +# Role: Accessibility Auditor (Copilot Instruction) + +You are the Accessibility Auditor. Your primary directive is to ensure that all user interface modifications, components, and templates in the **stardust-account** login, SSO, and profile management portal conform to WCAG 2.1 AA guidelines. + +## 1. Core Structural Semantic Audit + +- Verify that logical landmark tags (`
`, `