Initial commit of the Flutter Cursor Generator project, including the core generator tool, project brief schema, example project setup, and CI configuration. Added README documentation outlining repository structure, quick start guide, and detailed descriptions of features and architecture pillars.

This commit is contained in:
2026-05-12 22:29:55 +05:30
commit 6dfb9a8aa5
72 changed files with 4542 additions and 0 deletions
@@ -0,0 +1,102 @@
# template-ci.yml — Pillar 3: CI pipeline for the template repo
# Runs on every push/PR to validate all template combinations
name: Template CI — Validate & Golden Tests
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
# ── Job 1: Validate all brief combinations ──────────────────────────────
validate-templates:
name: Validate template rendering
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
with:
sdk: stable
- name: Install dependencies
working-directory: generator
run: dart pub get
- name: Run generator test suite
working-directory: generator
run: dart test test/generator_test.dart --reporter=expanded
- name: Verify no unreplaced placeholders
working-directory: generator
run: |
dart test test/generator_test.dart \
--name "Rendered output has no unreplaced" \
--reporter=expanded
# ── Job 2: Golden file comparison ───────────────────────────────────────
golden-tests:
name: Golden file tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
with:
sdk: stable
- name: Install dependencies
working-directory: generator
run: dart pub get
- name: Run golden tests
working-directory: generator
run: dart test test/generator_test.dart --name "Golden" --reporter=expanded
# ── Job 3: Lint template files ──────────────────────────────────────────
lint-templates:
name: Lint template files
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Check for orphaned placeholders in static files
run: |
# Verify no .mdc files (non-template) have unresolved {{PLACEHOLDERS}}
# These should only be in .mdc.tmpl files
if find templates/ -name "*.mdc" -not -name "*.tmpl" | xargs grep -l '{{[A-Z_]*}}' 2>/dev/null; then
echo "ERROR: Found unreplaced placeholders in non-template .mdc files"
exit 1
fi
echo "✔ No orphaned placeholders in static files"
- name: Check for duplicate alwaysApply: true
run: |
# Warn if more than 5 rules have alwaysApply: true (context bloat)
count=$(grep -r "alwaysApply: true" templates/ | wc -l)
echo "Files with alwaysApply: true: $count"
if [ "$count" -gt 10 ]; then
echo "WARNING: $count files have alwaysApply: true — review for context bloat"
fi
# ── Job 4: Validate brief schema ────────────────────────────────────────
validate-schema:
name: Validate reference project-brief
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dart-lang/setup-dart@v1
with:
sdk: stable
- name: Install dependencies
working-directory: generator
run: dart pub get
- name: Validate reference project brief
working-directory: generator
run: |
brief="../../example-project/project-brief.yaml"
if [ ! -f "$brief" ]; then
echo "ERROR: Missing reference brief at $brief (expected monorepo layout)."
exit 1
fi
echo "Validating: $brief"
dart run bin/cursor_gen.dart --validate --brief "$brief"