quranic-universal-library
Copilot instructions1.1k starsChanged 19 months agoMITView on GitHub
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here. TIMEOUT: Set 30+ minutes. Installation may take up to 20 minutes. TIMEOUT: Set 15+ minutes for complex gem compilation. Note: If Cypress or Puppeteer installation fails due to network restrictions, use: TIMEOUT: Set 10+ minutes for large dependency downloads. TIMEOUT: Set 2+ minutes. May show esbuild warnings about direct eval usage - this is normal.
- Pipes a download into a shell
- Reads credentials
- Deletes or force-pushes
- Installs packages
We split this copilot-instructions.md into the rules it gives an agent
17 rules. About 1 is common, 10 are distinctive, and 6 are very specific to this project.
≈1
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 3
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does …
- Distinctive: line 45
Note: If Cypress or Puppeteer installation fails due to network restrictions, use:
- Distinctive: line 163
After making changes, ALWAYS test these scenarios:
- Very specific: line 166
Run bin/dev and verify server starts without errors
- Common: line 168
Check logs for critical errors
- Distinctive: line 172
Verify admin interface loads (may show empty data without database dump)
- Very specific: line 175
Run npm run build and verify no JavaScript errors
- Very specific: line 176
Run npm run build:css and verify CSS compiles successfully
- Distinctive: line 213
If you see "Your Ruby version is 3.x.x, but your Gemfile specified 3.3.3":
- Distinctive: line 218
If Rails cannot connect to PostgreSQL:
- Very specific: line 219
Ensure PostgreSQL service is running: pg_isready
- Very specific: line 220
Create database user: sudo -u postgres createuser -s $(whoami)
- Distinctive: line 223
If CSS/JS builds fail:
- Very specific: line 224
Check Node.js version: node --version (should be 18+)
- Distinctive: line 230
Ensure both databases exist
- Distinctive: line 240
Validate before committing: Test application startup and key functionality
- Distinctive: line 242
Always validate that your changes don't break the basic application startup and core functionality before pushing changes.
≈ “Common” is an estimate: at least 1 in 5 of the 3,669 Copilot instructions files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Quranic Universal Library (QUL) Development Instructions
Always reference these instructions first and fallback to search or bash commands only when you encounter unexpected information that does not match the info here.
Working Effectively
Prerequisites and Environment Setup
- CRITICAL: Ruby version 3.3.3 is required. Ruby 3.2.3 will cause Gemfile compatibility issues.
- Node.js: Version 24.19.0 (pinned by
.node-version) - PostgreSQL: Version 14.3+ required (16.9 tested and working)
- Redis: Version 7.0.0+ required for caching and background jobs
- RVM or rbenv: Required for Ruby version management
Initial Setup Commands
Execute these commands in order. NEVER CANCEL any of these operations:
- Install system dependencies (Ubuntu/Debian):
sudo apt-get update sudo apt-get install -y postgresql postgresql-contrib libpq-dev redis-server curl build-essential - Install RVM and Ruby 3.3.3 (NEVER CANCEL - takes 15-20 minutes):
TIMEOUT: Set 30+ minutes. Installation may take up to 20 minutes.curl -sSL https://get.rvm.io | bash -s stable source ~/.rvm/scripts/rvm rvm install 3.3.3 rvm use 3.3.3 rvm gemset create qul rvm gemset use qul - Install Ruby dependencies (NEVER CANCEL - takes 5-10 minutes):
TIMEOUT: Set 15+ minutes for complex gem compilation.gem install bundler bundle install - Install Node.js dependencies (NEVER CANCEL - takes 3-5 minutes):
Note: If Cypress or Puppeteer installation fails due to network restrictions, use:npm install
TIMEOUT: Set 10+ minutes for large dependency downloads.export CYPRESS_INSTALL_BINARY=0 export PUPPETEER_SKIP_DOWNLOAD=true npm install
Build Commands
Execute these for frontend asset compilation:
- Build JavaScript (takes ~1 second, TESTED):
TIMEOUT: Set 2+ minutes. May show esbuild warnings about direct eval usage - this is normal.npm run build - Build CSS (takes ~4 seconds, TESTED):
TIMEOUT: Set 5+ minutes. Will show Sass deprecation warnings about Bootstrap - this is normal and expected.npm run build:css
Database Setup
CRITICAL: QUL requires TWO separate PostgreSQL databases:
quran_community_tarteel: User accounts, permissions, community contentquran_dev: Quranic data (translations, tafsirs, audio, etc.)
Setup commands:
# Start PostgreSQL service
sudo service postgresql start
# Create PostgreSQL user (if needed)
sudo -u postgres createuser -s $(whoami)
# Create databases
rails db:create
rails db:migrateDatabase dumps: Download the mini development dump from:
- SQL: https://static-cdn.tarteel.ai/qul/mini-dumps/mini_quran_dev.sql.zip
- Binary: https://static-cdn.tarteel.ai/qul/mini-dumps/mini_quran_dev.dump.zip
Restore database:
# Option 1: SQL dump
psql quran_dev < path/to/mini_quran_dev.sql
# Option 2: Binary dump
pg_restore --host localhost --port 5432 --no-owner --no-privileges --no-tablespaces --no-acl --dbname quran_dev -v path/to/mini_quran_dev.dumpDevelopment Server
Start all services (NEVER CANCEL - may take 2-3 minutes to fully start):
# Start Redis
sudo service redis-server start
# Start Rails with asset watching (recommended)
bin/devAlternative: Start Rails server only:
bundle exec rails serverTIMEOUT: Set 10+ minutes for initial server startup. Rails application startup includes:
- Loading gems and dependencies (~30 seconds)
- Initializing Active Admin and other components (~1 minute)
- Database connection and schema loading (~30 seconds)
Expected startup output:
=> Booting Puma
=> Rails 8.0.x application starting in development
=> Run `bin/rails server --help` for more startup options
* Listening on http://127.0.0.1:3000Access points:
- Main application: http://localhost:3000
- Admin panel: http://localhost:3000/admin
Testing and Validation
Rails Console Test (TESTED - takes ~8 seconds):
bundle exec rails console
# Should load successfully with Rails version infoJavaScript linting (ESLint config missing in project):
# Check for JavaScript files
find app/javascript -name "*.js" -o -name "*.vue"
# Note: No .eslintrc configuration file exists - linting may failRuby linting (requires Ruby 3.3.3):
bundle exec rubocop --version
bundle exec rubocop
# Note: Will fail if Ruby version is not 3.3.3Cypress E2E tests (in scripts/cypress-e2e directory):
cd scripts/cypress-e2e
npx cypress open # GUI mode (may fail due to display/network restrictions)
npx cypress run # Headless modeNote: Cypress binary download often fails in restricted environments. Use CYPRESS_INSTALL_BINARY=0 if needed.
Validation Scenarios
After making changes, ALWAYS test these scenarios:
- Basic application startup:
- Run
bin/devand verify server starts without errors - Access http://localhost:3000 and verify page loads
- Check logs for critical errors
- Run
- Admin panel access:
- Navigate to http://localhost:3000/admin
- Verify admin interface loads (may show empty data without database dump)
- Asset compilation:
- Run
npm run buildand verify no JavaScript errors - Run
npm run build:cssand verify CSS compiles successfully
- Run
- Database connectivity:
- Run
bundle exec rails console - Execute basic ActiveRecord queries to verify database connection
- Run
Critical File Locations
Configuration Files
- Ruby version:
.ruby-version(3.3.3) - Node version:
.node-version(24.19.0) - Database config:
config/database.yml - Routes:
config/routes.rb - Environment variables:
.env.sample(copy to.env)
Frontend Assets
- JavaScript entry points:
app/javascript/application.js,app/javascript/active_admin.js - Vue.js components:
app/javascript/svg/directory - CSS/SCSS:
app/assets/stylesheets/ - Build config:
esbuild.config.js
Backend Code
- Controllers:
app/controllers/ - Models:
app/models/ - Admin interface:
app/admin/ - Views:
app/views/ - Migrations:
db/migrate/
Build Artifacts (DO NOT COMMIT)
app/assets/builds/- Generated CSS filesnode_modules/- Node.js dependenciestmp/- Temporary fileslog/- Log files
Common Issues and Solutions
Ruby Version Mismatch
If you see "Your Ruby version is 3.x.x, but your Gemfile specified 3.3.3":
- Install Ruby 3.3.3 using RVM or rbenv
- Verify with
ruby --version
Database Connection Errors
If Rails cannot connect to PostgreSQL:
- Ensure PostgreSQL service is running:
pg_isready - Create database user:
sudo -u postgres createuser -s $(whoami)
Asset Compilation Issues
If CSS/JS builds fail:
- Check Node.js version:
node --version(should be 18+) - Clear cache:
rm -rf app/assets/builds/* node_modules/.cache - Rebuild:
npm run build && npm run build:css
Migration Failures
Migrations may fail without the quran_dev database properly set up:
- Ensure both databases exist
- Load the development database dump before running migrations
Development Workflow
- Pull latest changes:
git pull - Update dependencies:
bundle install && npm install - Run migrations:
rails db:migrate(may fail withoutquran_devdatabase dump) - Build assets:
npm run build && npm run build:css - Start development server:
bin/dev - Make changes and test
- Validate before committing: Test application startup and key functionality
Always validate that your changes don't break the basic application startup and core functionality before pushing changes.
Validated Commands Summary
Based on actual testing, these commands work as expected:
WORKING COMMANDS (tested and confirmed):
npm install(with environment variables to skip binary downloads)npm run build(1 second, shows esbuild warnings - normal)npm run build:css(4 seconds, shows Sass deprecation warnings - normal)bundle exec rails console(8 seconds to load)bundle exec rails server(starts successfully, may show 500 errors without database dumps)- Database services: PostgreSQL and Redis start and respond correctly
KNOWN LIMITATIONS:
- ESLint configuration is missing -
npm run lintwill fail - RuboCop requires exact Ruby 3.3.3 version
- Cypress/Puppeteer binary downloads fail in restricted networks
- Database migrations fail without the
quran_devdatabase dump loaded - Some features require both databases to be properly configured
TIMING EXPECTATIONS:
- npm install: ~7 seconds (with binary skips)
- Asset builds: ~5 seconds total
- Rails console load: ~8 seconds
- Rails server startup: ~10 seconds to listening state
Trending
Quiet since July.thin dataabout the whole repository
Who's talking about TarteelAI/quranic-universal-library
- smashah/quran.sh“Infrastructure: add QUL resource manifests and atomic pack lifecycle”GitHub · Jul 21, 2026
- smashah/quran.sh“Epic: next-generation Quran reading with lazy, resource-safe subsystems”GitHub · Jul 21, 2026
The biggest 2 of 2 mentions linking to the repository that our crawl found. Each line is their own headline.
Where files are headingNew Copilot instructions files have more rules about branches and pull requests, and fewer about code style.
Of the Copilot instructions files we read, the 2,297 first seen in the last six months, against the older ones: the kind of rule that gained most share, and the kind that lost most. About files like this in general, not this one, and an estimate, since a kind is a pattern in the words.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

