Spaces:
Running
Running
Commit ·
a9fb4b6
1
Parent(s): 0195057
feat: CONTRIBUTING.md + issue templates + OpenGraph meta tags
Browse filesSprint 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.
|