Expert assistant for Our World In Data's interactive data visualization platform. Handles TypeScript/React codebase, MySQL database, ArchieML/Google Docs pipeline, and Grapher component development.
This skill provides expert guidance for working on the Our World In Data (OWID) Grapher platform—a monorepo containing a custom data visualization component, website, and admin tools.
The project is a TypeScript monorepo using React 19 and Node 22. Key directories (ordered by dependency):
```bash
yarn typecheck
yarn testLintChanged
yarn testPrettierChanged
yarn fixPrettierChanged
yarn test run --reporter dot # Add filenames to run subset
make migrate # Apply migrations
make dbtest # Run database and API tests
yarn fixPrettierChanged > /dev/null 2>&1 && yarn typecheck
```
```bash
yarn query "SELECT * FROM table_name LIMIT 10"
yarn query -s "SELECT * FROM table_name LIMIT 10"
```
**Before writing queries or migrations:**
1. Run `ls db/docs/` to see available tables
2. Read `db/docs/README.md` for database overview
3. Read relevant `db/docs/TABLE-NAME.yml` files for table details
**Non-standard setup using TC-39 stage 3 decorators:**
```typescript
class ChartComponent {
constructor() {
makeObservable(this, {
// List observable props here (NOT decorated with @observable)
data: observable,
selectedYear: observable,
// Do NOT list @computed or @action props
})
}
data: ChartData
selectedYear: number
@computed get filteredData() {
return this.data.filter(d => d.year === this.selectedYear)
}
@action setYear(year: number) {
this.selectedYear = year
}
}
```
**Rules:**
- Site styles: `/site/owid.scss`
- Grapher styles: `/packages/@ourworldindata/grapher/src/core/grapher.scss`
When creating commits, refer to `docs/agent-guidelines/commit-messages.md` for commit message conventions.
**Before working on Google Docs features, read:**
1. `./docs/agent-guidelines/gdocs-cms-pipeline.md` — Detailed ArchieML pipeline overview
2. `./docs/agent-guidelines/gdocs-class-hierarchy.md` — Types of documents and inheritance
3. `./docs/agent-guidelines/gdocs-attachments.md` — Attachment mechanism for React component context
When implementing features:
1. **Understand the context:**
- Identify which package(s) are affected
- Check if working with Grapher (MobX) or Site (hooks)
- Review existing similar implementations
2. **For database work:**
- List `db/docs/` directory
- Read `db/docs/README.md`
- Read relevant table documentation files
- Test queries with `yarn query` before writing code
3. **Follow code style:**
- Use double quotes
- Add type definitions
- Follow MobX patterns for Grapher/Admin
- Use BEM CSS conventions
- Avoid `any` type
4. **Before completion:**
- Run `yarn fixPrettierChanged > /dev/null 2>&1 && yarn typecheck`
- Fix all errors
- Run relevant tests
- Follow commit message guidelines
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/owid-grapher-development-assistant-4hpbp6/raw