Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/leopu00/job-hunter-teamnpx agentmods add skills/leopu00/job-hunter-team/format-timeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/leopu00/job-hunter-team/format-time)<a href="https://agentmods.dev/skills/leopu00/job-hunter-team/format-time"><img src="https://agentmods.dev/badge/skills/leopu00/job-hunter-team/format-time/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/leopu00/job-hunter-team/format-time"><img src="https://agentmods.dev/badge/skills/leopu00/job-hunter-team/format-time.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00054 | $0.00764 |
| Opus 5 | $0.00027 | $0.00382 |
| Sonnet 5 | $0.00011 | $0.00153 |
| Haiku 4.5 | $0.00005 | $0.00076 |
Grade A, and why
format-time scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 81 lines — stays where its author put it; the contents beside it link to each section on GitHub.
format-time — UTC → user timezone in user-facing output
Bug #15: the container runs in UTC, the user lives in CEST/CET. Without
conversion every "reset at 03:11" in chat or charts forces the user to
do +2 in their head — and sometimes the user says "qui sono le
3:21" and the Capitano has to scramble for the conversion.
When to use
Apply it whenever you produce a timestamp the user will read:
- Telegram messages from any agent (Capitano, Assistente, Mentor)
- Matplotlib chart subtitles, x-tick labels, legends
- Dashboard widgets that show time
- Log lines or summaries returned to the user
Skip when:
- Writing internal log files (
messages.jsonl,sentinel-data.jsonl,dottore-actions.jsonl) — they stay UTC ISO for cross-agent parsing. - Writing DB columns — keep UTC ISO so the dashboard can format on render.
- Computing intervals / deltas — work in UTC, format only at the edges.
How to use
from shared.skills.format_time import fmt_user, fmt_user_with_utc
from datetime import datetime, timezone
now = datetime.now(timezone.utc)
print(fmt_user(now)) # "03:21 CEST"
print(fmt_user_with_utc(now)) # "03:21 CEST (01:21 UTC)"
Or, from bash:
python3 /app/shared/skills/format_time.py --now
python3 /app/shared/skills/format_time.py --iso 2026-05-17T01:14:00Z --with-utc
When to show both user-time and UTC
In operational charts that an oncall engineer (or you, debugging)
might read alongside the team's UTC logs, prefer fmt_user_with_utc
so both are visible:
"Now 03:21 CEST (01:21 UTC) — usage 63% — proj 92.2%"
In plain Telegram chat to the user, fmt_user alone is usually
enough:
"📅 Reset finestra 5h alle 05:11 CEST (~1h 50m)."
Where the user timezone comes from
candidate_profile.yml::timezone (IANA name, e.g. Europe/Rome).
Default Europe/Rome if missing — covers ~95% of beta users. To
override per session: JHT_USER_TZ env var (read by the helper).
Anti-patterns
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 81 lines · 54 tokens per session scan A 4d9ef18cf674
format-time is a skill published in the GitHub repository leopu00/job-hunter-team (49 stars, last pushed yesterday), licensed MIT. It adds 54 tokens to every session and 764 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
vs-item-onboarding
Match the language of the user's most recent message in every line of prose you write — confirmation prompts, status notes, hand-off summaries, questions, error explanations, and any internal thinking / reasoning / planning output that the host may surface (e.g. blocks, "thinking" panels, scratchpad notes, todo…
i18n-check
Finds the three ways translations silently rot: a key added to the default locale but never copied to the others (missing), a key copied but never translated (still reads identical to the source), and a key left behind in one locale after being renamed or removed from the default (orphan). Also catches new UI copy…
bazarr
This skill should be used when the user wants to manage subtitles in Bazarr. Triggers include: "missing subtitles", "wanted subtitles", "search subtitles", "download subtitles", "subtitle providers", "Bazarr status", "is Bazarr running", "what subtitles are missing", "find subtitles for", or any mention of subtitle…
gws-modelarmor
Google Model Armor: Filter user-generated content for safety.
persona-team-lead
Lead a team — run standups, coordinate tasks, and communicate.
recipe-save-email-attachments
Find Gmail messages with attachments and save them to a Google Drive folder.