{"owner":"TheOdinProject","repo":"theodinproject","hasSkills":true,"totalSkillsCount":1,"totalTokensCount":767,"categories":["root-instruction"],"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# AGENTS.md\n\n## Project Overview\n\nThe Odin Project is a Rails 8 application that provides a free, open-source coding curriculum. Users follow learning paths composed of courses and lessons, submit projects, and track their progress.\n\n## References\n\n- **Git commit & PR format:** See [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md). Commit titles must follow `keyword: brief description` using one of: `Feature`, `Chore`, or `Fix`.\n\n## Tech Stack\n\n- **Backend:** Rails 8.0, Ruby 3.4, PostgreSQL\n- **Frontend:** Tailwind CSS 4, Stimulus, Turbo Rails, esbuild\n- **Components:** ViewComponent (app/components/)\n- **Background Jobs:** Sidekiq with sidekiq-cron\n- **Auth:** Devise with OmniAuth (GitHub, Google) and two-factor support\n- **Testing:** RSpec, Capybara with Cuprite, FactoryBot, WebMock/VCR\n- **Error Tracking:** Sentry\n- **Feature Flags:** Flipper\n\n## Common Commands\n\n### Development\n\n```bash\nbin/setup          # Initial setup (bundle, yarn, db:prepare, etc.)\nbin/dev            # Start dev server (Puma + Sidekiq + CSS/JS watchers)\n```\n\n### Testing\n\n```bash\nbin/test                              # Full suite: all linters + RSpec\nbin/rspec                             # RSpec only (parallel execution)\nbin/rspec spec/models/user_spec.rb    # Single file\nbin/rspec spec/models/user_spec.rb:42 # Single example by line number\n```\n\n### Linting\n\n```bash\nbin/rubocop              # Ruby linting\nbin/erb_lint --lint-all  # ERB template linting\nyarn lint                # JavaScript (Standard.js)\nyarn stylelint           # CSS/SCSS\n```\n\n### Assets\n\n```bash\nyarn build       # JavaScript bundle (esbuild)\nyarn build:css   # Tailwind CSS build\n```\n\n## Architecture\n\n### Key Patterns\n\n- **Routes** are split into modular files under `config/routes/` (admin.rb, redirects.rb) and drawn from the main `config/routes.rb` via `draw(:admin)`.\n- **ViewComponent** is used extensively for UI (40+ components in `app/components/`). In development, Lookbook is mounted at `/lookbook` for component previews.\n- **Service objects** in `app/services/` encapsulate business logic.\n- **Policies** in `app/policies/` handle authorization.\n- **Adaptors** in `app/adaptors/` wrap external service integrations.\n- **Builders** in `app/builders/` handle complex object creation.\n\n### Core Domain Models\n\n- **Path** > **Course** > **Lesson** - the curriculum hierarchy\n- **User** - learners with Devise authentication\n- **LessonCompletion** - tracks user progress through lessons\n- **ProjectSubmission** - student project submissions (likeable, flaggable, soft-deletable via Discard)\n- **Flag** - content moderation on submissions\n- **AdminUser** - separate admin accounts (devise_invitable)\n\n### Testing Conventions\n\n- Tests use `rails_helper` (no separate `spec_helper`)\n- FactoryBot factories in `spec/factories/`\n- System tests use Capybara + Cuprite (headless Chrome)\n- Shared examples in `spec/support/shared_examples/`\n- Test order is randomized; persistence file at `spec/examples.txt`\n- CI splits tests across 4 parallel containers via `bin/ci_spec`\n\n### Code Style\n\n- JavaScript follows Standard.js\n- CSS uses Tailwind with stylelint\n"},"files":{"AGENTS.md":"# AGENTS.md\n\n## Project Overview\n\nThe Odin Project is a Rails 8 application that provides a free, open-source coding curriculum. Users follow learning paths composed of courses and lessons, submit projects, and track their progress.\n\n## References\n\n- **Git commit & PR format:** See [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md). Commit titles must follow `keyword: brief description` using one of: `Feature`, `Chore`, or `Fix`.\n\n## Tech Stack\n\n- **Backend:** Rails 8.0, Ruby 3.4, PostgreSQL\n- **Frontend:** Tailwind CSS 4, Stimulus, Turbo Rails, esbuild\n- **Components:** ViewComponent (app/components/)\n- **Background Jobs:** Sidekiq with sidekiq-cron\n- **Auth:** Devise with OmniAuth (GitHub, Google) and two-factor support\n- **Testing:** RSpec, Capybara with Cuprite, FactoryBot, WebMock/VCR\n- **Error Tracking:** Sentry\n- **Feature Flags:** Flipper\n\n## Common Commands\n\n### Development\n\n```bash\nbin/setup          # Initial setup (bundle, yarn, db:prepare, etc.)\nbin/dev            # Start dev server (Puma + Sidekiq + CSS/JS watchers)\n```\n\n### Testing\n\n```bash\nbin/test                              # Full suite: all linters + RSpec\nbin/rspec                             # RSpec only (parallel execution)\nbin/rspec spec/models/user_spec.rb    # Single file\nbin/rspec spec/models/user_spec.rb:42 # Single example by line number\n```\n\n### Linting\n\n```bash\nbin/rubocop              # Ruby linting\nbin/erb_lint --lint-all  # ERB template linting\nyarn lint                # JavaScript (Standard.js)\nyarn stylelint           # CSS/SCSS\n```\n\n### Assets\n\n```bash\nyarn build       # JavaScript bundle (esbuild)\nyarn build:css   # Tailwind CSS build\n```\n\n## Architecture\n\n### Key Patterns\n\n- **Routes** are split into modular files under `config/routes/` (admin.rb, redirects.rb) and drawn from the main `config/routes.rb` via `draw(:admin)`.\n- **ViewComponent** is used extensively for UI (40+ components in `app/components/`). In development, Lookbook is mounted at `/lookbook` for component previews.\n- **Service objects** in `app/services/` encapsulate business logic.\n- **Policies** in `app/policies/` handle authorization.\n- **Adaptors** in `app/adaptors/` wrap external service integrations.\n- **Builders** in `app/builders/` handle complex object creation.\n\n### Core Domain Models\n\n- **Path** > **Course** > **Lesson** - the curriculum hierarchy\n- **User** - learners with Devise authentication\n- **LessonCompletion** - tracks user progress through lessons\n- **ProjectSubmission** - student project submissions (likeable, flaggable, soft-deletable via Discard)\n- **Flag** - content moderation on submissions\n- **AdminUser** - separate admin accounts (devise_invitable)\n\n### Testing Conventions\n\n- Tests use `rails_helper` (no separate `spec_helper`)\n- FactoryBot factories in `spec/factories/`\n- System tests use Capybara + Cuprite (headless Chrome)\n- Shared examples in `spec/support/shared_examples/`\n- Test order is randomized; persistence file at `spec/examples.txt`\n- CI splits tests across 4 parallel containers via `bin/ci_spec`\n\n### Code Style\n\n- JavaScript follows Standard.js\n- CSS uses Tailwind with stylelint\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","rawUrl":"https://raw.githubusercontent.com/TheOdinProject/theodinproject/HEAD/AGENTS.md","title":"AI Agent Protocol & Instructions","category":"root-instruction","format":"markdown","content":"# AGENTS.md\n\n## Project Overview\n\nThe Odin Project is a Rails 8 application that provides a free, open-source coding curriculum. Users follow learning paths composed of courses and lessons, submit projects, and track their progress.\n\n## References\n\n- **Git commit & PR format:** See [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md). Commit titles must follow `keyword: brief description` using one of: `Feature`, `Chore`, or `Fix`.\n\n## Tech Stack\n\n- **Backend:** Rails 8.0, Ruby 3.4, PostgreSQL\n- **Frontend:** Tailwind CSS 4, Stimulus, Turbo Rails, esbuild\n- **Components:** ViewComponent (app/components/)\n- **Background Jobs:** Sidekiq with sidekiq-cron\n- **Auth:** Devise with OmniAuth (GitHub, Google) and two-factor support\n- **Testing:** RSpec, Capybara with Cuprite, FactoryBot, WebMock/VCR\n- **Error Tracking:** Sentry\n- **Feature Flags:** Flipper\n\n## Common Commands\n\n### Development\n\n```bash\nbin/setup          # Initial setup (bundle, yarn, db:prepare, etc.)\nbin/dev            # Start dev server (Puma + Sidekiq + CSS/JS watchers)\n```\n\n### Testing\n\n```bash\nbin/test                              # Full suite: all linters + RSpec\nbin/rspec                             # RSpec only (parallel execution)\nbin/rspec spec/models/user_spec.rb    # Single file\nbin/rspec spec/models/user_spec.rb:42 # Single example by line number\n```\n\n### Linting\n\n```bash\nbin/rubocop              # Ruby linting\nbin/erb_lint --lint-all  # ERB template linting\nyarn lint                # JavaScript (Standard.js)\nyarn stylelint           # CSS/SCSS\n```\n\n### Assets\n\n```bash\nyarn build       # JavaScript bundle (esbuild)\nyarn build:css   # Tailwind CSS build\n```\n\n## Architecture\n\n### Key Patterns\n\n- **Routes** are split into modular files under `config/routes/` (admin.rb, redirects.rb) and drawn from the main `config/routes.rb` via `draw(:admin)`.\n- **ViewComponent** is used extensively for UI (40+ components in `app/components/`). In development, Lookbook is mounted at `/lookbook` for component previews.\n- **Service objects** in `app/services/` encapsulate business logic.\n- **Policies** in `app/policies/` handle authorization.\n- **Adaptors** in `app/adaptors/` wrap external service integrations.\n- **Builders** in `app/builders/` handle complex object creation.\n\n### Core Domain Models\n\n- **Path** > **Course** > **Lesson** - the curriculum hierarchy\n- **User** - learners with Devise authentication\n- **LessonCompletion** - tracks user progress through lessons\n- **ProjectSubmission** - student project submissions (likeable, flaggable, soft-deletable via Discard)\n- **Flag** - content moderation on submissions\n- **AdminUser** - separate admin accounts (devise_invitable)\n\n### Testing Conventions\n\n- Tests use `rails_helper` (no separate `spec_helper`)\n- FactoryBot factories in `spec/factories/`\n- System tests use Capybara + Cuprite (headless Chrome)\n- Shared examples in `spec/support/shared_examples/`\n- Test order is randomized; persistence file at `spec/examples.txt`\n- CI splits tests across 4 parallel containers via `bin/ci_spec`\n\n### Code Style\n\n- JavaScript follows Standard.js\n- CSS uses Tailwind with stylelint\n","isInternal":false,"tokens":767,"sizeBytes":3147}],"systemPromptSnippet":"<yakaai_skills repo=\"TheOdinProject/theodinproject\">\n<!-- File: AGENTS.md (Tokens: ~767 | Category: root-instruction) -->\n# AGENTS.md\n\n## Project Overview\n\nThe Odin Project is a Rails 8 application that provides a free, open-source coding curriculum. Users follow learning paths composed of courses and lessons, submit projects, and track their progress.\n\n## References\n\n- **Git commit & PR format:** See [.github/PULL_REQUEST_TEMPLATE.md](.github/PULL_REQUEST_TEMPLATE.md). Commit titles must follow `keyword: brief description` using one of: `Feature`, `Chore`, or `Fix`.\n\n## Tech Stack\n\n- **Backend:** Rails 8.0, Ruby 3.4, PostgreSQL\n- **Frontend:** Tailwind CSS 4, Stimulus, Turbo Rails, esbuild\n- **Components:** ViewComponent (app/components/)\n- **Background Jobs:** Sidekiq with sidekiq-cron\n- **Auth:** Devise with OmniAuth (GitHub, Google) and two-factor support\n- **Testing:** RSpec, Capybara with Cuprite, FactoryBot, WebMock/VCR\n- **Error Tracking:** Sentry\n- **Feature Flags:** Flipper\n\n## Common Commands\n\n### Development\n\n```bash\nbin/setup          # Initial setup (bundle, yarn, db:prepare, etc.)\nbin/dev            # Start dev server (Puma + Sidekiq + CSS/JS watchers)\n```\n\n### Testing\n\n```bash\nbin/test                              # Full suite: all linters + RSpec\nbin/rspec                             # RSpec only (parallel execution)\nbin/rspec spec/models/user_spec.rb    # Single file\nbin/rspec spec/models/user_spec.rb:42 # Single example by line number\n```\n\n### Linting\n\n```bash\nbin/rubocop              # Ruby linting\nbin/erb_lint --lint-all  # ERB template linting\nyarn lint                # JavaScript (Standard.js)\nyarn stylelint           # CSS/SCSS\n```\n\n### Assets\n\n```bash\nyarn build       # JavaScript bundle (esbuild)\nyarn build:css   # Tailwind CSS build\n```\n\n## Architecture\n\n### Key Patterns\n\n- **Routes** are split into modular files under `config/routes/` (admin.rb, redirects.rb) and drawn from the main `config/routes.rb` via `draw(:admin)`.\n- **ViewComponent** is used extensively for UI (40+ components in `app/components/`). In development, Lookbook is mounted at `/lookbook` for component previews.\n- **Service objects** in `app/services/` encapsulate business logic.\n- **Policies** in `app/policies/` handle authorization.\n- **Adaptors** in `app/adaptors/` wrap external service integrations.\n- **Builders** in `app/builders/` handle complex object creation.\n\n### Core Domain Models\n\n- **Path** > **Course** > **Lesson** - the curriculum hierarchy\n- **User** - learners with Devise authentication\n- **LessonCompletion** - tracks user progress through lessons\n- **ProjectSubmission** - student project submissions (likeable, flaggable, soft-deletable via Discard)\n- **Flag** - content moderation on submissions\n- **AdminUser** - separate admin accounts (devise_invitable)\n\n### Testing Conventions\n\n- Tests use `rails_helper` (no separate `spec_helper`)\n- FactoryBot factories in `spec/factories/`\n- System tests use Capybara + Cuprite (headless Chrome)\n- Shared examples in `spec/support/shared_examples/`\n- Test order is randomized; persistence file at `spec/examples.txt`\n- CI splits tests across 4 parallel containers via `bin/ci_spec`\n\n### Code Style\n\n- JavaScript follows Standard.js\n- CSS uses Tailwind with stylelint\n</yakaai_skills>"}