Install
$ agentstack add skill-magnussmari-tmmot2026-skill-tmmot-results ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
tmmot-results — the data + analysis layer
You give it one thing: the team you were following. It fetches the rest — every played game, the group standings, and a full-tournament analysis — straight from the official results feed. No invented data; only games that were actually played.
This is Skill 1 of 2. It produces the data.json data layer that tmmot-album (Skill 2) turns into a site + PDF memory book.
Inputs
- Team name (exactly as it appears on the feed, e.g.
KA-2). - Results URL (the official feed, e.g.
https://urslit.tmmotid.is). The day
pages are scraped (?day=A/B/C), only rows with a final score count.
- (optional) Heart-rate window — if the owner wore a Garmin and you have their
HR in InfluxDB, puls-magnus.py adds a "how excited was the parent" series per game.
What it writes into data.json
matches[]/games[]— the team's games (day, time, venue, opponent, score, result).groupResults[]+analysis.ka_family[]— the group table + the team's siblings
(e.g. all KA-1..KA-4) with per-game form.
analysis— tournament-wide stats (games played, goals, average, number of teams)
and the team in context (goals for/against, defence percentile, etc.).
wrapup.record— the final W/L/GF/GA once the tournament is done.
Tools
tools/refresh-urslit.py— scrape the official feed, write CSV + compute the
analysis into data.json. Idempotent: exit 0 = unchanged, exit 3 = changed (so a cron/agent can rebuild only on a real change). Parameterise TEAM, the feed URL, the day codes, and the group at the top of the file.
tools/puls-magnus.py— (optional) pull the owner's heart-rate per game window
from InfluxDB. Iterates ALL of the team's games via analysis.ka_family.
Rules
- Only played games count. No guessing, no projected scores. Show "last updated".
- Honest provenance. If a game is hand-added (a placement final not yet on the
feed), record it as hand-entered — never claim it came "straight from the official system". The dashboard's caption must say so.
- Run on an interval, rebuild on change. A small Python agent on a timer scrapes
the feed; only exit 3 triggers a redeploy. Add a killswitch date so it stops after the tournament.
Run as an agent
A large-language-model-powered agent + this Python on a schedule = live results that update themselves. The agent decides when something material changed and narrates it; the Python does the deterministic scrape + diff.
— pattern by Magnús Smári Smárason · https://www.smarason.is
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: Magnussmari
- Source: Magnussmari/TmMot2026-Skill
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.