rails_claude_skills 0.1.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.
Files changed (87) hide show
  1. checksums.yaml +7 -0
  2. data/.github/ISSUE_TEMPLATE/bug_report.yml +134 -0
  3. data/.github/ISSUE_TEMPLATE/config.yml +11 -0
  4. data/.github/ISSUE_TEMPLATE/feature_request.yml +129 -0
  5. data/.github/ISSUE_TEMPLATE/question.yml +90 -0
  6. data/.github/dependabot.yml +19 -0
  7. data/.github/workflows/ci.yml +77 -0
  8. data/.github/workflows/release.yml +66 -0
  9. data/.rubocop.yml +52 -0
  10. data/CHANGELOG.md +94 -0
  11. data/CLAUDE.md +332 -0
  12. data/CODE_OF_CONDUCT.md +134 -0
  13. data/CONTRIBUTING.md +580 -0
  14. data/LICENSE.txt +21 -0
  15. data/README.md +544 -0
  16. data/Rakefile +8 -0
  17. data/lib/generators/claude/agent/agent_generator.rb +71 -0
  18. data/lib/generators/claude/agent/templates/agent.md.tt +62 -0
  19. data/lib/generators/claude/command/command_generator.rb +50 -0
  20. data/lib/generators/claude/command/templates/command.md.tt +28 -0
  21. data/lib/generators/claude/commands_library/create-pr.md +27 -0
  22. data/lib/generators/claude/commands_library/dbchange.md +19 -0
  23. data/lib/generators/claude/commands_library/quality.md +20 -0
  24. data/lib/generators/claude/commands_library/stimulus.md +19 -0
  25. data/lib/generators/claude/commands_library/turbo-feature.md +17 -0
  26. data/lib/generators/claude/install/install_generator.rb +211 -0
  27. data/lib/generators/claude/install/templates/README.md.tt +59 -0
  28. data/lib/generators/claude/install/templates/USAGE +28 -0
  29. data/lib/generators/claude/install/templates/agents/api-dev.md.tt +46 -0
  30. data/lib/generators/claude/install/templates/agents/fullstack-dev.md.tt +48 -0
  31. data/lib/generators/claude/install/templates/agents/rails-developer.md.tt +40 -0
  32. data/lib/generators/claude/install/templates/settings.local.json.tt +13 -0
  33. data/lib/generators/claude/rule/rule_generator.rb +175 -0
  34. data/lib/generators/claude/rule/templates/rule.md.tt +7 -0
  35. data/lib/generators/claude/rules_library/code-style.md +37 -0
  36. data/lib/generators/claude/rules_library/database.md +47 -0
  37. data/lib/generators/claude/rules_library/hotwire.md +56 -0
  38. data/lib/generators/claude/rules_library/security.md +54 -0
  39. data/lib/generators/claude/rules_library/testing.md +47 -0
  40. data/lib/generators/claude/skill/skill_generator.rb +196 -0
  41. data/lib/generators/claude/skill/templates/SKILL.md.tt +27 -0
  42. data/lib/generators/claude/skills_library/create-task-files/SKILL.md +311 -0
  43. data/lib/generators/claude/skills_library/create-task-files/templates/bug.md +60 -0
  44. data/lib/generators/claude/skills_library/create-task-files/templates/epic.md +47 -0
  45. data/lib/generators/claude/skills_library/create-task-files/templates/issue.md +45 -0
  46. data/lib/generators/claude/skills_library/create-task-files/templates/user-story.md +57 -0
  47. data/lib/generators/claude/skills_library/minitest-testing/SKILL.md +398 -0
  48. data/lib/generators/claude/skills_library/minitest-testing/references/examples.md +889 -0
  49. data/lib/generators/claude/skills_library/plan-feature/SKILL.md +253 -0
  50. data/lib/generators/claude/skills_library/rails-api-controllers/SKILL.md +1041 -0
  51. data/lib/generators/claude/skills_library/rails-api-controllers/references/api-documentation.md +422 -0
  52. data/lib/generators/claude/skills_library/rails-api-controllers/references/serialization.md +456 -0
  53. data/lib/generators/claude/skills_library/rails-auth-with-devise/SKILL.md +191 -0
  54. data/lib/generators/claude/skills_library/rails-auth-with-devise/references/advanced.md +331 -0
  55. data/lib/generators/claude/skills_library/rails-auth-with-devise/references/api-auth.md +266 -0
  56. data/lib/generators/claude/skills_library/rails-auth-with-devise/references/omniauth.md +194 -0
  57. data/lib/generators/claude/skills_library/rails-authorization-cancancan/SKILL.md +603 -0
  58. data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/api-authorization.md +543 -0
  59. data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/complex-permissions.md +572 -0
  60. data/lib/generators/claude/skills_library/rails-authorization-cancancan/references/multi-tenancy.md +373 -0
  61. data/lib/generators/claude/skills_library/rails-controllers/SKILL.md +514 -0
  62. data/lib/generators/claude/skills_library/rails-debugging/SKILL.md +260 -0
  63. data/lib/generators/claude/skills_library/rails-deployment/SKILL.md +437 -0
  64. data/lib/generators/claude/skills_library/rails-deployment/references/examples.md +901 -0
  65. data/lib/generators/claude/skills_library/rails-hotwire/SKILL.md +367 -0
  66. data/lib/generators/claude/skills_library/rails-jobs/MISSION_CONTROL_SETUP.md +639 -0
  67. data/lib/generators/claude/skills_library/rails-jobs/SKILL.md +704 -0
  68. data/lib/generators/claude/skills_library/rails-mailers/SKILL.md +549 -0
  69. data/lib/generators/claude/skills_library/rails-models/SKILL.md +379 -0
  70. data/lib/generators/claude/skills_library/rails-pagination-kaminari/SKILL.md +622 -0
  71. data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/api-pagination.md +523 -0
  72. data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/custom-themes.md +498 -0
  73. data/lib/generators/claude/skills_library/rails-pagination-kaminari/references/performance.md +478 -0
  74. data/lib/generators/claude/skills_library/rails-views/SKILL.md +508 -0
  75. data/lib/generators/claude/skills_library/refine-requirements/SKILL.md +226 -0
  76. data/lib/generators/claude/skills_library/refine-requirements/references/examples.md +344 -0
  77. data/lib/generators/claude/skills_library/refine-requirements/references/reference.md +298 -0
  78. data/lib/generators/claude/skills_library/rspec-testing/SKILL.md +572 -0
  79. data/lib/generators/claude/skills_library/rspec-testing/references/better_specs_guide.md +273 -0
  80. data/lib/generators/claude/skills_library/rspec-testing/references/thoughtbot_patterns.md +407 -0
  81. data/lib/generators/claude/skills_library/tailwindcss/SKILL.md +371 -0
  82. data/lib/generators/claude/views/views_generator.rb +113 -0
  83. data/lib/rails_claude_skills/railtie.rb +16 -0
  84. data/lib/rails_claude_skills/version.rb +5 -0
  85. data/lib/rails_claude_skills.rb +27 -0
  86. data/sig/rails_claude_skills.rbs +4 -0
  87. metadata +199 -0
