claude-code-templates 1.16.0 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -7
- package/bin/create-claude-config.js +17 -8
- package/package.json +2 -3
- package/src/analytics/core/AgentAnalyzer.js +17 -3
- package/src/analytics/core/ProcessDetector.js +23 -7
- package/src/analytics/core/StateCalculator.js +102 -33
- package/src/analytics/data/DataCache.js +7 -7
- package/src/analytics-web/chats_mobile.html +2590 -0
- package/src/analytics-web/components/App.js +10 -10
- package/src/analytics-web/components/SessionTimer.js +1 -1
- package/src/analytics-web/components/Sidebar.js +5 -14
- package/src/analytics-web/index.html +932 -78
- package/src/analytics.js +263 -5
- package/src/chats-mobile.js +682 -0
- package/src/claude-api-proxy.js +460 -0
- package/src/file-operations.js +239 -36
- package/src/health-check.js +310 -0
- package/src/index.js +1252 -56
- package/src/tracking-service.js +31 -34
- package/components/agents/api-security-audit.md +0 -92
- package/components/agents/database-optimization.md +0 -94
- package/components/agents/react-performance-optimization.md +0 -64
- package/components/commands/check-file.md +0 -53
- package/components/commands/generate-tests.md +0 -68
- package/components/mcps/deepgraph-nextjs.json +0 -12
- package/components/mcps/deepgraph-react.json +0 -12
- package/components/mcps/deepgraph-typescript.json +0 -12
- package/components/mcps/deepgraph-vue.json +0 -12
- package/components/mcps/filesystem-access.json +0 -12
- package/components/mcps/github-integration.json +0 -11
- package/components/mcps/memory-integration.json +0 -8
- package/components/mcps/mysql-integration.json +0 -11
- package/components/mcps/postgresql-integration.json +0 -11
- package/components/mcps/web-fetch.json +0 -8
- package/src/analytics-web/components/AgentsPage.js +0 -4761
- package/templates/common/.claude/commands/git-workflow.md +0 -239
- package/templates/common/.claude/commands/project-setup.md +0 -316
- package/templates/common/.mcp.json +0 -41
- package/templates/common/CLAUDE.md +0 -109
- package/templates/common/README.md +0 -96
- package/templates/go/.mcp.json +0 -78
- package/templates/go/README.md +0 -25
- package/templates/javascript-typescript/.claude/commands/api-endpoint.md +0 -51
- package/templates/javascript-typescript/.claude/commands/debug.md +0 -52
- package/templates/javascript-typescript/.claude/commands/lint.md +0 -48
- package/templates/javascript-typescript/.claude/commands/npm-scripts.md +0 -48
- package/templates/javascript-typescript/.claude/commands/refactor.md +0 -55
- package/templates/javascript-typescript/.claude/commands/test.md +0 -61
- package/templates/javascript-typescript/.claude/commands/typescript-migrate.md +0 -51
- package/templates/javascript-typescript/.claude/settings.json +0 -142
- package/templates/javascript-typescript/.mcp.json +0 -80
- package/templates/javascript-typescript/CLAUDE.md +0 -185
- package/templates/javascript-typescript/README.md +0 -259
- package/templates/javascript-typescript/examples/angular-app/.claude/commands/components.md +0 -63
- package/templates/javascript-typescript/examples/angular-app/.claude/commands/services.md +0 -62
- package/templates/javascript-typescript/examples/node-api/.claude/commands/api-endpoint.md +0 -46
- package/templates/javascript-typescript/examples/node-api/.claude/commands/database.md +0 -56
- package/templates/javascript-typescript/examples/node-api/.claude/commands/middleware.md +0 -61
- package/templates/javascript-typescript/examples/node-api/.claude/commands/route.md +0 -57
- package/templates/javascript-typescript/examples/node-api/CLAUDE.md +0 -102
- package/templates/javascript-typescript/examples/react-app/.claude/commands/component.md +0 -29
- package/templates/javascript-typescript/examples/react-app/.claude/commands/hooks.md +0 -44
- package/templates/javascript-typescript/examples/react-app/.claude/commands/state-management.md +0 -45
- package/templates/javascript-typescript/examples/react-app/CLAUDE.md +0 -81
- package/templates/javascript-typescript/examples/react-app/agents/react-performance-optimization.md +0 -530
- package/templates/javascript-typescript/examples/react-app/agents/react-state-management.md +0 -295
- package/templates/javascript-typescript/examples/vue-app/.claude/commands/components.md +0 -46
- package/templates/javascript-typescript/examples/vue-app/.claude/commands/composables.md +0 -51
- package/templates/python/.claude/commands/lint.md +0 -111
- package/templates/python/.claude/commands/test.md +0 -73
- package/templates/python/.claude/settings.json +0 -153
- package/templates/python/.mcp.json +0 -78
- package/templates/python/CLAUDE.md +0 -276
- package/templates/python/examples/django-app/.claude/commands/admin.md +0 -264
- package/templates/python/examples/django-app/.claude/commands/django-model.md +0 -124
- package/templates/python/examples/django-app/.claude/commands/views.md +0 -222
- package/templates/python/examples/django-app/CLAUDE.md +0 -313
- package/templates/python/examples/django-app/agents/django-api-security.md +0 -642
- package/templates/python/examples/django-app/agents/django-database-optimization.md +0 -752
- package/templates/python/examples/fastapi-app/.claude/commands/api-endpoints.md +0 -513
- package/templates/python/examples/fastapi-app/.claude/commands/auth.md +0 -775
- package/templates/python/examples/fastapi-app/.claude/commands/database.md +0 -657
- package/templates/python/examples/fastapi-app/.claude/commands/deployment.md +0 -160
- package/templates/python/examples/fastapi-app/.claude/commands/testing.md +0 -927
- package/templates/python/examples/fastapi-app/CLAUDE.md +0 -229
- package/templates/python/examples/flask-app/.claude/commands/app-factory.md +0 -384
- package/templates/python/examples/flask-app/.claude/commands/blueprint.md +0 -243
- package/templates/python/examples/flask-app/.claude/commands/database.md +0 -410
- package/templates/python/examples/flask-app/.claude/commands/deployment.md +0 -620
- package/templates/python/examples/flask-app/.claude/commands/flask-route.md +0 -217
- package/templates/python/examples/flask-app/.claude/commands/testing.md +0 -559
- package/templates/python/examples/flask-app/CLAUDE.md +0 -391
- package/templates/ruby/.claude/commands/model.md +0 -360
- package/templates/ruby/.claude/commands/test.md +0 -480
- package/templates/ruby/.claude/settings.json +0 -146
- package/templates/ruby/.mcp.json +0 -83
- package/templates/ruby/CLAUDE.md +0 -284
- package/templates/ruby/examples/rails-app/.claude/commands/authentication.md +0 -490
- package/templates/ruby/examples/rails-app/CLAUDE.md +0 -376
- package/templates/rust/.mcp.json +0 -78
- package/templates/rust/README.md +0 -26
package/templates/ruby/.mcp.json
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"mcpServers": {
|
|
3
|
-
"github": {
|
|
4
|
-
"command": "npx",
|
|
5
|
-
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
6
|
-
"category": "Development Tools",
|
|
7
|
-
"description": "GitHub integration for repository management and issue tracking",
|
|
8
|
-
"complexity": "Medium",
|
|
9
|
-
"enabled": false,
|
|
10
|
-
"env": {
|
|
11
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN": ""
|
|
12
|
-
}
|
|
13
|
-
},
|
|
14
|
-
"postgres": {
|
|
15
|
-
"command": "npx",
|
|
16
|
-
"args": ["-y", "@modelcontextprotocol/server-postgres"],
|
|
17
|
-
"category": "Database",
|
|
18
|
-
"description": "PostgreSQL database operations and query execution",
|
|
19
|
-
"complexity": "Medium",
|
|
20
|
-
"enabled": false,
|
|
21
|
-
"env": {
|
|
22
|
-
"POSTGRES_CONNECTION_STRING": ""
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"brave-search": {
|
|
26
|
-
"command": "npx",
|
|
27
|
-
"args": ["-y", "@modelcontextprotocol/server-brave-search"],
|
|
28
|
-
"category": "Web Search",
|
|
29
|
-
"description": "Web search capabilities using Brave Search API",
|
|
30
|
-
"complexity": "Low",
|
|
31
|
-
"enabled": false,
|
|
32
|
-
"env": {
|
|
33
|
-
"BRAVE_API_KEY": ""
|
|
34
|
-
}
|
|
35
|
-
},
|
|
36
|
-
"ruby-docs": {
|
|
37
|
-
"command": "ruby",
|
|
38
|
-
"args": [
|
|
39
|
-
"-e",
|
|
40
|
-
"require 'json'; require 'net/http'; puts JSON.generate({tools: [{name: 'ruby_docs', description: 'Search Ruby documentation'}]})"
|
|
41
|
-
],
|
|
42
|
-
"category": "Documentation",
|
|
43
|
-
"description": "Ruby language documentation and API reference",
|
|
44
|
-
"complexity": "Low",
|
|
45
|
-
"enabled": true
|
|
46
|
-
},
|
|
47
|
-
"rails-docs": {
|
|
48
|
-
"command": "ruby",
|
|
49
|
-
"args": [
|
|
50
|
-
"-e",
|
|
51
|
-
"require 'json'; require 'net/http'; puts JSON.generate({tools: [{name: 'rails_docs', description: 'Search Rails documentation and guides'}]})"
|
|
52
|
-
],
|
|
53
|
-
"category": "Documentation",
|
|
54
|
-
"description": "Ruby on Rails framework documentation and guides",
|
|
55
|
-
"complexity": "Low",
|
|
56
|
-
"enabled": true
|
|
57
|
-
},
|
|
58
|
-
"rubygems": {
|
|
59
|
-
"command": "ruby",
|
|
60
|
-
"args": [
|
|
61
|
-
"-e",
|
|
62
|
-
"require 'json'; require 'net/http'; puts JSON.generate({tools: [{name: 'gem_search', description: 'Search and explore Ruby gems'}]})"
|
|
63
|
-
],
|
|
64
|
-
"category": "Package Management",
|
|
65
|
-
"description": "Search and explore Ruby gems from RubyGems.org",
|
|
66
|
-
"complexity": "Low",
|
|
67
|
-
"enabled": true
|
|
68
|
-
},
|
|
69
|
-
"bundler": {
|
|
70
|
-
"command": "bundle",
|
|
71
|
-
"args": [
|
|
72
|
-
"exec",
|
|
73
|
-
"ruby",
|
|
74
|
-
"-e",
|
|
75
|
-
"require 'json'; puts JSON.generate({tools: [{name: 'bundle_audit', description: 'Security audit for gems'}]})"
|
|
76
|
-
],
|
|
77
|
-
"category": "Security",
|
|
78
|
-
"description": "Bundler integration for dependency management and security auditing",
|
|
79
|
-
"complexity": "Medium",
|
|
80
|
-
"enabled": true
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
package/templates/ruby/CLAUDE.md
DELETED
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
# CLAUDE.md
|
|
2
|
-
|
|
3
|
-
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
4
|
-
|
|
5
|
-
## Project Overview
|
|
6
|
-
|
|
7
|
-
This is a Ruby project optimized for modern Ruby development. The project uses industry-standard tools and follows best practices for scalable application development.
|
|
8
|
-
|
|
9
|
-
## Development Commands
|
|
10
|
-
|
|
11
|
-
### Environment Management
|
|
12
|
-
- `ruby --version` - Check Ruby version
|
|
13
|
-
- `rbenv versions` - List available Ruby versions (with rbenv)
|
|
14
|
-
- `rbenv install 3.2.0` - Install specific Ruby version
|
|
15
|
-
- `rbenv local 3.2.0` - Set local Ruby version
|
|
16
|
-
- `rvm use 3.2.0` - Use specific Ruby version (with RVM)
|
|
17
|
-
|
|
18
|
-
### Package Management
|
|
19
|
-
- `bundle install` - Install dependencies from Gemfile
|
|
20
|
-
- `bundle update` - Update all gems to latest versions
|
|
21
|
-
- `bundle update <gem_name>` - Update specific gem
|
|
22
|
-
- `bundle exec <command>` - Run command with bundled gems
|
|
23
|
-
- `bundle add <gem_name>` - Add new gem to Gemfile
|
|
24
|
-
- `bundle remove <gem_name>` - Remove gem from Gemfile
|
|
25
|
-
- `gem install <gem_name>` - Install gem globally
|
|
26
|
-
- `gem list` - List installed gems
|
|
27
|
-
|
|
28
|
-
### Testing Commands
|
|
29
|
-
- `rspec` - Run RSpec tests
|
|
30
|
-
- `rspec spec/models` - Run specific test directory
|
|
31
|
-
- `rspec spec/models/user_spec.rb` - Run specific test file
|
|
32
|
-
- `rspec --format documentation` - Run tests with detailed output
|
|
33
|
-
- `rspec --tag focus` - Run tests with specific tag
|
|
34
|
-
- `ruby -Itest test/` - Run Minitest tests
|
|
35
|
-
- `rake test` - Run test suite via Rake
|
|
36
|
-
- `bundle exec rspec` - Run RSpec with bundled gems
|
|
37
|
-
|
|
38
|
-
### Code Quality Commands
|
|
39
|
-
- `rubocop` - Run RuboCop linter
|
|
40
|
-
- `rubocop -A` - Auto-correct RuboCop violations
|
|
41
|
-
- `rubocop --only <cop_name>` - Run specific RuboCop cop
|
|
42
|
-
- `brakeman` - Run security analysis
|
|
43
|
-
- `reek` - Run code smell detector
|
|
44
|
-
- `yard` - Generate documentation
|
|
45
|
-
- `bundle audit` - Check for security vulnerabilities in gems
|
|
46
|
-
|
|
47
|
-
### Development Tools
|
|
48
|
-
- `irb` - Interactive Ruby console
|
|
49
|
-
- `pry` - Enhanced Ruby console (if installed)
|
|
50
|
-
- `ruby -c <file.rb>` - Check Ruby syntax
|
|
51
|
-
- `ruby -w <file.rb>` - Run with warnings enabled
|
|
52
|
-
|
|
53
|
-
## Technology Stack
|
|
54
|
-
|
|
55
|
-
### Core Technologies
|
|
56
|
-
- **Ruby** - Primary programming language (3.2.0+)
|
|
57
|
-
- **Bundler** - Dependency management
|
|
58
|
-
- **RubyGems** - Package management system
|
|
59
|
-
|
|
60
|
-
### Common Frameworks
|
|
61
|
-
- **Ruby on Rails** - Full-stack web framework
|
|
62
|
-
- **Sinatra** - Lightweight web framework
|
|
63
|
-
- **Hanami** - Modern web framework
|
|
64
|
-
- **Grape** - REST API framework
|
|
65
|
-
- **Roda** - Routing tree web framework
|
|
66
|
-
|
|
67
|
-
### Testing Frameworks
|
|
68
|
-
- **RSpec** - Behavior-driven development testing framework
|
|
69
|
-
- **Minitest** - Built-in testing framework
|
|
70
|
-
- **FactoryBot** - Test data generation
|
|
71
|
-
- **Capybara** - Acceptance testing for web applications
|
|
72
|
-
- **VCR** - Record HTTP interactions for tests
|
|
73
|
-
- **WebMock** - Mock HTTP requests
|
|
74
|
-
|
|
75
|
-
### Code Quality Tools
|
|
76
|
-
- **RuboCop** - Ruby static code analyzer and formatter
|
|
77
|
-
- **Brakeman** - Static analysis security vulnerability scanner
|
|
78
|
-
- **Reek** - Code smell detector
|
|
79
|
-
- **SimpleCov** - Code coverage analysis
|
|
80
|
-
- **YARD** - Documentation generation tool
|
|
81
|
-
|
|
82
|
-
### Popular Gems
|
|
83
|
-
- **Puma** - Web server
|
|
84
|
-
- **Sidekiq** - Background job processing
|
|
85
|
-
- **Redis** - In-memory data structure store
|
|
86
|
-
- **PostgreSQL/MySQL** - Database adapters
|
|
87
|
-
- **Devise** - Authentication solution (pre-Rails 8)
|
|
88
|
-
- **Pundit** - Authorization system
|
|
89
|
-
|
|
90
|
-
## Project Structure Guidelines
|
|
91
|
-
|
|
92
|
-
### File Organization
|
|
93
|
-
```
|
|
94
|
-
app/
|
|
95
|
-
├── models/ # Business logic and data models
|
|
96
|
-
├── controllers/ # Web controllers (Rails)
|
|
97
|
-
├── views/ # Templates and presentation
|
|
98
|
-
├── helpers/ # View helpers
|
|
99
|
-
├── services/ # Business logic services
|
|
100
|
-
├── workers/ # Background job workers
|
|
101
|
-
└── lib/ # Custom libraries
|
|
102
|
-
config/
|
|
103
|
-
├── application.rb # Application configuration
|
|
104
|
-
├── routes.rb # URL routing (Rails)
|
|
105
|
-
├── database.yml # Database configuration
|
|
106
|
-
└── environments/ # Environment-specific configs
|
|
107
|
-
spec/ or test/
|
|
108
|
-
├── models/ # Model tests
|
|
109
|
-
├── controllers/ # Controller tests
|
|
110
|
-
├── features/ # Feature/integration tests
|
|
111
|
-
├── support/ # Test support files
|
|
112
|
-
└── factories/ # Test data factories
|
|
113
|
-
lib/
|
|
114
|
-
├── tasks/ # Rake tasks
|
|
115
|
-
└── custom_modules/ # Custom Ruby modules
|
|
116
|
-
Gemfile # Gem dependencies
|
|
117
|
-
Gemfile.lock # Locked gem versions
|
|
118
|
-
Rakefile # Rake task definitions
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Naming Conventions
|
|
122
|
-
- **Files/Modules**: Use snake_case (`user_profile.rb`)
|
|
123
|
-
- **Classes**: Use PascalCase (`UserProfile`)
|
|
124
|
-
- **Methods/Variables**: Use snake_case (`get_user_data`)
|
|
125
|
-
- **Constants**: Use SCREAMING_SNAKE_CASE (`API_BASE_URL`)
|
|
126
|
-
- **Private methods**: Prefix with underscore or use `private` keyword
|
|
127
|
-
|
|
128
|
-
## Ruby Guidelines
|
|
129
|
-
|
|
130
|
-
### Code Style
|
|
131
|
-
- Follow the Ruby Style Guide
|
|
132
|
-
- Use meaningful variable and method names
|
|
133
|
-
- Keep methods focused and single-purpose
|
|
134
|
-
- Use Ruby idioms and conventions
|
|
135
|
-
- Prefer explicit over implicit when it improves clarity
|
|
136
|
-
- Use proper indentation (2 spaces)
|
|
137
|
-
|
|
138
|
-
### Best Practices
|
|
139
|
-
- Use `bundle exec` for running commands with specific gem versions
|
|
140
|
-
- Write tests for all public methods
|
|
141
|
-
- Use descriptive commit messages
|
|
142
|
-
- Keep Gemfile organized and commented
|
|
143
|
-
- Use environment variables for configuration
|
|
144
|
-
- Handle exceptions appropriately
|
|
145
|
-
- Follow DRY (Don't Repeat Yourself) principles
|
|
146
|
-
|
|
147
|
-
## Testing Standards
|
|
148
|
-
|
|
149
|
-
### Test Structure
|
|
150
|
-
- Organize tests to mirror source code structure
|
|
151
|
-
- Use descriptive test names that explain the behavior
|
|
152
|
-
- Follow AAA pattern (Arrange, Act, Assert)
|
|
153
|
-
- Use factories for test data
|
|
154
|
-
- Group related tests in context blocks (RSpec)
|
|
155
|
-
|
|
156
|
-
### Coverage Goals
|
|
157
|
-
- Aim for 90%+ test coverage
|
|
158
|
-
- Write unit tests for models and services
|
|
159
|
-
- Use integration tests for controllers and features
|
|
160
|
-
- Mock external dependencies
|
|
161
|
-
- Test error conditions and edge cases
|
|
162
|
-
|
|
163
|
-
### RSpec Configuration
|
|
164
|
-
```ruby
|
|
165
|
-
# spec/spec_helper.rb
|
|
166
|
-
RSpec.configure do |config|
|
|
167
|
-
config.expect_with :rspec do |expectations|
|
|
168
|
-
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
|
169
|
-
end
|
|
170
|
-
|
|
171
|
-
config.mock_with :rspec do |mocks|
|
|
172
|
-
mocks.verify_partial_doubles = true
|
|
173
|
-
end
|
|
174
|
-
|
|
175
|
-
config.shared_context_metadata_behavior = :apply_to_host_groups
|
|
176
|
-
config.filter_run_when_matching :focus
|
|
177
|
-
config.example_status_persistence_file_path = "spec/examples.txt"
|
|
178
|
-
config.disable_monkey_patching!
|
|
179
|
-
config.warnings = true
|
|
180
|
-
|
|
181
|
-
if config.files_to_run.one?
|
|
182
|
-
config.default_formatter = "doc"
|
|
183
|
-
end
|
|
184
|
-
|
|
185
|
-
config.profile_examples = 10
|
|
186
|
-
config.order = :random
|
|
187
|
-
Kernel.srand config.seed
|
|
188
|
-
end
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## Bundler Configuration
|
|
192
|
-
|
|
193
|
-
### Gemfile Best Practices
|
|
194
|
-
```ruby
|
|
195
|
-
# Gemfile
|
|
196
|
-
source 'https://rubygems.org'
|
|
197
|
-
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
|
198
|
-
|
|
199
|
-
ruby '3.2.0'
|
|
200
|
-
|
|
201
|
-
# Core gems
|
|
202
|
-
gem 'rails', '~> 8.0.0'
|
|
203
|
-
gem 'pg', '~> 1.1'
|
|
204
|
-
gem 'puma', '~> 6.0'
|
|
205
|
-
|
|
206
|
-
# Development and test gems
|
|
207
|
-
group :development, :test do
|
|
208
|
-
gem 'debug', platforms: %i[ mri mingw x64_mingw ]
|
|
209
|
-
gem 'rspec-rails'
|
|
210
|
-
gem 'factory_bot_rails'
|
|
211
|
-
end
|
|
212
|
-
|
|
213
|
-
group :development do
|
|
214
|
-
gem 'rubocop', require: false
|
|
215
|
-
gem 'brakeman', require: false
|
|
216
|
-
gem 'web-console'
|
|
217
|
-
end
|
|
218
|
-
|
|
219
|
-
group :test do
|
|
220
|
-
gem 'capybara'
|
|
221
|
-
gem 'selenium-webdriver'
|
|
222
|
-
gem 'simplecov', require: false
|
|
223
|
-
end
|
|
224
|
-
```
|
|
225
|
-
|
|
226
|
-
### Bundle Configuration
|
|
227
|
-
```bash
|
|
228
|
-
# .bundle/config or config/bundle
|
|
229
|
-
BUNDLE_PATH: "vendor/bundle"
|
|
230
|
-
BUNDLE_JOBS: "4"
|
|
231
|
-
BUNDLE_RETRY: "3"
|
|
232
|
-
```
|
|
233
|
-
|
|
234
|
-
## Development Workflow
|
|
235
|
-
|
|
236
|
-
### Before Starting
|
|
237
|
-
1. Check Ruby version compatibility
|
|
238
|
-
2. Install dependencies with `bundle install`
|
|
239
|
-
3. Set up database (if applicable)
|
|
240
|
-
4. Run tests to ensure setup is correct
|
|
241
|
-
|
|
242
|
-
### During Development
|
|
243
|
-
1. Write tests first (TDD approach)
|
|
244
|
-
2. Run tests frequently: `bundle exec rspec`
|
|
245
|
-
3. Use meaningful commit messages
|
|
246
|
-
4. Run code quality checks regularly
|
|
247
|
-
|
|
248
|
-
### Before Committing
|
|
249
|
-
1. Run full test suite: `bundle exec rspec`
|
|
250
|
-
2. Run linter: `rubocop`
|
|
251
|
-
3. Run security scanner: `brakeman`
|
|
252
|
-
4. Check for vulnerabilities: `bundle audit`
|
|
253
|
-
5. Ensure code coverage is maintained
|
|
254
|
-
|
|
255
|
-
## Security Guidelines
|
|
256
|
-
|
|
257
|
-
### Gem Security
|
|
258
|
-
- Regularly update gems with `bundle update`
|
|
259
|
-
- Use `bundle audit` to check for known vulnerabilities
|
|
260
|
-
- Pin gem versions in Gemfile.lock
|
|
261
|
-
- Review gem source code for suspicious packages
|
|
262
|
-
|
|
263
|
-
### Code Security
|
|
264
|
-
- Validate input data
|
|
265
|
-
- Use environment variables for sensitive configuration
|
|
266
|
-
- Implement proper authentication and authorization
|
|
267
|
-
- Sanitize data before database operations
|
|
268
|
-
- Use HTTPS for production deployments
|
|
269
|
-
- Follow OWASP guidelines for web security
|
|
270
|
-
|
|
271
|
-
## Performance Considerations
|
|
272
|
-
|
|
273
|
-
### Code Performance
|
|
274
|
-
- Use proper indexing for database queries
|
|
275
|
-
- Implement caching strategies
|
|
276
|
-
- Profile code with tools like `ruby-prof`
|
|
277
|
-
- Monitor memory usage
|
|
278
|
-
- Use background jobs for heavy operations
|
|
279
|
-
|
|
280
|
-
### Gem Performance
|
|
281
|
-
- Choose gems wisely based on performance metrics
|
|
282
|
-
- Monitor gem overhead
|
|
283
|
-
- Use lightweight alternatives when possible
|
|
284
|
-
- Profile application with production-like data
|