Skip to content

Commit 6329bf5

Browse files
committed
docs: add Claude AI configuration and Conventional Commits standard
- Add CLAUDE.md with project overview, architecture, and development commands - Document meetup data management workflow - Include Conventional Commits specification with project-specific scopes - Specify that AI tools should not be mentioned in commits - Update .gitignore to exclude Claude AI directories
1 parent b6fbc1f commit 6329bf5

2 files changed

Lines changed: 111 additions & 0 deletions

File tree

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,7 @@ _site
33
.jekyll-cache
44
.jekyll-metadata
55
vendor
6+
7+
# Claude AI
8+
.claude/
9+
.claudefiles

CLAUDE.md

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
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+
VanRuby is the website for Vancouver's Ruby community (vanruby.org), built with Jekyll static site generator. The site showcases meetup events, sponsors, and community information.
8+
9+
## Development Commands
10+
11+
### Local Development
12+
```bash
13+
bundle install # Install dependencies
14+
bundle exec jekyll serve --watch # Start development server at http://localhost:4000
15+
```
16+
17+
### Linting
18+
```bash
19+
bundle exec rubocop # Run RuboCop linter
20+
```
21+
22+
## Architecture
23+
24+
### Jekyll Static Site
25+
- Uses **rdiscount** markdown processor with smart extensions
26+
- Layouts in `_layouts/`: `layout.html` (main), `post.html` (blog posts)
27+
- Data files in `_data/`: `companies.csv`, `meetups.yml` (symlink to `meetup/meetups.yml`)
28+
- Generated site output in `_site/` (excluded from git)
29+
30+
### Meetup Data Management
31+
The site maintains historical meetup data fetched from Meetup.com API:
32+
33+
1. **fetch_meetups.rb** - Fetches events and comments from Meetup.com API
34+
- Uses `bundler/inline` with `meetup_client` gem
35+
- Requires `MEETUP_API_KEY` environment variable
36+
- Fetches from 'vancouver-ruby' group (ID: 573925)
37+
- Outputs to `raw_meetups.yml`
38+
39+
2. **transform_meetups.rb** - Processes raw data into clean format
40+
- Uses `bundler/inline` with `virtus` gem
41+
- Reads from `meetups.yaml` (note: expects `.yaml` not `.yml`)
42+
- Extracts slides (SpeakerDeck, SlideShare, Gist) and videos (YouTube)
43+
- Filters out "Developer Night" and "Hack Night" events
44+
- Outputs to `clean_meetups.yml`
45+
46+
3. **_data/meetups.yml** - Symlink to `meetup/meetups.yml` for Jekyll consumption
47+
48+
### Frontend Stack
49+
- Bootstrap 5 for styling
50+
- Custom SVG logos for sponsors (Clio, NorthEast, GitHub, Zayzoon)
51+
- Responsive design with mobile-first approach
52+
- Luma calendar integration for upcoming events
53+
54+
### Key Pages
55+
- `index.html` - Homepage with hero, sponsors, stats, and event calendar
56+
- `meetups.html` - Historical meetup listings
57+
- `companies.html` - Companies using Ruby in Vancouver
58+
- `2014-heroes.html` - Historical tribute page
59+
60+
## Ruby Version
61+
Ruby 3.4.6 (see `.ruby-version`)
62+
63+
## Git Commit Standards
64+
65+
Follow the Conventional Commits specification for all commit messages.
66+
67+
**IMPORTANT**: Do not include AI tools (Claude, ChatGPT, etc.) as co-authors or mention them in commit messages. All commits should be attributed to human authors only.
68+
69+
### Format
70+
```
71+
<type>(<scope>): <subject>
72+
73+
[optional body]
74+
75+
[optional footer]
76+
```
77+
78+
### Types
79+
- **feat**: A new feature
80+
- **fix**: A bug fix
81+
- **docs**: Documentation only changes
82+
- **style**: Changes that do not affect the meaning of the code (white-space, formatting, etc)
83+
- **refactor**: A code change that neither fixes a bug nor adds a feature
84+
- **perf**: A code change that improves performance
85+
- **test**: Adding missing tests or correcting existing tests
86+
- **build**: Changes that affect the build system or external dependencies
87+
- **ci**: Changes to CI configuration files and scripts
88+
- **chore**: Other changes that don't modify src or test files
89+
90+
### Scopes (optional)
91+
- `meetups`: Meetup data management
92+
- `sponsors`: Sponsor-related changes
93+
- `content`: Website content updates
94+
- `deps`: Dependency updates
95+
96+
### Examples
97+
```
98+
feat(meetups): add video extraction from Vimeo
99+
fix(sponsors): correct logo alignment on mobile
100+
docs: update README with deployment instructions
101+
chore(deps): update jekyll to 4.3.0
102+
```
103+
104+
## Important Notes
105+
- The transform script expects `meetups.yaml` but the actual file is `meetups.yml` - this inconsistency may cause errors
106+
- Meetup data scripts use inline Gemfiles, separate from main project dependencies
107+
- Sponsor logos are SVG files in `images/sponsors/`

0 commit comments

Comments
 (0)