data/CLAUDE.md ADDED
@@ -0,0 +1,332 @@
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
+ Rails Claude Skills is a Rails generator gem that scaffolds Claude AI skills and agents for Rails projects. It brings Rails generator conventions to Claude AI, making AI-assisted development reusable and distributable across teams and projects.
8
+
9
+ ## Development Commands
10
+
11
+ ### Testing
12
+ ```bash
13
+ # Run all tests
14
+ rake spec
15
+
16
+ # Run tests with RSpec directly
17
+ bundle exec rspec
18
+
19
+ # Run specific test file
20
+ bundle exec rspec spec/path/to/file_spec.rb
21
+ ```
22
+
23
+ ### Code Quality
24
+ ```bash
25
+ # Run RuboCop linter
26
+ bundle exec rubocop
27
+
28
+ # Auto-fix RuboCop issues
29
+ bundle exec rubocop -a
30
+ ```
31
+
32
+ ### Build and Install
33
+ ```bash
34
+ # Build the gem
35
+ bundle exec rake build
36
+
37
+ # Install gem locally
38
+ bundle exec rake install
39
+
40
+ # Build and push to RubyGems (maintainers only)
41
+ bundle exec rake release
42
+ ```
43
+
44
+ ### Setup
45
+ ```bash
46
+ # Initial setup after cloning
47
+ bin/setup
48
+ ```
49
+
50
+ ## CI/CD Pipeline
51
+
52
+ ### GitHub Actions Workflows
53
+
54
+ **CI Workflow** (`.github/workflows/ci.yml`):
55
+ - Triggered on push to `main` and pull requests
56
+ - Runs RuboCop linting
57
+ - Tests against Ruby versions: 3.0, 3.1, 3.2, 3.3
58
+ - Tests against Rails versions: 7.0, 7.1, 7.2
59
+ - Builds gem artifact
60
+ - Matrix testing ensures compatibility across versions
61
+
62
+ **Release Workflow** (`.github/workflows/release.yml`):
63
+ - Triggered on version tags (e.g., `v0.2.0`)
64
+ - Builds and publishes gem to RubyGems
65
+ - Creates GitHub release with release notes
66
+ - Requires `RUBYGEMS_API_KEY` secret in repository settings
67
+
68
+ **Dependabot** (`.github/dependabot.yml`):
69
+ - Weekly updates for Bundler dependencies
70
+ - Weekly updates for GitHub Actions
71
+ - Groups RuboCop updates together
72
+
73
+ ### Running CI Locally
74
+
75
+ ```bash
76
+ # Run the same checks as CI
77
+ bundle exec rspec
78
+ bundle exec rubocop
79
+
80
+ # Test specific Rails version
81
+ RAILS_VERSION=7.2 bundle update
82
+ RAILS_VERSION=7.2 bundle exec rspec
83
+ ```
84
+
85
+ ### Release Process
86
+
87
+ 1. Update version in `lib/rails_claude_skills/version.rb`
88
+ 2. Update `CHANGELOG.md` with release notes
89
+ 3. Commit changes: `git commit -am "Release v0.x.x"`
90
+ 4. Create and push tag: `git tag v0.x.x && git push origin v0.x.x`
91
+ 5. GitHub Actions will automatically build and publish the gem
92
+
93
+ ## Architecture
94
+
95
+ ### Core Components
96
+
97
+ 1. **Module Structure** (`lib/rails_claude_skills.rb`)
98
+ - Main module with configuration support
99
+ - `RailsClaudeSkills.configure` block for global settings
100
+ - Default paths: `.claude/skills` and `.claude/agents`
101
+ - Default model: "sonnet"
102
+
103
+ 2. **Generators** (`lib/generators/claude/`)
104
+ - **InstallGenerator**: Creates `.claude/` directory with preset bundles (basic, fullstack, api)
105
+ - **SkillGenerator**: Creates custom skills with templates (generic, model, controller, frontend)
106
+ - **AgentGenerator**: Creates agents that combine multiple skills
107
+ - **CommandGenerator**: Creates custom Claude Code commands (slash commands)
108
+ - **RuleGenerator**: Creates project-specific rules with templates (generic, testing, security, performance)
109
+ - **ViewsGenerator**: Copies skills, commands, or rules from gem to project for customization
110
+
111
+ 3. **Skills Library** (`lib/generators/claude/skills_library/`)
112
+ - Pre-built skills stored as directories with `SKILL.md` and optional `references/` or `templates/`
113
+ - **Rails Core**: rails-models, rails-controllers, rails-views, rails-api-controllers, rails-hotwire
114
+ - **Authentication & Authorization**: rails-auth-with-devise, rails-authorization-cancancan
115
+ - **Frontend**: tailwindcss
116
+ - **Background Jobs & Email**: rails-jobs, rails-mailers
117
+ - **Testing**: rspec-testing, minitest-testing
118
+ - **Utilities**: rails-debugging, rails-pagination-kaminari, rails-deployment
119
+ - **Planning & Organization**: plan-feature, refine-requirements, create-task-files
120
+
121
+ 4. **Commands Library** (`lib/generators/claude/commands_library/`)
122
+ - Pre-built commands stored as markdown files with YAML frontmatter
123
+ - Available commands: quality, turbo-feature, dbchange, stimulus, create-pr
124
+ - Commands have: description, argument-hint, allowed-tools
125
+
126
+ 5. **Rules Library** (`lib/generators/claude/rules_library/`)
127
+ - Pre-built rules stored as markdown files with optional YAML frontmatter
128
+ - Available rules: code-style, testing, security, database, hotwire
129
+ - Rules can be scoped to specific paths using frontmatter
130
+
131
+ 6. **Railtie Integration** (`lib/rails_claude_skills/railtie.rb`)
132
+ - Integrates gem with Rails application lifecycle
133
+ - Auto-loads generators when gem is present
134
+
135
+ ### Generator Presets
136
+
137
+ **Basic Preset**:
138
+ - Skills: rails-models, rails-controllers, rails-views
139
+ - Commands: dbchange
140
+ - Rules: code-style, testing, database
141
+
142
+ **Fullstack Preset**:
143
+ - Skills: Basic + rails-hotwire, tailwindcss, rspec-testing
144
+ - Commands: Basic + quality, turbo-feature, stimulus, create-pr
145
+ - Rules: Basic + hotwire, security
146
+
147
+ **API Preset**:
148
+ - Skills: rails-models, rails-api-controllers, rails-serializers, rails-authentication
149
+ - Commands: dbchange, quality
150
+ - Rules: code-style, testing, security, database
151
+
152
+ ### Resource Structures
153
+
154
+ #### Skills
155
+ Each skill in the library follows this pattern:
156
+ ```
157
+ skill-name/
158
+ ├── SKILL.md # Main skill content with frontmatter (name, description, version)
159
+ └── references/ # Optional: supporting files and examples
160
+ ```
161
+
162
+ Skills use YAML frontmatter in `SKILL.md`:
163
+ ```yaml
164
+ ---
165
+ name: skill-name
166
+ description: Brief description
167
+ version: 1.0.0
168
+ tags: [tag1, tag2]
169
+ ---
170
+ ```
171
+
172
+ #### Commands
173
+ Commands are single markdown files with YAML frontmatter:
174
+ ```yaml
175
+ ---
176
+ description: Command description
177
+ argument-hint: [optional_args]
178
+ allowed-tools: Bash, Read, Edit, Write
179
+ ---
180
+ ```
181
+
182
+ #### Rules
183
+ Rules are single markdown files with optional YAML frontmatter for path scoping:
184
+ ```yaml
185
+ ---
186
+ paths: app/models/**/*,db/**/*
187
+ ---
188
+ ```
189
+
190
+ ## Development Workflow
191
+
192
+ ### Adding a New Skill
193
+
194
+ 1. Create directory in `lib/generators/claude/skills_library/<skill-name>/`
195
+ 2. Add `SKILL.md` with proper frontmatter (name, description, version)
196
+ 3. Add `references/` directory if needed for examples
197
+ 4. Update preset definitions in `install_generator.rb` if skill should be part of a preset
198
+ 5. Test by running the install generator and verifying skill is copied correctly
199
+
200
+ ### Adding a New Command
201
+
202
+ 1. Create file in `lib/generators/claude/commands_library/<command-name>.md`
203
+ 2. Add YAML frontmatter with description, argument-hint, and allowed-tools
204
+ 3. Write command instructions using $ARGUMENTS or $1, $2, etc. for arguments
205
+ 4. Update preset definitions in `install_generator.rb` if command should be part of a preset
206
+ 5. Test with `rails g claude:views <command-name> --type=command`
207
+
208
+ ### Adding a New Rule
209
+
210
+ 1. Create file in `lib/generators/claude/rules_library/<rule-name>.md`
211
+ 2. Add optional YAML frontmatter with paths for scoping
212
+ 3. Write rule content with guidelines and best practices
213
+ 4. Update preset definitions in `install_generator.rb` if rule should be part of a preset
214
+ 5. Test with `rails g claude:views <rule-name> --type=rule`
215
+
216
+ ### Adding a New Generator
217
+
218
+ 1. Create generator class in `lib/generators/claude/<name>/<name>_generator.rb`
219
+ 2. Inherit from `Rails::Generators::Base` or `Rails::Generators::NamedBase`
220
+ 3. Set source_root to templates directory
221
+ 4. Define class options with Thor option syntax
222
+ 5. Implement generator methods (executed in order defined)
223
+ 6. Add templates in `lib/generators/claude/<name>/templates/`
224
+ 7. Test generator with `rails g claude:<name>`
225
+
226
+ ## Code Conventions
227
+
228
+ ### RuboCop Configuration (.rubocop.yml)
229
+
230
+ - Target Ruby 3.0+
231
+ - String literals: double quotes enforced
232
+ - Line length: max 150 characters
233
+ - Method length: max 25 lines (generators exempt)
234
+ - ABC size: max 25 (generators exempt)
235
+ - Block length: unlimited for specs and generators
236
+ - Documentation requirement: disabled
237
+
238
+ ### Generator Patterns
239
+
240
+ - Use `empty_directory` before creating files in a directory
241
+ - Use `template` for `.tt` files (ERB templates)
242
+ - Use `directory` to copy entire skill directories
243
+ - Use `say` for colored output: `:green` (success), `:blue` (info), `:yellow` (warning), `:red` (error)
244
+ - Check for existing files/directories before creating to support idempotent operations
245
+ - Provide helpful next steps after generator completes
246
+
247
+ ### Template Variables
248
+
249
+ Common ERB variables available in `.tt` templates:
250
+ - `file_name` - Dasherized name from generator argument
251
+ - `app_name` - Rails application name (from `Rails.application.class.module_parent_name`)
252
+ - `rails_version` - Rails version string
253
+ - `options[:<option_name>]` - Access to command-line options
254
+
255
+ ## Testing
256
+
257
+ Tests are in `spec/` directory using RSpec:
258
+ - `spec/generators/` - Generator tests
259
+ - `spec/rails_claude_skills_spec.rb` - Main module tests
260
+ - `spec/spec_helper.rb` - RSpec configuration
261
+
262
+ RSpec configuration (`.rspec`):
263
+ - Format: documentation
264
+ - Color output enabled
265
+ - Auto-requires spec_helper
266
+
267
+ ## Critical Dependencies
268
+
269
+ - Ruby >= 3.0.0
270
+ - Rails >= 7.0
271
+
272
+ Development dependencies:
273
+ - rspec ~> 3.0
274
+ - rubocop ~> 1.60
275
+ - rubocop-rake ~> 0.6
276
+ - rubocop-rspec ~> 2.25
277
+
278
+ ## Important Notes
279
+
280
+ ### Generator Execution Order
281
+
282
+ Generator methods execute in the order they're defined in the class. This is critical for:
283
+ - Creating directories before files
284
+ - Installing dependencies before using them
285
+ - Validating inputs before processing
286
+
287
+ ### Skill Installation Logic
288
+
289
+ The `install_skill` method (used by InstallGenerator):
290
+ 1. Creates `.claude/skills/<skill-name>` directory
291
+ 2. Checks if skill exists in `lib/generators/claude/skills_library/`
292
+ 3. If found, copies entire directory to project
293
+ 4. If not found, creates placeholder SKILL.md or shows warning
294
+
295
+ ### Template Resolution
296
+
297
+ Rails generators look for templates in `source_root` directory. Use:
298
+ - `template(source, destination)` for ERB templates
299
+ - `copy_file(source, destination)` for non-ERB files
300
+ - `directory(source, destination)` for entire directories
301
+
302
+ ## File Locations Reference
303
+
304
+ - **Generators**: `lib/generators/claude/`
305
+ - **Skills Library**: `lib/generators/claude/skills_library/`
306
+ - **Commands Library**: `lib/generators/claude/commands_library/`
307
+ - **Rules Library**: `lib/generators/claude/rules_library/`
308
+ - **Context Templates**: `lib/generators/claude/context/templates/contexts/`
309
+ - **Agent Templates**: `lib/generators/claude/install/templates/agents/`
310
+ - **Tests**: `spec/`
311
+ - **Version**: `lib/rails_claude_skills/version.rb`
312
+
313
+ ## Generator Usage Examples
314
+
315
+ ```bash
316
+ # Install with preset
317
+ rails g claude:install --preset=fullstack
318
+
319
+ # Create custom skill
320
+ rails g claude:skill my-custom-skill --with_references
321
+
322
+ # Create custom command
323
+ rails g claude:command deploy --description="Deploy to production" --argument-hint="[environment]"
324
+
325
+ # Create custom rule
326
+ rails g claude:rule api-design --paths="app/controllers/api/**/*" --template=security
327
+
328
+ # Copy pre-built resources for customization
329
+ rails g claude:views rails-models # Copy skill
330
+ rails g claude:views quality --type=command # Copy command
331
+ rails g claude:views security --type=rule # Copy rule
332
+ ```
@@ -0,0 +1,134 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone, regardless of age, body
7
+ size, visible or invisible disability, ethnicity, sex characteristics, gender
8
+ identity and expression, level of experience, education, socio-economic status,
9
+ nationality, personal appearance, race, caste, color, religion, or sexual
10
+ identity and orientation.
11
+
12
+ We pledge to act and interact in ways that contribute to an open, welcoming,
13
+ diverse, inclusive, and healthy community.
14
+
15
+ ## Our Standards
16
+
17
+ Examples of behavior that contributes to a positive environment for our
18
+ community include:
19
+
20
+ * Demonstrating empathy and kindness toward other people
21
+ * Being respectful of differing opinions, viewpoints, and experiences
22
+ * Giving and gracefully accepting constructive feedback
23
+ * Accepting responsibility and apologizing to those affected by our mistakes,
24
+ and learning from the experience
25
+ * Focusing on what is best not just for us as individuals, but for the overall
26
+ community
27
+
28
+ Examples of unacceptable behavior include:
29
+
30
+ * The use of sexualized language or imagery, and sexual attention or advances of
31
+ any kind
32
+ * Trolling, insulting or derogatory comments, and personal or political attacks
33
+ * Public or private harassment
34
+ * Publishing others' private information, such as a physical or email address,
35
+ without their explicit permission
36
+ * Other conduct which could reasonably be considered inappropriate in a
37
+ professional setting
38
+
39
+ ## Enforcement Responsibilities
40
+
41
+ Community leaders are responsible for clarifying and enforcing our standards of
42
+ acceptable behavior and will take appropriate and fair corrective action in
43
+ response to any behavior that they deem inappropriate, threatening, offensive,
44
+ or harmful.
45
+
46
+ Community leaders have the right and responsibility to remove, edit, or reject
47
+ comments, commits, code, wiki edits, issues, and other contributions that are
48
+ not aligned to this Code of Conduct, and will communicate reasons for moderation
49
+ decisions when appropriate.
50
+
51
+ ## Scope
52
+
53
+ This Code of Conduct applies within all community spaces, and also applies when
54
+ an individual is officially representing the community in public spaces.
55
+ Examples of representing our community include using an official email address,
56
+ posting via an official social media account, or acting as an appointed
57
+ representative at an online or offline event.
58
+
59
+ ## Enforcement
60
+
61
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
62
+ reported to the community leaders responsible for enforcement by
63
+ [opening a confidential issue](https://github.com/Shoebtamboli/rails_claude_skills/issues/new?template=question.yml)
64
+ or contacting the project maintainers directly.
65
+
66
+ All complaints will be reviewed and investigated promptly and fairly.
67
+
68
+ All community leaders are obligated to respect the privacy and security of the
69
+ reporter of any incident.
70
+
71
+ ## Enforcement Guidelines
72
+
73
+ Community leaders will follow these Community Impact Guidelines in determining
74
+ the consequences for any action they deem in violation of this Code of Conduct:
75
+
76
+ ### 1. Correction
77
+
78
+ **Community Impact**: Use of inappropriate language or other behavior deemed
79
+ unprofessional or unwelcome in the community.
80
+
81
+ **Consequence**: A private, written warning from community leaders, providing
82
+ clarity around the nature of the violation and an explanation of why the
83
+ behavior was inappropriate. A public apology may be requested.
84
+
85
+ ### 2. Warning
86
+
87
+ **Community Impact**: A violation through a single incident or series of
88
+ actions.
89
+
90
+ **Consequence**: A warning with consequences for continued behavior. No
91
+ interaction with the people involved, including unsolicited interaction with
92
+ those enforcing the Code of Conduct, for a specified period of time. This
93
+ includes avoiding interactions in community spaces as well as external channels
94
+ like social media. Violating these terms may lead to a temporary or permanent
95
+ ban.
96
+
97
+ ### 3. Temporary Ban
98
+
99
+ **Community Impact**: A serious violation of community standards, including
100
+ sustained inappropriate behavior.
101
+
102
+ **Consequence**: A temporary ban from any sort of interaction or public
103
+ communication with the community for a specified period of time. No public or
104
+ private interaction with the people involved, including unsolicited interaction
105
+ with those enforcing the Code of Conduct, is allowed during this period.
106
+ Violating these terms may lead to a permanent ban.
107
+
108
+ ### 4. Permanent Ban
109
+
110
+ **Community Impact**: Demonstrating a pattern of violation of community
111
+ standards, including sustained inappropriate behavior, harassment of an
112
+ individual, or aggression toward or disparagement of classes of individuals.
113
+
114
+ **Consequence**: A permanent ban from any sort of public interaction within the
115
+ community.
116
+
117
+ ## Attribution
118
+
119
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage],
120
+ version 2.1, available at
121
+ [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
122
+
123
+ Community Impact Guidelines were inspired by
124
+ [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
125
+
126
+ For answers to common questions about this code of conduct, see the FAQ at
127
+ [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
128
+ [https://www.contributor-covenant.org/translations][translations].
129
+
130
+ [homepage]: https://www.contributor-covenant.org
131
+ [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
132
+ [Mozilla CoC]: https://github.com/mozilla/diversity
133
+ [FAQ]: https://www.contributor-covenant.org/faq
134
+ [translations]: https://www.contributor-covenant.org/translations