feat: whyrating - initial project from turbostarter boilerplate

This commit is contained in:
Alejandro Gutiérrez
2026-02-04 01:54:52 +01:00
commit 5cdc07cd39
1618 changed files with 338230 additions and 0 deletions

21
.github/DISCUSSION_TEMPLATE/ideas.yml vendored Normal file
View File

@@ -0,0 +1,21 @@
body:
- type: markdown
attributes:
value: |
Thank you for taking the time to file a feature request. Please fill out this form as completely as possible.
- type: textarea
attributes:
label: Describe the feature you'd like to request
description: Please describe the feature as clear and concise as possible. Remember to add context as to why you believe this feature is needed.
validations:
required: true
- type: textarea
attributes:
label: Describe the solution you'd like to see
description: Please describe the solution you would like to see. Adding example usage is a good way to provide context.
validations:
required: true
- type: textarea
attributes:
label: Additional information
description: Add any other information related to the feature here. If your feature request is related to any issues or discussions, link them here.

53
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,53 @@
name: "Bug report"
description: Report an issue
title: "[Bug]: "
labels: ["bug"]
body:
- type: markdown
attributes:
value: |
### Thanks for taking the time to create a bug report. Please search open/closed issues before submitting, as the issue may have already been reported/addressed.
- type: markdown
attributes:
value: |
#### If you aren't sure this is a bug or not, please open a discussion instead:
- [Discussions](https://github.com/turbostarter/core/discussions/new?category=general)
- type: textarea
id: bug-description
attributes:
label: Describe the bug
description: A clear and concise description of what the bug is. If you intend to submit a PR for this issue, tell us how in the description. Thanks!
placeholder: Bug description
validations:
required: true
- type: textarea
id: reproduction
attributes:
label: How to reproduce
description: A step-by-step description of how to reproduce the bug.
placeholder: |
1. Go to '...'
2. Click on '....'
3. See error
validations:
required: true
- type: textarea
id: logs
attributes:
label: Logs
description: "Please include browser console and server logs around the time this bug occurred. Optional if provided reproduction. Please try not to insert an image but copy paste the log text."
render: bash
- type: textarea
id: system-info
attributes:
label: System Info
description: Information about browsers, system or binaries that's relevant.
render: bash
placeholder: System, Binaries, Browsers
validations:
required: true

4
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
contact_links:
- name: Get Help
url: https://github.com/turbostarter/core/discussions/new?category=general
about: If you can't get something to work the way you expect, open a question in our discussion forums.

View File

@@ -0,0 +1,35 @@
name: "Feature request"
description: Suggest an idea for this project
title: "[Feature]: "
labels: ["request"]
body:
- type: markdown
attributes:
value: |
### Thanks for taking the time to create a feature request! Please search open/closed issues before submitting, as the issue may have already been reported/addressed.
- type: markdown
attributes:
value: |
#### If you aren't sure this is a bug or not, please open a discussion instead:
- [Discussions](https://github.com/turbostarter/core/discussions/new?category=general)
- type: textarea
id: feature-description
attributes:
label: Feature description
description: Tell us about your feature request
placeholder: "I think this feature would be great because..."
value: "Describe your feature request..."
validations:
required: true
- type: textarea
id: context
attributes:
label: Additional Context
description: Add any other context about the feature here.
placeholder: ex. screenshots, Stack Overflow links, forum links, etc.
value: "Additional details here..."
validations:
required: false

23
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,23 @@
{
"enabled": true,
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:recommended"],
"packageRules": [
{
"enabled": false,
"matchPackageNames": ["/^@turbostarter//"]
}
],
"updateInternalDeps": true,
"rangeStrategy": "bump",
"automerge": true,
"prConcurrentLimit": 5,
"prHourlyLimit": 2,
"schedule": ["on the first day of the month"],
"npm": {
"managerFilePatterns": [
"/(^|/)package\\.json$/",
"/(^|/)package\\.json\\.hbs$/"
]
}
}

47
.github/workflows/ai-review.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: CI / AI Review
on:
pull_request:
types: [opened, reopened, ready_for_review, synchronize]
issue_comment:
jobs:
gpt-review:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
issues: write
pull-requests: write
contents: write
steps:
- name: 🔍 Review
id: ai-review
uses: qodo-ai/pr-agent@main
env:
OPENAI_KEY: ${{ secrets.OPENAI_KEY }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
github_action_config.auto_describe: "false"
claude-review:
if: ${{ github.event.sender.type != 'Bot' }}
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
contents: write
pull-requests: write
issues: write
id-token: write
actions: read # Required for Claude to read CI results on PRs
steps:
- name: Checkout repository
uses: actions/checkout@v5
with:
fetch-depth: 1
- name: Run Claude Code
id: claude
uses: anthropics/claude-code-action@beta
with:
anthropic_api_key: ${{ secrets.ANTHROPIC_KEY }}
additional_permissions: |
actions: read

View File

@@ -0,0 +1,72 @@
name: Cognitive Context
on:
push:
branches: [main, master]
paths:
- "packages/cognitive-context/**"
- ".cognitive/**"
- ".cursor/**"
- "CLAUDE.md"
pull_request:
paths:
- "packages/cognitive-context/**"
- ".cognitive/**"
- ".cursor/**"
- "CLAUDE.md"
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
FORCE_COLOR: "1"
NODE_VERSION: 22.x
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
jobs:
validate:
name: 🧠 Validate Context
runs-on: ubuntu-latest
steps:
- name: ✅ Checkout code
uses: actions/checkout@v5
- name: 🔨 Setup
uses: ./tooling/github/setup
with:
node-version: ${{ env.NODE_VERSION }}
- name: 🏗️ Build cognitive-context
run: pnpm --filter @repo/cognitive-context build
- name: 🔍 Validate cognitive context
run: pnpm --filter @repo/cognitive-context exec cognitive validate
continue-on-error: false
sync-check:
name: 🔄 Sync Check
runs-on: ubuntu-latest
steps:
- name: ✅ Checkout code
uses: actions/checkout@v5
- name: 🔨 Setup
uses: ./tooling/github/setup
with:
node-version: ${{ env.NODE_VERSION }}
- name: 🏗️ Build cognitive-context
run: pnpm --filter @repo/cognitive-context build
- name: 🔍 Check sync status (dry-run)
run: |
OUTPUT=$(pnpm --filter @repo/cognitive-context exec cognitive sync --dry-run 2>&1) || true
echo "$OUTPUT"
if echo "$OUTPUT" | grep -q "would be updated\|would be created\|out of sync"; then
echo "::error::Cognitive context is out of sync. Run 'cognitive sync' locally and commit changes."
exit 1
fi
echo "✅ All tool configurations are in sync"

30
.github/workflows/publish-db.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: CI / Publish db
on:
workflow_dispatch:
env:
NODE_VERSION: 22.x
jobs:
db:
name: 🚀 Publish database
runs-on: ubuntu-latest
environment: Production
env:
DATABASE_URL: ${{ secrets.DATABASE_URL }}
steps:
- name: ✅ Checkout code
uses: actions/checkout@v5
- name: 🔨 Setup
uses: ./tooling/github/setup
with:
node-version: ${{ env.NODE_VERSION }}
- name: 🔍 Check database
run: pnpm --filter @turbostarter/db db:check
- name: 💨 Migrate!
run: pnpm --filter @turbostarter/db db:migrate

36
.github/workflows/publish-mobile.yml vendored Normal file
View File

@@ -0,0 +1,36 @@
name: CI / Publish mobile
on:
workflow_dispatch:
env:
NODE_VERSION: 22.x
jobs:
tests:
name: 🧪 Tests
secrets: inherit
uses: ./.github/workflows/tests.yml
publish:
name: 🚀 Publish mobile
runs-on: ubuntu-latest
environment: Production
needs: [tests]
steps:
- name: ✅ Checkout code
uses: actions/checkout@v5
- name: 🔨 Setup
uses: ./tooling/github/setup
with:
node-version: ${{ env.NODE_VERSION }}
- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}
- name: 💨 Publish!
run: cd apps/mobile && eas build --platform all --profile production --non-interactive --no-wait --auto-submit

43
.github/workflows/publish-web.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: CI / Publish web
on:
workflow_dispatch:
env:
NODE_VERSION: 22.x
jobs:
tests:
name: 🧪 Tests
secrets: inherit
uses: ./.github/workflows/tests.yml
publish:
name: 🚀 Publish web
runs-on: ubuntu-latest
environment: Production
needs: [tests]
env:
VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }}
VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }}
steps:
- name: ✅ Checkout code
uses: actions/checkout@v5
- name: 🔨 Setup
uses: ./tooling/github/setup
with:
node-version: ${{ env.NODE_VERSION }}
- name: 🔼 Install Vercel CLI
run: pnpm install --global vercel@latest
- name: 💪 Pull environment information
run: vercel pull --yes --environment=production --token=${{ secrets.VERCEL_TOKEN }}
- name: 📦 Build
run: vercel build --prod --token=${{ secrets.VERCEL_TOKEN }}
- name: 💨 Publish!
run: vercel deploy --prebuilt --prod --token=${{ secrets.VERCEL_TOKEN }}

47
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,47 @@
name: CI / Tests
on:
pull_request:
branches: ["*"]
push:
branches: ["main"]
merge_group:
workflow_dispatch:
workflow_call:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
env:
FORCE_COLOR: "1"
NODE_VERSION: 22.x
# You can leverage Remote Caching with Turbo to speed up your builds
# @link https://turbo.build/repo/docs/guides/ci-vendors/github-actions
TURBO_TEAM: ${{ secrets.TURBO_TEAM }}
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
jobs:
test:
name: 🧪 Test
runs-on: ubuntu-latest
steps:
- name: ✅ Checkout code
uses: actions/checkout@v5
- name: 🔨 Setup
uses: ./tooling/github/setup
with:
node-version: ${{ env.NODE_VERSION }}
- name: 🖌️ Format
run: pnpm run format
- name: 🛻 Lint
run: pnpm run lint && pnpm run lint:ws
- name: 📝 Typecheck
run: pnpm run typecheck
- name: 🧪 Test
run: pnpm run test