karlexmarin Claude Opus 4.7 (1M context) commited on
Commit
a9fb4b6
·
1 Parent(s): 0195057

feat: CONTRIBUTING.md + issue templates + OpenGraph meta tags

Browse files

Sprint 1 community-workflow unlock files:

- CONTRIBUTING.md: how to contribute (no-code: translate/falsify/preset/bug;
code: setup, structure, recipes, languages, formulas, PR process,
code of conduct, what won't be accepted)
- .github/ISSUE_TEMPLATE/:
* bug-report.md
* feature-request.md
* question.md
* translation.md
* config.yml (blank issues disabled, contact links for registry)
- OpenGraph + Twitter Card meta tags in index.html for rich social sharing
(Twitter, LinkedIn, WhatsApp, Discord all get cards now)
- theme-color meta for mobile browser chrome
- expanded title + description + keywords for SEO

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

.github/ISSUE_TEMPLATE/bug-report.md ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 🐛 Bug report
3
+ about: Something is broken in TAF Agent
4
+ title: '[Bug] '
5
+ labels: bug
6
+ ---
7
+
8
+ ## What happened
9
+
10
+ Brief description.
11
+
12
+ ## Expected behavior
13
+
14
+ What should have happened?
15
+
16
+ ## Steps to reproduce
17
+
18
+ 1.
19
+ 2.
20
+ 3.
21
+
22
+ ## Browser / environment
23
+
24
+ - Browser: __ (Chrome / Edge / Firefox / Safari + version)
25
+ - OS: __ (Windows / macOS / Linux)
26
+ - Mode used: __ (Profile / Compare / Inspector / Ask / Recipe)
27
+ - Model id (if applicable): __
28
+
29
+ ## Console output
30
+
31
+ Open DevTools (F12 → Console). Paste any errors:
32
+
33
+ ```
34
+ (paste here)
35
+ ```
36
+
37
+ ## Screenshots
38
+
39
+ If visual bug, attach a screenshot.
40
+
41
+ ## Hash (if error during analysis)
42
+
43
+ Look at the URL (after Share) or the JSON download for the input hash:
44
+
45
+ `#________`
.github/ISSUE_TEMPLATE/config.yml ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ blank_issues_enabled: false
2
+ contact_links:
3
+ - name: 📤 Submit a TAF analysis
4
+ url: https://github.com/karlesmarin/tafagent-registry/issues/new
5
+ about: Submit your model analysis to the public registry (use the web tool's Submit button for pre-filled form)
6
+ - name: ❌ Refute a TAF prediction
7
+ url: https://github.com/karlesmarin/tafagent-registry/issues/new?template=refutation.md
8
+ about: Empirical measurement contradicts a TAF prediction
9
+ - name: 📄 Paper questions
10
+ url: https://github.com/karlesmarin/NeurIPS
11
+ about: Discussion about the underlying Transformer Thermodynamics paper
.github/ISSUE_TEMPLATE/feature-request.md ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 💡 Feature request
3
+ about: Suggest a new feature for the web tool
4
+ title: '[Feature] '
5
+ labels: enhancement
6
+ ---
7
+
8
+ ## What's the problem this solves
9
+
10
+ Describe the use case in 1-2 sentences.
11
+
12
+ ## Proposed solution
13
+
14
+ What would the feature look like? Sketch the UI / behaviour.
15
+
16
+ ## Alternatives considered
17
+
18
+ What other approaches did you think about? Why is this better?
19
+
20
+ ## Effort estimate
21
+
22
+ Rough estimate (or leave blank if you don't know):
23
+ - [ ] Small (<2h)
24
+ - [ ] Medium (2-8h)
25
+ - [ ] Large (>8h)
26
+
27
+ ## Are you willing to implement it
28
+
29
+ - [ ] Yes, I'll submit a PR
30
+ - [ ] I can help review/test
31
+ - [ ] Just suggesting; need someone else to build it
32
+
33
+ ## References
34
+
35
+ Any papers, blog posts, or other tools that do this well.
.github/ISSUE_TEMPLATE/question.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: ❓ Question
3
+ about: Ask about how something works
4
+ title: '[Question] '
5
+ labels: question
6
+ ---
7
+
8
+ ## My question
9
+
10
+ What are you trying to understand or do?
11
+
12
+ ## What I've tried
13
+
14
+ What did you check before asking? (paper, README, help modal, etc.)
15
+
16
+ ## Context
17
+
18
+ - Are you a researcher / engineer / student / hobbyist?
19
+ - What's the underlying goal? (training a model, evaluating one, etc.)
20
+ - Anything that helps frame the question.
.github/ISSUE_TEMPLATE/translation.md ADDED
@@ -0,0 +1,33 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ name: 🌐 Translation contribution
3
+ about: Add or fix translations for a language
4
+ title: '[i18n] '
5
+ labels: i18n
6
+ ---
7
+
8
+ ## Language
9
+
10
+ Which language? (code + name, e.g. `de` / Deutsch)
11
+
12
+ ## What you're contributing
13
+
14
+ - [ ] Adding a new language (full translation)
15
+ - [ ] Fixing a bad translation in an existing language
16
+ - [ ] Translating new keys added in a recent release
17
+
18
+ ## Native speaker?
19
+
20
+ - [ ] Yes, native speaker
21
+ - [ ] Yes, fluent
22
+ - [ ] Helped by a language model (note which one)
23
+ - [ ] Used machine translation (note which service)
24
+
25
+ ## Files touched
26
+
27
+ - [ ] `js/i18n.js` (translation strings)
28
+ - [ ] `index.html` (data-i18n attributes if adding new ones)
29
+
30
+ ## Anything specific to flag
31
+
32
+ Cultural notes, terminology choices, untranslatable terms (kept in English),
33
+ etc.
CONTRIBUTING.md ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Contributing to TAF Agent
2
+
3
+ > Thank you for considering contributing. This is an independent research
4
+ > project — every contribution, however small, is genuinely appreciated.
5
+
6
+ ---
7
+
8
+ ## How you can help (no coding required)
9
+
10
+ ### 🌐 Translate
11
+ Add a language to the UI. Edit `js/i18n.js`, copy the `en` block, translate
12
+ each value. Open a PR. ~1-2h.
13
+
14
+ ### 🧪 Falsify a prediction
15
+ Run TAF Agent on a model where you have *real measurements* (NIAH retrieval,
16
+ PPL benchmarks, training cost data). If our verdict disagrees with reality,
17
+ open a [refutation issue in the registry](https://github.com/karlesmarin/tafagent-registry/issues/new?template=refutation.md).
18
+ Refutations are first-class citizens here.
19
+
20
+ ### ➕ Add a model preset
21
+ Open an [issue with the model's config](https://github.com/karlesmarin/tafagent-registry/issues/new?template=new-preset.md).
22
+ We'll bundle popular ones into the next release.
23
+
24
+ ### 🐛 Report bugs
25
+ Use the [bug report template](https://github.com/karlesmarin/tafagent/issues/new?template=bug-report.md).
26
+ Browser console output (F12 → Console) helps a lot.
27
+
28
+ ### 💡 Propose new recipes
29
+ Suggest new TAF analyses in the [registry recipe template](https://github.com/karlesmarin/tafagent-registry/issues/new?template=new-recipe.md).
30
+ The 5 currently shipped (X-1, X-2, X-3, X-5, X-19) are a starting set; the
31
+ paper outlines 20 candidate recipes.
32
+
33
+ ---
34
+
35
+ ## How you can help (with code)
36
+
37
+ ### Local development setup
38
+
39
+ ```bash
40
+ git clone https://github.com/karlesmarin/tafagent
41
+ cd tafagent
42
+ python -m http.server 8000
43
+ # Open http://localhost:8000 in Chrome/Edge/Firefox 113+
44
+ ```
45
+
46
+ No build step, no npm, no transpilation. Edit files, refresh browser.
47
+
48
+ ### Code structure
49
+
50
+ ```
51
+ index.html ← UI shell
52
+ style.css ← dark theme + responsive
53
+ js/main.js ← orchestration (Pyodide + WebLLM + render)
54
+ js/i18n.js ← translations (EN/ES/FR/ZH)
55
+ python/taf_browser.py ← TAF formulas + recipes (runs in Pyodide)
56
+ registry-bootstrap/ ← files for the public registry repo
57
+ ```
58
+
59
+ ### Adding a new recipe (X-N)
60
+
61
+ 1. Add the function to `python/taf_browser.py`:
62
+ ```python
63
+ def run_recipe_xN(theta, T_train, ...):
64
+ chain = []
65
+ # ... build chain step by step using existing TAF formulas
66
+ return _wrap("X-N", "Name", locals(), chain, verdict, reason, mitigation)
67
+ ```
68
+ 2. Register it in the `RECIPES` dict at the bottom of the file.
69
+ 3. Add defaults to `getRecipeDefaults()` in `js/main.js`.
70
+ 4. Test locally; submit PR.
71
+
72
+ ### Adding a new language
73
+
74
+ 1. In `js/i18n.js`, add to `LANGUAGES` array:
75
+ ```javascript
76
+ { code: "de", flag: "🇩🇪", label: "Deutsch" }
77
+ ```
78
+ 2. Copy the `en` block in `TRANSLATIONS`, translate each value.
79
+ 3. Add a flag button in `index.html`:
80
+ ```html
81
+ <button class="lang-btn" data-lang="de" data-label="Deutsch" title="Deutsch">🇩🇪</button>
82
+ ```
83
+ 4. Test, submit PR.
84
+
85
+ ### Adding a new TAF formula
86
+
87
+ 1. Add the pure-Python function to `python/taf_browser.py`.
88
+ 2. Add a translation key for tooltips in `js/i18n.js`.
89
+ 3. If it's a closed-form result usable from a recipe, expose via the
90
+ recipe runner.
91
+
92
+ ---
93
+
94
+ ## Pull request process
95
+
96
+ 1. Fork the repo.
97
+ 2. Branch off `main`: `git checkout -b feat/your-thing`.
98
+ 3. Make changes, commit with descriptive messages
99
+ (`feat:` / `fix:` / `docs:` / `refactor:`).
100
+ 4. Push to your fork; open PR against `main`.
101
+ 5. Describe what changed and why; reference issue if any.
102
+ 6. Be patient — this is maintained part-time.
103
+
104
+ We rebase + squash PRs for a clean history.
105
+
106
+ ---
107
+
108
+ ## Code of conduct
109
+
110
+ - Be technical, specific, kind. Disagreements are about math, not people.
111
+ - Citations beat opinions. Measurements beat citations.
112
+ - Assume good faith. Most "wrong" PRs are misunderstandings, not bad actors.
113
+ - No commercial advertisements, no third-party trackers, no telemetry.
114
+
115
+ ---
116
+
117
+ ## What we won't accept
118
+
119
+ - Anything that adds tracking / analytics / telemetry to the user
120
+ - Closed-source dependencies that lock the tool to a vendor
121
+ - Recipes that require API keys for non-academic models
122
+ - Changes that break the offline-after-first-load promise
123
+ - Submissions that violate model licenses (e.g. uploading gated weights)
124
+
125
+ ---
126
+
127
+ ## Maintainer
128
+
129
+ Carles Marin · [@karlesmarin](https://github.com/karlesmarin) ·
130
+ transformerkmarin@gmail.com (paper-related) ·
131
+ karlesmarin@gmail.com (project-related)
132
+
133
+ ---
134
+
135
+ ## License
136
+
137
+ Apache-2.0. By contributing you agree your contribution is licensed under
138
+ the same terms.