|
| 1 | +# AGENTS.md |
| 2 | + |
| 3 | +## Scope |
| 4 | + |
| 5 | +This repository is a static browser playground for the Multilingual Programming Language. Keep changes small, local, and browser-first. |
| 6 | + |
| 7 | +## Baseline |
| 8 | + |
| 9 | +- Current playground release: `0.1.0` |
| 10 | +- Current aligned package: `multilingualprogramming` `0.6.0` |
| 11 | + |
| 12 | +When changing behavior, keep the playground aligned with the current target `multilingualprogramming` version documented in `README.md`. |
| 13 | + |
| 14 | +## Project structure |
| 15 | + |
| 16 | +- `index.html`: page shell and static markup |
| 17 | +- `assets/playground.css`: site styling |
| 18 | +- `assets/main.js`: browser bootstrap |
| 19 | +- `assets/editor.js`: editor setup, language loading, example switching |
| 20 | +- `assets/runtime.js`: Pyodide execution, WAT generation, WASM execution |
| 21 | +- `assets/ui.js`: tabs, split panes, status, share/clear helpers |
| 22 | +- `assets/theme.js`: theme handling |
| 23 | +- `assets/i18n.js`: UI translations |
| 24 | +- `assets/examples.js`: shipped example programs |
| 25 | +- `tools/check_release.py`: release and metadata validation |
| 26 | +- `tools/check_examples.py`: example executability validation |
| 27 | +- `.github/workflows/example-executability.yml`: CI for example execution |
| 28 | + |
| 29 | +## Working rules |
| 30 | + |
| 31 | +- Preserve the browser-only deployment model. Do not add a server dependency unless explicitly requested. |
| 32 | +- Keep the language selector in `index.html`, the example maps in `assets/examples.js`, and the keyword source from `../multilingual/multilingualprogramming/resources/usm/keywords.json` aligned. |
| 33 | +- Prefer deriving supported-language behavior from the DOM or shared data instead of duplicating hardcoded language lists. |
| 34 | +- Treat non-ASCII text in examples and translations as user-facing content. Do not normalize it away unless fixing a real encoding or parser issue. |
| 35 | +- If copy, canonical URLs, or publish metadata change, review `sitemap.xml`, `robots.txt`, and `site.webmanifest`. |
| 36 | +- Prefer targeted fixes over broad rewrites. This repo is intentionally small. |
| 37 | + |
| 38 | +## Validation |
| 39 | + |
| 40 | +Run these when relevant: |
| 41 | + |
| 42 | +- `python tools/check_release.py --expected-date YYYY-MM-DD` |
| 43 | +- `python tools/check_examples.py` |
| 44 | + |
| 45 | +For UI-facing changes, also do a manual browser pass on: |
| 46 | + |
| 47 | +- language switching |
| 48 | +- example switching |
| 49 | +- run / clear / share actions |
| 50 | +- Python, WAT / WASM, and Rust tabs |
| 51 | +- theme toggle |
| 52 | +- keyboard navigation |
| 53 | +- narrow-screen layout |
| 54 | + |
| 55 | +## Release docs |
| 56 | + |
| 57 | +If the change is user-visible or release-significant, update: |
| 58 | + |
| 59 | +- `CHANGELOG.md` |
| 60 | +- `README.md` |
| 61 | +- `RELEASE.md` |
| 62 | + |
| 63 | +## Collaboration |
| 64 | + |
| 65 | +In change summaries or PR notes, include: |
| 66 | + |
| 67 | +- what changed |
| 68 | +- why it changed |
| 69 | +- how it was validated |
| 70 | +- whether release docs or metadata were updated |
0 commit comments