timer
Skill1 starsChanged 14 days agoMITView on GitHub
Work timer. Never deliver before the timer stops; deliver only when both the user's requirements and the timer condition are met. If requirements are met but time remains, keep reviewing and improving; if the timer is up but requirements are unmet, keep working on the requirements.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- jholhewres/devclaw-skillstheir own version, first seen Oct 9, 2026
- njt2810/claude-code-frameworktheir own version, first seen Sep 10, 2026
Other versions2 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 2
- jholhewres/devclaw-skills★ 4same name
- njt2810/claude-code-framework★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Principle: Do not deliver work while the timer is running.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Work Timer
Principle: Do not deliver work while the timer is running. Deliver only when the user's requirements AND the timer condition are both satisfied. Requirements met but time remains → keep reviewing and improving. Timer elapsed but requirements unmet → keep working on the requirements.
While the timer is running
- ⛔ NEVER idle to satisfy the timer: do not
sleep, poll, or wait out the clock. The timer is a floor on effort, not a clock to burn down. If it has not stopped, spend the remaining time pushing the work forward. - ✅ MUST spend the remaining time on a real review pass (when requirements are met but time remains). One pass means:
- Re-read sentence by sentence: split the user's request into checkable sub-tasks and confirm each one maps to a finished task.
- Re-check the semantics: does what you built match what the user actually meant, not just what they literally said?
- Hunt for bugs: re-read the diff, re-run the tests, find the case you did not cover.
- Probe edge cases and generalization: does it still hold on a different input, a different environment, a different instance? Is anything hardcoded that should be a parameter?
- 🔄 While the timer runs: grill → measure → optimize → repeat.
- ⛔ Enumerated prohibitions: no
sleep; no background/timer job whose only job is to wait; no ending the turn or stopping the API call to "come back later"; no idling to burn the clock; even a 0 mssleep/Start-Sleeptoken is a violation. No off/reset to dodge the gate. Not knowing the next step is the grill signal — attack an assumption, never wait. - 🎯 Metrics: if the user gave metrics, turn each into a measurable check + baseline (vague goals → a measurable proxy that still traces to them). If none, decompose the user's original request from first principles into 2–4 measurable proxies (desired outcome, failure boundary, cost) and adopt them. Every metric must trace to the user's request (a direct refinement of a user metric counts); if a proxy improves while the request gets worse, the proxy is wrong.
- Loop: pick the claim most likely to fail a metric (local or global) → write the rejection and the observation that would prove it → observe → re-derive the goal without the current solution's vocabulary and diff → predict the point's metric delta (or which case flips) → implement → measure → keep only a verified gain (checkpoint first; revert else; log claim → evidence → baseline→final).
- 🔁 Repeat until
timer.satisfied: if a pass moves no metric, tighten the measurement (stricter check, more inputs, adversarial cases) or re-derive the proxy set from the request — never invent a metric the request does not support; once the user's metrics all pass, verifiable hardening is the honest next move. No early stop, no fake pass.
- ⛔ Enumerated prohibitions: no
- 🚦 Delivery gate (overrides any conflict above):
timer.satisfiedis true; every kept change has a measured baseline→final delta; no sleep/background-wait/stop-and-resume was used. Deliver the best measured version + the baseline→final metric table + what changed and why.
Usage
PY="${PYTHON:-python}"; "$PY" --version >/dev/null 2>&1 || PY="python3"
"$PY" -I "<SKILL_DIR>/scripts/clock.py" now [--json]
"$PY" -I "<SKILL_DIR>/scripts/clock.py" set "<SPEC>" [--json]
"$PY" -I "<SKILL_DIR>/scripts/clock.py" set off⚠️ WATCH — interpreter: python3 is a broken stub in some Windows setups; if the first line above falls through, point PYTHON at the real interpreter (PYTHON=/path/to/python.exe). Never hardcode a machine-specific absolute path into this file.
| SPEC | Example | Meaning |
| Minimum work time | 20m 1h30m 90s | Must work at least this long, starting now |
| Deadline | until 18:00 until 18:00 tomorrow | Must work until this clock time |
timer.satisfied in now --json reports whether the timer condition is met. State is per-session; --name keeps several timers side by side.
State is keyed by the harness session id (CLAUDE_CODE_SESSION_ID, DSH_SESSION_ID, any *_SESSION_ID); without one it falls back to a shared global key, so give each task a distinct --name there. It lives outside the skill directory (%LOCALAPPDATA%/dsh-skill-timer, $XDG_STATE_HOME/dsh-skill-timer on POSIX, override with DSH_TIMER_STATE) and entries older than 14 days are pruned.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

