← ClaudeAtlas

tracklisted

Console-native billable hours tracker. Routes /track:start, /track:stop, /track:pause, /track:resume, /track:status, /track:report to a bash dispatcher that maintains a git-versioned JSONL ledger under ~/.time-tracker/. Use whenever the user invokes one of those slash commands. The skill itself does no time arithmetic, file I/O, or git work — the dispatcher does all of that. The skill's job is to construct the correct Bash invocation — for /track:start, /track:stop, /track:pause, and /track:resume, split optional --at/--ago flags from the positional client name (start). For /track:stop the user's note must be piped through stdin rather than passed as an argument (so shell metacharacters in the note cannot be interpreted). /track:pause and /track:resume take no positional args.
mvdmakesthings/skills · ★ 0 · Data & Documents · score 65
Install: claude install-skill mvdmakesthings/skills
# track skill This skill is the safe-invocation wrapper around `bin/track.sh`. Its sole job is to translate one of the `/track:*` slash commands into a `Bash` tool invocation that runs the dispatcher correctly. All ledger logic, locking, atomic writes, git commits, jq math, and error messages live in `bin/track.sh` — do not reimplement any of that here. ## Locating the dispatcher The dispatcher lives at `${CLAUDE_PLUGIN_ROOT}/bin/track.sh`. If `$CLAUDE_PLUGIN_ROOT` is unset, fall back to the absolute path inferred from the SKILL.md location: `<plugin root>/bin/track.sh` where the plugin root is the parent of `skills/track/`. Either path resolves to the same script. ## Invocation patterns For each subcommand, run the Bash tool with the exact command shape below. Do NOT add extra flags, do NOT pre-process arguments, do NOT interpret the output — print whatever the dispatcher prints, verbatim. ### /track:start User invocation: `/track:start <client> [--at HH:MM | --ago <duration>]` (with `$ARGUMENTS` containing the client name and optional backdating flag) Bash invocation: ``` bash "${CLAUDE_PLUGIN_ROOT}/bin/track.sh" start $ARGUMENTS ``` The `<client>` argument is constrained by the dispatcher to alphanumeric + dash + underscore characters. The optional flags are also dispatcher-validated (`--at` requires `HH:MM`, `--ago` requires `<Nh><Nm><Ns>` like `30m`, `1h30m`, `90s`). Both are safe to pass positionally. **Backdating flag-parsing rule:** if `$ARGUMENTS` contains