Skip to content

Commit f0c76e5

Browse files
committed
feat: add agent instructions and project structure documentation
1 parent cd4b141 commit f0c76e5

1 file changed

Lines changed: 113 additions & 0 deletions

File tree

agent.md

Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
# Agent Instructions
2+
3+
This repository contains the Jekyll-based static website for **DotNetDevs.at**, a non-profit Austrian .NET developer community that hosts monthly meetup events.
4+
5+
## Tech Stack
6+
7+
- **Static Site Generator**: Jekyll >= 3.7 with Minimal Mistakes theme
8+
- **Ruby**: Managed via Gemfile (github-pages gem)
9+
- **Node.js**: For testing only
10+
- **Testing**: Playwright (approval/visual snapshot testing)
11+
- **Hosting**: GitHub Pages
12+
13+
## Prerequisites
14+
15+
```bash
16+
bundle install # Install Ruby gems
17+
npm install # Install Node.js dependencies
18+
```
19+
20+
## Development Commands
21+
22+
| Command | Purpose |
23+
|---------|---------|
24+
| `npm run serve` | Start local dev server at http://127.0.0.1:4000 |
25+
| `npm run build` | Build the Jekyll site |
26+
| `npm test` | Run Playwright tests |
27+
| `npm run test:update-snapshots` | Update visual/approval snapshots |
28+
| `npm run test:ui` | Run tests with Playwright UI |
29+
30+
## Content Structure
31+
32+
### Events (`_events/`)
33+
34+
Filename pattern: `YYYY-MM-DD.md` or `YYYY-MM-DD-talkN.md` for multiple talks on the same day.
35+
36+
Required front matter:
37+
38+
```yaml
39+
---
40+
date: 2025-01-14
41+
title: "Event Title"
42+
speakers:
43+
- Speaker Name
44+
Location: "Rubicon"
45+
InPersonLink: "https://meetup.com/..."
46+
RemoteLink: "https://meetup.com/..."
47+
RecordingLink: "" # YouTube URL after event, empty string before
48+
Registrations: 0
49+
Participants: 0
50+
Viewers: 0
51+
public: true # Set to false to hide from listing
52+
abstract: |
53+
Talk description...
54+
---
55+
```
56+
57+
### Speakers (`_speakers/`)
58+
59+
Filename: `firstname-lastname.md` (kebab-case)
60+
61+
```yaml
62+
---
63+
name: Full Name
64+
---
65+
```
66+
67+
### Sponsors (`_sponsors/`)
68+
69+
```yaml
70+
---
71+
title: Sponsor Name
72+
permalink: /sponsors/sponsor-slug/
73+
logo: /assets/images/sponsor.svg
74+
---
75+
```
76+
77+
## Important Rules
78+
79+
1. **Always run tests** with `npm test` before committing changes
80+
2. **Update snapshots** with `npm run test:update-snapshots` after intentional visual changes
81+
3. **Event visibility**: Set `public: true` for events to appear on the website
82+
4. **Speaker name matching**: Speaker names in event files must exactly match the `name` field in speaker files for auto-linking
83+
5. **Date format**: Use ISO format `YYYY-MM-DD` in filenames and front matter
84+
6. **Future events**: Are displayed because `future: true` is set in `_config.yml`
85+
86+
## Testing
87+
88+
The project uses approval testing with Playwright:
89+
90+
- **Visual snapshots**: Screenshots compared against baselines
91+
- **Structure snapshots**: JSON snapshots of page structure
92+
- **Test files**: Located in `tests/` directory
93+
94+
Run the full test suite before any PR:
95+
96+
```bash
97+
npm run test:ci # Builds site and runs tests
98+
```
99+
100+
## Project Structure
101+
102+
```
103+
_config.yml # Jekyll configuration
104+
_data/ # Navigation and UI text
105+
_events/ # Event markdown files
106+
_speakers/ # Speaker profiles
107+
_sponsors/ # Sponsor information
108+
_includes/ # Reusable HTML partials
109+
_layouts/ # Page templates
110+
_sass/ # SCSS stylesheets
111+
assets/ # Images, CSS, JS
112+
tests/ # Playwright test specs
113+
```

0 commit comments

Comments
 (0)