{"id":"4b7d9b2e-1291-4bf7-9bb7-a4fbe0abc8d2","shortId":"2mGm3m","kind":"skill","title":"readme","tagline":"You are an expert technical writer creating comprehensive project documentation. Your goal is to write a README.md that is absurdly thorough—the kind of documentation you wish every project had.","description":"# README Generator\n\nYou are an expert technical writer creating comprehensive project documentation. Your goal is to write a README.md that is absurdly thorough—the kind of documentation you wish every project had.\n\n## When to Use This Skill\n\nUse this skill when:\n\n- User wants to create or update a README.md file\n- User says \"write readme\" or \"create readme\"\n- User asks to \"document this project\"\n- User requests \"project documentation\"\n- User asks for help with README.md\n\n## The Three Purposes of a README\n\n1. **Local Development** - Help any developer get the app running locally in minutes\n2. **Understanding the System** - Explain in great detail how the app works\n3. **Production Deployment** - Cover everything needed to deploy and maintain in production\n\n---\n\n## Before Writing\n\n### Step 1: Deep Codebase Exploration\n\nBefore writing a single line of documentation, thoroughly explore the codebase. You MUST understand:\n\n**Project Structure**\n\n- Read the root directory structure\n- Identify the framework/language (Gemfile for Rails, package.json, go.mod, requirements.txt, etc.)\n- Find the main entry point(s)\n- Map out the directory organization\n\n**Configuration Files**\n\n- .env.example, .env.sample, or documented environment variables\n- Rails config files (config/database.yml, config/application.rb, config/environments/)\n- Credentials setup (config/credentials.yml.enc, config/master.key)\n- Docker files (Dockerfile, docker-compose.yml)\n- CI/CD configs (.github/workflows/, .gitlab-ci.yml, etc.)\n- Deployment configs (config/deploy.yml for Kamal, fly.toml, render.yaml, Procfile, etc.)\n\n**Database**\n\n- db/schema.rb or db/structure.sql\n- Migrations in db/migrate/\n- Seeds in db/seeds.rb\n- Database type from config/database.yml\n\n**Key Dependencies**\n\n- Gemfile and Gemfile.lock for Ruby gems\n- package.json for JavaScript dependencies\n- Note any native gem dependencies (pg, nokogiri, etc.)\n\n**Scripts and Commands**\n\n- bin/ scripts (bin/dev, bin/setup, bin/ci)\n- Procfile or Procfile.dev\n- Rake tasks (lib/tasks/)\n\n### Step 2: Identify Deployment Target\n\nLook for these files to determine deployment platform and tailor instructions:\n\n- `Dockerfile` / `docker-compose.yml` → Docker-based deployment\n- `vercel.json` / `.vercel/` → Vercel\n- `netlify.toml` → Netlify\n- `fly.toml` → Fly.io\n- `railway.json` / `railway.toml` → Railway\n- `render.yaml` → Render\n- `app.yaml` → Google App Engine\n- `Procfile` → Heroku or Heroku-like platforms\n- `.ebextensions/` → AWS Elastic Beanstalk\n- `serverless.yml` → Serverless Framework\n- `terraform/` / `*.tf` → Terraform/Infrastructure as Code\n- `k8s/` / `kubernetes/` → Kubernetes\n\nIf no deployment config exists, provide general guidance with Docker as the recommended approach.\n\n### Step 3: Ask Only If Critical\n\nOnly ask the user questions if you cannot determine:\n\n- What the project does (if not obvious from code)\n- Specific deployment credentials or URLs needed\n- Business context that affects documentation\n\nOtherwise, proceed with exploration and writing.\n\n---\n\n## README Structure\n\nWrite the README with these sections in order:\n\n### 1. Project Title and Overview\n\n```markdown\n# Project Name\n\nBrief description of what the project does and who it's for. 2-3 sentences max.\n\n## Key Features\n\n- Feature 1\n- Feature 2\n- Feature 3\n```\n\n### 2. Tech Stack\n\nList all major technologies:\n\n```markdown\n## Tech Stack\n\n- **Language**: Ruby 3.3+\n- **Framework**: Rails 7.2+\n- **Frontend**: Inertia.js with React\n- **Database**: PostgreSQL 16\n- **Background Jobs**: Solid Queue\n- **Caching**: Solid Cache\n- **Styling**: Tailwind CSS\n- **Deployment**: [Detected platform]\n```\n\n### 3. Prerequisites\n\nWhat must be installed before starting:\n\n```markdown\n## Prerequisites\n\n- Node.js 20 or higher\n- PostgreSQL 15 or higher (or Docker)\n- pnpm (recommended) or npm\n- A Google Cloud project for OAuth (optional for development)\n```\n\n### 4. Getting Started\n\nThe complete local development guide:\n\n```markdown\n## Getting Started\n\n### 1. Clone the Repository\n\n\\`\\`\\`bash\ngit clone https://github.com/user/repo.git\ncd repo\n\\`\\`\\`\n\n### 2. Install Ruby Dependencies\n\nEnsure you have Ruby 3.3+ installed (via rbenv, asdf, or mise):\n\n\\`\\`\\`bash\nbundle install\n\\`\\`\\`\n\n### 3. Install JavaScript Dependencies\n\n\\`\\`\\`bash\nyarn install\n\\`\\`\\`\n\n### 4. Environment Setup\n\nCopy the example environment file:\n\n\\`\\`\\`bash\ncp .env.example .env\n\\`\\`\\`\n\nConfigure the following variables:\n\n| Variable           | Description                  | Example                                    |\n| ------------------ | ---------------------------- | ------------------------------------------ |\n| `DATABASE_URL`     | PostgreSQL connection string | `postgresql://localhost/myapp_development` |\n| `REDIS_URL`        | Redis connection (if used)   | `redis://localhost:6379/0`                 |\n| `SECRET_KEY_BASE`  | Rails secret key             | `bin/rails secret`                         |\n| `RAILS_MASTER_KEY` | For credentials encryption   | Check `config/master.key`                  |\n\n### 5. Database Setup\n\nStart PostgreSQL (if using Docker):\n\n\\`\\`\\`bash\ndocker run --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 -d postgres:16\n\\`\\`\\`\n\nCreate and set up the database:\n\n\\`\\`\\`bash\nbin/rails db:setup\n\\`\\`\\`\n\nThis runs `db:create`, `db:schema:load`, and `db:seed`.\n\nFor existing databases, run migrations:\n\n\\`\\`\\`bash\nbin/rails db:migrate\n\\`\\`\\`\n\n### 6. Start Development Server\n\nUsing Foreman/Overmind (recommended, runs Rails + Vite):\n\n\\`\\`\\`bash\nbin/dev\n\\`\\`\\`\n\nOr manually:\n\n\\`\\`\\`bash\n\n# Terminal 1: Rails server\n\nbin/rails server\n\n# Terminal 2: Vite dev server (for Inertia/React)\n\nbin/vite dev\n\\`\\`\\`\n\nOpen [http://localhost:3000](http://localhost:3000) in your browser.\n```\n\nInclude every step. Assume the reader is setting up on a fresh machine.\n\n### 5. Architecture Overview\n\nThis is where you go absurdly deep:\n\n```markdown\n## Architecture\n\n### Directory Structure\n\n\\`\\`\\`\n├── app/\n│ ├── controllers/ # Rails controllers\n│ │ ├── concerns/ # Shared controller modules\n│ │ └── api/ # API-specific controllers\n│ ├── models/ # ActiveRecord models\n│ │ └── concerns/ # Shared model modules\n│ ├── jobs/ # Background jobs (Solid Queue)\n│ ├── mailers/ # Email templates\n│ ├── views/ # Rails views (minimal with Inertia)\n│ └── frontend/ # Inertia.js React components\n│ ├── components/ # Reusable UI components\n│ ├── layouts/ # Page layouts\n│ ├── pages/ # Inertia page components\n│ └── lib/ # Frontend utilities\n├── config/\n│ ├── routes.rb # Route definitions\n│ ├── database.yml # Database configuration\n│ └── initializers/ # App initializers\n├── db/\n│ ├── migrate/ # Database migrations\n│ ├── schema.rb # Current schema\n│ └── seeds.rb # Seed data\n├── lib/\n│ └── tasks/ # Custom Rake tasks\n└── public/ # Static assets\n\\`\\`\\`\n\n### Request Lifecycle\n\n1. Request hits Rails router (`config/routes.rb`)\n2. Middleware stack processes request (authentication, sessions, etc.)\n3. Controller action executes\n4. Models interact with PostgreSQL via ActiveRecord\n5. Inertia renders React component with props\n6. Response sent to browser\n\n### Data Flow\n\n\\`\\`\\`\nUser Action → React Component → Inertia Visit → Rails Controller → ActiveRecord → PostgreSQL\n↓\nReact Props ← Inertia Response ←\n\\`\\`\\`\n\n### Key Components\n\n**Authentication**\n\n- Devise/Rodauth for user authentication\n- Session-based auth with encrypted cookies\n- `authenticate_user!` before_action for protected routes\n\n**Inertia.js Integration (`app/frontend/`)**\n\n- React components receive props from Rails controllers\n- `inertia_render` in controllers passes data to frontend\n- Shared data via `inertia_share` for layout props\n\n**Background Jobs (`app/jobs/`)**\n\n- Solid Queue for job processing\n- Jobs stored in PostgreSQL (no Redis required)\n- Dashboard at `/jobs` for monitoring\n\n**Database (`app/models/`)**\n\n- ActiveRecord models with associations\n- Query objects for complex queries\n- Concerns for shared model behavior\n\n### Database Schema\n\n\\`\\`\\`\nusers\n├── id (bigint, PK)\n├── email (string, unique, not null)\n├── encrypted_password (string)\n├── name (string)\n├── created_at (datetime)\n└── updated_at (datetime)\n\nposts\n├── id (bigint, PK)\n├── title (string, not null)\n├── content (text)\n├── published (boolean, default: false)\n├── user_id (bigint, FK → users)\n├── created_at (datetime)\n└── updated_at (datetime)\n\nsolid_queue_jobs (background jobs)\n├── id (bigint, PK)\n├── queue_name (string)\n├── class_name (string)\n├── arguments (json)\n├── scheduled_at (datetime)\n└── ...\n\\`\\`\\`\n```\n\n### 6. Environment Variables\n\nComplete reference for all env vars:\n\n```markdown\n## Environment Variables\n\n### Required\n\n| Variable           | Description                       | How to Get                             |\n| ------------------ | --------------------------------- | -------------------------------------- |\n| `DATABASE_URL`     | PostgreSQL connection string      | Your database provider                 |\n| `SECRET_KEY_BASE`  | Rails secret for sessions/cookies | Run `bin/rails secret`                 |\n| `RAILS_MASTER_KEY` | Decrypts credentials file         | Check `config/master.key` (not in git) |\n\n### Optional\n\n| Variable            | Description                                       | Default                      |\n| ------------------- | ------------------------------------------------- | ---------------------------- |\n| `REDIS_URL`         | Redis connection string (for caching/ActionCable) | -                            |\n| `RAILS_LOG_LEVEL`   | Logging verbosity                                 | `debug` (dev), `info` (prod) |\n| `RAILS_MAX_THREADS` | Puma thread count                                 | `5`                          |\n| `WEB_CONCURRENCY`   | Puma worker count                                 | `2`                          |\n| `SMTP_ADDRESS`      | Mail server hostname                              | -                            |\n| `SMTP_PORT`         | Mail server port                                  | `587`                        |\n\n### Rails Credentials\n\nSensitive values should be stored in Rails encrypted credentials:\n\n\\`\\`\\`bash\n\n# Edit credentials (opens in $EDITOR)\n\nbin/rails credentials:edit\n\n# Or for environment-specific credentials\n\nRAILS_ENV=production bin/rails credentials:edit\n\\`\\`\\`\n\nCredentials file structure:\n\\`\\`\\`yaml\nsecret_key_base: xxx\nstripe:\npublic_key: pk_xxx\nsecret_key: sk_xxx\ngoogle:\nclient_id: xxx\nclient_secret: xxx\n\\`\\`\\`\n\nAccess in code: `Rails.application.credentials.stripe[:secret_key]`\n\n### Environment-Specific\n\n**Development**\n\\`\\`\\`\nDATABASE_URL=postgresql://localhost/myapp_development\nREDIS_URL=redis://localhost:6379/0\n\\`\\`\\`\n\n**Production**\n\\`\\`\\`\nDATABASE_URL=<production-connection-string>\nRAILS_ENV=production\nRAILS_SERVE_STATIC_FILES=true\n\\`\\`\\`\n```\n\n### 7. Available Scripts\n\n```markdown\n## Available Scripts\n\n| Command                       | Description                                         |\n| ----------------------------- | --------------------------------------------------- |\n| `bin/dev`                     | Start development server (Rails + Vite via Foreman) |\n| `bin/rails server`            | Start Rails server only                             |\n| `bin/vite dev`                | Start Vite dev server only                          |\n| `bin/rails console`           | Open Rails console (IRB with app loaded)            |\n| `bin/rails db:migrate`        | Run pending database migrations                     |\n| `bin/rails db:rollback`       | Rollback last migration                             |\n| `bin/rails db:seed`           | Run database seeds                                  |\n| `bin/rails db:reset`          | Drop, create, migrate, and seed database            |\n| `bin/rails routes`            | List all routes                                     |\n| `bin/rails test`              | Run test suite (Minitest)                           |\n| `bundle exec rspec`           | Run test suite (RSpec, if used)                     |\n| `bin/rails assets:precompile` | Compile assets for production                       |\n| `bin/rubocop`                 | Run Ruby linter                                     |\n| `yarn lint`                   | Run JavaScript/TypeScript linter                    |\n```\n\n### 8. Testing\n\n```markdown\n## Testing\n\n### Running Tests\n\n\\`\\`\\`bash\n\n# Run all tests (Minitest)\n\nbin/rails test\n\n# Run all tests (RSpec, if used)\n\nbundle exec rspec\n\n# Run specific test file\n\nbin/rails test test/models/user_test.rb\nbundle exec rspec spec/models/user_spec.rb\n\n# Run tests matching a pattern\n\nbin/rails test -n /creates_user/\nbundle exec rspec -e \"creates user\"\n\n# Run system tests (browser tests)\n\nbin/rails test:system\n\n# Run with coverage (SimpleCov)\n\nCOVERAGE=true bin/rails test\n\\`\\`\\`\n\n### Test Structure\n\n\\`\\`\\`\ntest/ # Minitest structure\n├── controllers/ # Controller tests\n├── models/ # Model unit tests\n├── integration/ # Integration tests\n├── system/ # System/browser tests\n├── fixtures/ # Test data\n└── test_helper.rb # Test configuration\n\nspec/ # RSpec structure (if used)\n├── models/\n├── requests/\n├── system/\n├── factories/ # FactoryBot factories\n├── support/\n└── rails_helper.rb\n\\`\\`\\`\n\n### Writing Tests\n\n**Minitest example:**\n\\`\\`\\`ruby\nrequire \"test_helper\"\n\nclass UserTest < ActiveSupport::TestCase\ntest \"creates user with valid attributes\" do\nuser = User.new(email: \"test@example.com\", name: \"Test User\")\nassert user.valid?\nend\n\ntest \"requires email\" do\nuser = User.new(name: \"Test User\")\nassert_not user.valid?\nassert_includes user.errors[:email], \"can't be blank\"\nend\nend\n\\`\\`\\`\n\n**RSpec example:**\n\\`\\`\\`ruby\nrequire \"rails_helper\"\n\nRSpec.describe User, type: :model do\ndescribe \"validations\" do\nit \"is valid with valid attributes\" do\nuser = build(:user)\nexpect(user).to be_valid\nend\n\n    it \"requires an email\" do\n      user = build(:user, email: nil)\n      expect(user).not_to be_valid\n      expect(user.errors[:email]).to include(\"can't be blank\")\n    end\n\nend\nend\n\\`\\`\\`\n\n### Frontend Testing\n\nFor Inertia/React components:\n\n\\`\\`\\`bash\nyarn test\n\\`\\`\\`\n\n\\`\\`\\`typescript\nimport { render, screen } from '@testing-library/react'\nimport { Dashboard } from './Dashboard'\n\ndescribe('Dashboard', () => {\nit('renders user name', () => {\nrender(<Dashboard user={{ name: 'Josh' }} />)\nexpect(screen.getByText('Josh')).toBeInTheDocument()\n})\n})\n\\`\\`\\`\n```\n\n### 9. Deployment\n\nTailor this to detected platform (look for Dockerfile, fly.toml, render.yaml, kamal/, etc.):\n\n```markdown\n## Deployment\n\n### Kamal (Recommended for Rails)\n\nIf using Kamal for deployment:\n\n\\`\\`\\`bash\n\n# Setup Kamal (first time)\n\nkamal setup\n\n# Deploy\n\nkamal deploy\n\n# Rollback to previous version\n\nkamal rollback\n\n# View logs\n\nkamal app logs\n\n# Run console on production\n\nkamal app exec --interactive 'bin/rails console'\n\\`\\`\\`\n\nConfiguration lives in `config/deploy.yml`.\n\n### Docker\n\nBuild and run:\n\n\\`\\`\\`bash\n\n# Build image\n\ndocker build -t myapp .\n\n# Run with environment variables\n\ndocker run -p 3000:3000 \\\n -e DATABASE_URL=postgresql://... \\\n -e SECRET_KEY_BASE=... \\\n -e RAILS_ENV=production \\\n myapp\n\\`\\`\\`\n\n### Heroku\n\n\\`\\`\\`bash\n\n# Create app\n\nheroku create myapp\n\n# Add PostgreSQL\n\nheroku addons:create heroku-postgresql:mini\n\n# Set environment variables\n\nheroku config:set SECRET_KEY_BASE=$(bin/rails secret)\nheroku config:set RAILS_MASTER_KEY=$(cat config/master.key)\n\n# Deploy\n\ngit push heroku main\n\n# Run migrations\n\nheroku run bin/rails db:migrate\n\\`\\`\\`\n\n### Fly.io\n\n\\`\\`\\`bash\n\n# Launch (first time)\n\nfly launch\n\n# Deploy\n\nfly deploy\n\n# Run migrations\n\nfly ssh console -C \"bin/rails db:migrate\"\n\n# Open console\n\nfly ssh console -C \"bin/rails console\"\n\\`\\`\\`\n\n### Render\n\nIf `render.yaml` exists, connect your repo to Render and it will auto-deploy.\n\nManual setup:\n\n1. Create new Web Service\n2. Connect GitHub repository\n3. Set build command: `bundle install && bin/rails assets:precompile`\n4. Set start command: `bin/rails server`\n5. Add environment variables in dashboard\n\n### Manual/VPS Deployment\n\n\\`\\`\\`bash\n\n# On the server:\n\n# Pull latest code\n\ngit pull origin main\n\n# Install dependencies\n\nbundle install --deployment\n\n# Compile assets\n\nRAILS_ENV=production bin/rails assets:precompile\n\n# Run migrations\n\nRAILS_ENV=production bin/rails db:migrate\n\n# Restart application server (e.g., Puma via systemd)\n\nsudo systemctl restart myapp\n\\`\\`\\`\n```\n\n### 10. Troubleshooting\n\n```markdown\n## Troubleshooting\n\n### Database Connection Issues\n\n**Error:** `could not connect to server: Connection refused`\n\n**Solution:**\n\n1. Verify PostgreSQL is running: `pg_isready` or `docker ps`\n2. Check `DATABASE_URL` format: `postgresql://USER:PASSWORD@HOST:PORT/DATABASE`\n3. Ensure database exists: `bin/rails db:create`\n\n### Pending Migrations\n\n**Error:** `Migrations are pending`\n\n**Solution:**\n\\`\\`\\`bash\nbin/rails db:migrate\n\\`\\`\\`\n\n### Asset Compilation Issues\n\n**Error:** `The asset \"application.css\" is not present in the asset pipeline`\n\n**Solution:**\n\\`\\`\\`bash\n\n# Clear and recompile assets\n\nbin/rails assets:clobber\nbin/rails assets:precompile\n\\`\\`\\`\n\n### Bundle Install Failures\n\n**Error:** Native extension build failures\n\n**Solution:**\n\n1. Ensure system dependencies are installed:\n   \\`\\`\\`bash\n\n   # macOS\n\n   brew install postgresql libpq\n\n   # Ubuntu\n\n   sudo apt-get install libpq-dev\n   \\`\\`\\`\n\n2. Try again: `bundle install`\n\n### Credentials Issues\n\n**Error:** `ActiveSupport::MessageEncryptor::InvalidMessage`\n\n**Solution:**\nThe master key doesn't match the credentials file. Either:\n\n1. Get the correct `config/master.key` from another team member\n2. Or regenerate credentials: `rm config/credentials.yml.enc && bin/rails credentials:edit`\n\n### Vite/Inertia Issues\n\n**Error:** `Vite Ruby - Build failed`\n\n**Solution:**\n\\`\\`\\`bash\n\n# Clear Vite cache\n\nrm -rf node_modules/.vite\n\n# Reinstall JS dependencies\n\nrm -rf node_modules && yarn install\n\\`\\`\\`\n\n### Solid Queue Issues\n\n**Error:** Jobs not processing\n\n**Solution:**\nEnsure the queue worker is running:\n\\`\\`\\`bash\nbin/jobs\n\n# or\n\nbin/rails solid_queue:start\n\\`\\`\\`\n```\n\n### 11. Contributing (Optional)\n\nInclude if open source or team project.\n\n### 12. License (Optional)\n\n---\n\n## Writing Principles\n\n1. **Be Absurdly Thorough** - When in doubt, include it. More detail is always better.\n\n2. **Use Code Blocks Liberally** - Every command should be copy-pasteable.\n\n3. **Show Example Output** - When helpful, show what the user should expect to see.\n\n4. **Explain the Why** - Don't just say \"run this command,\" explain what it does.\n\n5. **Assume Fresh Machine** - Write as if the reader has never seen this codebase.\n\n6. **Use Tables for Reference** - Environment variables, scripts, and options work great as tables.\n\n7. **Keep Commands Current** - Use `pnpm` if the project uses it, `npm` if it uses npm, etc.\n\n8. **Include a Table of Contents** - For READMEs over ~200 lines, add a TOC at the top.\n\n---\n\n## Output Format\n\nGenerate a complete README.md file with:\n\n- Proper markdown formatting\n- Code blocks with language hints (`bash, `typescript, etc.)\n- Tables where appropriate\n- Clear section hierarchy\n- Linked table of contents for long documents\n\nWrite the README directly to `README.md` in the project root.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["readme","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity-skills"],"capabilities":["skill","source-sickn33","skill-readme","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/readme","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34583 github stars · SKILL.md body (19,440 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T18:52:07.002Z","embedding":null,"createdAt":"2026-04-18T21:43:24.103Z","updatedAt":"2026-04-22T18:52:07.002Z","lastSeenAt":"2026-04-22T18:52:07.002Z","tsv":"'-3':427 '/creates_user':1323 '/dashboard':1512 '/jobs':920 '/react':1508 '/user/repo.git':527 '1':111,151,406,433,518,672,803,1711,1802,1874,1917,1996 '10':1786 '11':1981 '12':1991 '15':489 '16':460,626 '2':124,282,426,435,438,530,678,809,1084,1716,1812,1895,1926,2010 '20':485 '200':2105 '3':136,356,437,474,548,817,1720,1821,2022 '3.3':450,538 '3000':688,690,1606,1607 '4':507,555,821,1729,2036 '5':604,707,828,1078,1735,2051 '5432':622,623 '587':1095 '6':656,835,1005,2065 '6379/0':587,1168 '7':1180,2079 '7.2':453 '8':1282,2096 '9':1528 'absurd':21,53,715,1998 'access':1152 'action':819,843,873 'activerecord':735,827,850,925 'activesupport':1393,1903 'add':1627,1736,2107 'addon':1630 'address':1086 'affect':388 'alway':2008 'anoth':1923 'api':729,731 'api-specif':730 'app':119,134,317,721,781,1216,1572,1579,1623 'app.yaml':315 'app/frontend':879 'app/jobs':905 'app/models':924 'applic':1776 'application.css':1845 'approach':354 'appropri':2134 'apt':1889 'apt-get':1888 'architectur':708,718 'argument':1000 'asdf':542 'ask':90,100,357,362,2188 'assert':1409,1421,1424 'asset':800,1267,1270,1727,1760,1765,1839,1844,1851,1858,1860,1863 'associ':928 'assum':697,2052 'attribut':1400,1453 'auth':866 'authent':814,858,862,870 'auto':1707 'auto-deploy':1706 'avail':1181,1184 'aw':327 'background':461,742,903,989 'base':301,590,865,1033,1134,1614,1644 'bash':522,545,552,563,612,633,652,666,670,1107,1288,1497,1553,1592,1621,1668,1743,1835,1854,1880,1943,1974,2129 'beanstalk':329 'behavior':938 'better':2009 'bigint':943,963,977,992 'bin':270 'bin/ci':274 'bin/dev':272,667,1188 'bin/jobs':1975 'bin/rails':594,634,653,675,1039,1113,1125,1196,1209,1218,1225,1231,1237,1246,1251,1266,1293,1308,1320,1335,1344,1582,1645,1664,1683,1692,1726,1733,1764,1772,1825,1836,1859,1862,1932,1977 'bin/rubocop':1273 'bin/setup':273 'bin/vite':684,1202 'blank':1431,1488 'block':2013,2125 'boolean':972 'boundari':2196 'brew':1882 'brief':414 'browser':693,839,1333 'build':1456,1470,1589,1593,1596,1722,1871,1940 'bundl':546,1257,1301,1311,1324,1724,1756,1865,1898 'busi':385 'c':1682,1691 'cach':465,467,1946 'caching/actioncable':1062 'cannot':368 'cat':1653 'cd':528 'check':602,1047,1813 'ci/cd':219 'clarif':2190 'class':997,1391 'clear':1855,1944,2135,2163 'client':1146,1149 'clobber':1861 'clone':519,524 'cloud':500 'code':337,378,1154,1749,2012,2124 'codebas':153,165,2064 'command':269,1186,1723,1732,2016,2046,2081 'compil':1269,1759,1840 'complet':511,1008,2117 'complex':932 'compon':758,759,762,769,832,845,857,881,1496 'comprehens':9,41 'concern':725,737,934 'concurr':1080 'config':206,220,225,344,773,1640,1648 'config/application.rb':209 'config/credentials.yml.enc':213,1931 'config/database.yml':208,246 'config/deploy.yml':226,1587 'config/environments':210 'config/master.key':214,603,1048,1654,1921 'config/routes.rb':808 'configur':197,567,779,1369,1584 'connect':577,583,1026,1059,1698,1717,1791,1796,1799 'consol':1210,1213,1575,1583,1681,1687,1690,1693 'content':969,2101,2141 'context':386 'contribut':1982 'control':722,724,727,733,818,849,886,890,1351,1352 'cooki':869 'copi':558,2020 'copy-past':2019 'correct':1920 'could':1794 'count':1077,1083 'cover':139 'coverag':1340,1342 'cp':564 'creat':8,40,76,87,627,640,955,980,1241,1328,1396,1622,1625,1631,1712,1827 'credenti':211,381,600,1045,1097,1106,1109,1114,1121,1126,1128,1900,1914,1929,1933 'criteria':2199 'critic':360 'css':470 'current':788,2082 'custom':795 'd':624 'dashboard':918,1510,1514,1520,1740 'data':792,840,892,896,1366 'databas':233,243,458,574,605,632,649,778,785,923,939,1023,1029,1162,1170,1223,1235,1245,1609,1790,1814,1823 'database.yml':777 'datetim':957,960,982,985,1004 'db':635,639,641,645,654,783,1219,1226,1232,1238,1665,1684,1773,1826,1837 'db/migrate':239 'db/schema.rb':234 'db/seeds.rb':242 'db/structure.sql':236 'debug':1068 'decrypt':1044 'deep':152,716 'default':973,1055 'definit':776 'depend':248,258,263,533,551,1755,1877,1953 'deploy':138,143,224,284,292,302,343,380,471,1529,1543,1552,1560,1562,1655,1674,1676,1708,1742,1758 'describ':1445,1513,2167 'descript':415,572,1019,1054,1187 'detail':131,2006 'detect':472,1533 'determin':291,369 'dev':680,685,1069,1203,1206,1894 'develop':113,116,506,513,658,1161,1190 'devise/rodauth':859 'direct':2148 'directori':174,195,719 'docker':215,300,350,493,611,613,1588,1595,1603,1810 'docker-bas':299 'docker-compose.yml':218,298 'dockerfil':217,297,1537 'document':11,26,43,58,92,98,161,202,389,2144 'doesn':1910 'doubt':2002 'drop':1240 'e':617,1327,1608,1611,1615 'e.g':1778 'ebextens':326 'edit':1108,1115,1127,1934 'editor':1112 'either':1916 'elast':328 'email':747,945,1404,1414,1427,1467,1472,1482 'encrypt':601,868,950,1105 'end':1411,1432,1433,1463,1489,1490,1491 'engin':318 'ensur':534,1822,1875,1968 'entri':189 'env':566,1012,1123,1173,1617,1762,1770 'env.example':199,565 'env.sample':200 'environ':203,556,561,1006,1015,1119,1159,1601,1637,1737,2070,2179 'environment-specif':1118,1158,2178 'error':1793,1830,1842,1868,1902,1937,1963 'etc':185,223,232,266,816,1541,2095,2131 'everi':29,61,695,2015 'everyth':140 'exampl':560,573,1386,1435,2024 'exec':1258,1302,1312,1325,1580 'execut':820 'exist':345,648,1697,1824 'expect':1458,1474,1480,1524,2033 'expert':5,37,2184 'explain':128,2037,2047 'explor':154,163,393 'extens':1870 'factori':1378,1380 'factorybot':1379 'fail':1941 'failur':1867,1872 'fals':974 'featur':431,432,434,436 'file':81,198,207,216,289,562,1046,1129,1178,1307,1915,2119 'find':186 'first':1556,1670 'fixtur':1364 'fk':978 'fli':1672,1675,1679,1688 'flow':841 'fly.io':309,1667 'fly.toml':229,308,1538 'follow':569 'foreman':1195 'foreman/overmind':661 'format':1816,2114,2123 'framework':332,451 'framework/language':178 'fresh':705,2053 'frontend':454,755,771,894,1492 'gem':254,262 'gemfil':179,249 'gemfile.lock':251 'general':347 'generat':33,2115 'get':117,508,516,1022,1890,1918 'git':523,1051,1656,1750 'github':1718 'github.com':526 'github.com/user/repo.git':525 'github/workflows':221 'gitlab-ci.yml':222 'go':714 'go.mod':183 'goal':13,45 'googl':316,499,1145 'great':130,2076 'guid':514 'guidanc':348 'help':102,114,2027 'helper':1390,1439 'heroku':320,323,1620,1624,1629,1633,1639,1647,1658,1662 'heroku-lik':322 'heroku-postgresql':1632 'hierarchi':2137 'higher':487,491 'hint':2128 'hit':805 'host':1819 'hostnam':1089 'id':942,962,976,991,1147 'identifi':176,283 'imag':1594 'import':1501,1509 'includ':694,1425,1484,1984,2003,2097 'inertia':754,767,829,846,854,887,898 'inertia.js':455,756,877 'inertia/react':683,1495 'info':1070 'initi':780,782 'input':2193 'instal':479,531,539,547,549,554,1725,1754,1757,1866,1879,1883,1891,1899,1959 'instruct':296 'integr':878,1358,1359 'interact':823,1581 'invalidmessag':1905 'irb':1214 'isreadi':1808 'issu':1792,1841,1901,1936,1962 'javascript':257,550 'javascript/typescript':1280 'job':462,741,743,904,909,911,988,990,1964 'josh':1523,1526 'js':1952 'json':1001 'k8s':338 'kamal':228,1540,1544,1550,1555,1558,1561,1567,1571,1578 'keep':2080 'key':247,430,589,593,598,856,1032,1043,1133,1138,1142,1157,1613,1643,1652,1909 'kind':24,56 'kubernet':339,340 'languag':448,2127 'last':1229 'latest':1748 'launch':1669,1673 'layout':763,765,901 'level':1065 'lib':770,793 'lib/tasks':280 'liber':2014 'libpq':1885,1893 'libpq-dev':1892 'librari':1507 'licens':1992 'lifecycl':802 'like':324 'limit':2155 'line':159,2106 'link':2138 'lint':1278 'linter':1276,1281 'list':441,1248 'live':1585 'load':643,1217 'local':112,121,512 'localhost':586,687,689,1167 'localhost/myapp_development':579,1164 'log':1064,1066,1570,1573 'long':2143 'look':286,1535 'machin':706,2054 'maco':1881 'mail':1087,1092 'mailer':746 'main':188,1659,1753 'maintain':145 'major':443 'manual':669,1709 'manual/vps':1741 'map':192 'markdown':411,445,482,515,717,1014,1183,1284,1542,1788,2122 'master':597,1042,1651,1908 'match':1317,1912,2164 'max':429,1073 'member':1925 'messageencryptor':1904 'middlewar':810 'migrat':237,651,655,784,786,1220,1224,1230,1242,1661,1666,1678,1685,1768,1774,1829,1831,1838 'mini':1635 'minim':752 'minitest':1256,1292,1349,1385 'minut':123 'mise':544 'miss':2201 'model':734,736,739,822,926,937,1354,1355,1375,1443 'modul':728,740,1957 'modules/.vite':1950 'monitor':922 'must':167,477 'myapp':1598,1619,1626,1785 'n':1322 'name':413,615,953,995,998,1406,1418,1518,1522 'nativ':261,1869 'need':141,384 'netlifi':307 'netlify.toml':306 'never':2061 'new':1713 'nil':1473 'node':1949,1956 'node.js':484 'nokogiri':265 'note':259 'npm':497,2090,2094 'null':949,968 'oauth':503 'object':930 'obvious':376 'open':686,1110,1211,1686,1986 'option':504,1052,1983,1993,2074 'order':405 'organ':196 'origin':1752 'otherwis':390 'output':2025,2113,2173 'overview':410,709 'p':621,1605 'package.json':182,255 'page':764,766,768 'pass':891 'password':619,951,1818 'pasteabl':2021 'pattern':1319 'pend':1222,1828,1833 'permiss':2194 'pg':264,1807 'pipelin':1852 'pk':944,964,993,1139 'platform':293,325,473,1534 'pnpm':494,2084 'point':190 'port':1091,1094 'port/database':1820 'post':961 'postgr':616,618,620,625 'postgresql':459,488,576,608,825,851,914,1025,1628,1634,1804,1884 'precompil':1268,1728,1766,1864 'prerequisit':475,483 'present':1848 'previous':1565 'principl':1995 'proceed':391 'process':812,910,1966 'procfil':231,275,319 'procfile.dev':277 'prod':1071 'product':137,147,1124,1169,1174,1272,1577,1618,1763,1771 'project':10,30,42,62,94,97,169,372,407,412,419,501,1990,2087,2153 'prop':834,853,883,902 'proper':2121 'protect':875 'provid':346,1030 'ps':1811 'public':798,1137 'publish':971 'pull':1747,1751 'puma':1075,1081,1779 'purpos':107 'push':1657 'queri':929,933 'question':365 'queue':464,745,907,987,994,1961,1970,1979 'rail':181,205,452,591,596,664,673,723,750,806,848,885,1034,1041,1063,1072,1096,1104,1122,1172,1175,1192,1199,1212,1438,1547,1616,1650,1761,1769 'rails.application.credentials.stripe':1155 'rails_helper.rb':1382 'railway':312 'railway.json':310 'railway.toml':311 'rake':278,796 'rbenv':541 'react':457,757,831,844,852,880 'read':171 'reader':699,2059 'readm':1,32,85,88,110,396,400,2103,2147 'readme.md':18,50,80,104,2118,2150 'receiv':882 'recommend':353,495,662,1545 'recompil':1857 'redi':580,582,916,1056,1058,1165 'refer':1009,2069 'refus':1800 'regener':1928 'reinstal':1951 'render':314,830,888,1502,1516,1519,1694,1702 'render.yaml':230,313,1539,1696 'repo':529,1700 'repositori':521,1719 'request':96,801,804,813,1376 'requir':917,1017,1388,1413,1437,1465,2192 'requirements.txt':184 'reset':1239 'respons':836,855 'restart':1775,1784 'reusabl':760 'review':2185 'rf':1948,1955 'rm':1930,1947,1954 'rollback':1227,1228,1563,1568 'root':173,2154 'rout':775,876,1247,1250 'router':807 'routes.rb':774 'rspec':1259,1263,1298,1303,1313,1326,1371,1434 'rspec.describe':1440 'rubi':253,449,532,537,1275,1387,1436,1939 'run':120,614,638,650,663,1038,1221,1234,1253,1260,1274,1279,1286,1289,1295,1304,1315,1330,1338,1574,1591,1599,1604,1660,1663,1677,1767,1806,1973,2044 'safeti':2195 'say':83,2043 'schedul':1002 'schema':642,789,940 'schema.rb':787 'scope':2166 'screen':1503 'screen.getbytext':1525 'script':267,271,1182,1185,2072 'secret':588,592,595,1031,1035,1040,1132,1141,1150,1156,1612,1642,1646 'section':403,2136 'see':2035 'seed':240,646,791,1233,1236,1244 'seeds.rb':790 'seen':2062 'sensit':1098 'sent':837 'sentenc':428 'serv':1176 'server':659,674,676,681,1088,1093,1191,1197,1200,1207,1734,1746,1777,1798 'serverless':331 'serverless.yml':330 'servic':1715 'session':815,864 'session-bas':863 'sessions/cookies':1037 'set':629,701,1636,1641,1649,1721,1730 'setup':212,557,606,636,1554,1559,1710 'share':726,738,895,899,936 'show':2023,2028 'simplecov':1341 'singl':158 'sk':1143 'skill':68,71,2158 'skill-readme' 'smtp':1085,1090 'solid':463,466,744,906,986,1960,1978 'solut':1801,1834,1853,1873,1906,1942,1967 'sourc':1987 'source-sickn33' 'spec':1370 'spec/models/user_spec.rb':1314 'specif':379,732,1120,1160,1305,2180 'ssh':1680,1689 'stack':440,447,811 'start':481,509,517,607,657,1189,1198,1204,1731,1980 'static':799,1177 'step':150,281,355,696 'stop':2186 'store':912,1102 'string':578,946,952,954,966,996,999,1027,1060 'stripe':1136 'structur':170,175,397,720,1130,1347,1350,1372 'style':468 'substitut':2176 'success':2198 'sudo':1782,1887 'suit':1255,1262 'support':1381 'system':127,1331,1337,1361,1377,1876 'system/browser':1362 'systemctl':1783 'systemd':1781 'tabl':2067,2078,2099,2132,2139 'tailor':295,1530 'tailwind':469 'target':285 'task':279,794,797,2162 'team':1924,1989 'tech':439,446 'technic':6,38 'technolog':444 'templat':748 'termin':671,677 'terraform':333 'terraform/infrastructure':335 'test':1252,1254,1261,1283,1285,1287,1291,1294,1297,1306,1309,1316,1321,1332,1334,1336,1345,1346,1348,1353,1357,1360,1363,1365,1368,1384,1389,1395,1407,1412,1419,1493,1499,1506,2182 'test/models/user_test.rb':1310 'test@example.com':1405 'test_helper.rb':1367 'testcas':1394 'testing-librari':1505 'text':970 'tf':334 'thorough':22,54,162,1999 'thread':1074,1076 'three':106 'time':1557,1671 'titl':408,965 'tobeinthedocu':1527 'toc':2109 'top':2112 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':2171 'tri':1896 'troubleshoot':1787,1789 'true':1179,1343 'type':244,1442 'typescript':1500,2130 'ubuntu':1886 'ui':761 'understand':125,168 'uniqu':947 'unit':1356 'updat':78,958,983 'url':383,575,581,1024,1057,1163,1166,1171,1610,1815 'use':66,69,585,610,660,1265,1300,1374,1549,2011,2066,2083,2088,2093,2156 'user':73,82,89,95,99,364,842,861,871,941,975,979,1329,1397,1402,1408,1416,1420,1441,1455,1457,1459,1469,1471,1475,1517,1521,1817,2031 'user.errors':1426,1481 'user.new':1403,1417 'user.valid':1410,1423 'usertest':1392 'util':772 'valid':1399,1446,1450,1452,1462,1479,2181 'valu':1099 'var':1013 'variabl':204,570,571,1007,1016,1018,1053,1602,1638,1738,2071 'verbos':1067 'vercel':304,305 'vercel.json':303 'verifi':1803 'version':1566 'via':540,826,897,1194,1780 'view':749,751,1569 'visit':847 'vite':665,679,1193,1205,1938,1945 'vite/inertia':1935 'want':74 'web':1079,1714 'wish':28,60 'work':135,2075 'worker':1082,1971 'write':16,48,84,149,156,395,398,1383,1994,2055,2145 'writer':7,39 'xxx':1135,1140,1144,1148,1151 'yaml':1131 'yarn':553,1277,1498,1958","prices":[{"id":"d2c75d9c-1dee-4976-bac5-ae376ea60495","listingId":"4b7d9b2e-1291-4bf7-9bb7-a4fbe0abc8d2","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:43:24.103Z"}],"sources":[{"listingId":"4b7d9b2e-1291-4bf7-9bb7-a4fbe0abc8d2","source":"github","sourceId":"sickn33/antigravity-awesome-skills/readme","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/readme","isPrimary":false,"firstSeenAt":"2026-04-18T21:43:24.103Z","lastSeenAt":"2026-04-22T18:52:07.002Z"}],"details":{"listingId":"4b7d9b2e-1291-4bf7-9bb7-a4fbe0abc8d2","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"readme","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34583,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-22T06:40:00Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"0d68b9ded4afe222cadb6ba9b795f57663e1f65a","skill_md_path":"skills/readme/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/readme"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"readme","description":"You are an expert technical writer creating comprehensive project documentation. Your goal is to write a README.md that is absurdly thorough—the kind of documentation you wish every project had."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/readme"},"updatedAt":"2026-04-22T18:52:07.002Z"}}