Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Track Estimate

ASecurity

Manually log a time estimate.

85 stars
0 votes
0 copies
1 views
Added 9/19/2026
toolsgobash

Works with

cli

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add indigoai-us/hq-core --skill track-estimate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Track Estimate?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Track Estimate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/indigoai-us-track-estimate/badge)](https://www.skillsdirectory.com/skills/indigoai-us-track-estimate)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: track-estimate
description: Manually log a time estimate.
allowed-tools: Bash, Read, Edit
---

# /track-estimate - Manual Estimate Capture

Append a time estimate to `workspace/estimate-log/log.jsonl`. Use this when:
- The auto-capture hook missed something (vague phrasing, deeply nested in a code block, etc.)
- You want to attach a structured `task` description to a freshly-captured estimate
- The estimate is being made conversationally before any assistant message has logged it

**Input:** $ARGUMENTS

The argument should be a free-form phrase containing both a task description and a duration. Examples:
- `"port resolve-conflicts skill to hq-core-staging" "1-2h"`
- `"npm release of hq-cloud@5.7.1, including verification" "30m"`
- `"HQ Desktop App Tauri build + sign + notarize" "10-30m"`

## Steps

1. **Parse arguments**
   - Extract the duration token (`30m`, `1-2h`, `2 days`, `~5min`, etc.)
   - Treat everything else as the task description
   - Fall back to interactive prompts if either is missing

2. **Normalize duration**
   Use the same logic as `parse-estimates.pl`:
   - `m` / `min` / `minutes` → minutes (1×)
   - `h` / `hr` / `hours` → minutes (60×)
   - `d` / `day` / `days` → minutes (480× — 8-hour workday)
   - `s` / `sec` → minutes (1/60×)
   - Ranges like `1-2h`: `min_minutes=60, max_minutes=120, expected_minutes=90`

3. **Categorize**
   Run the same keyword classifier from `parse-estimates.pl` against the task description. If unclear, ask the user to confirm or pick from: `release`, `pr`, `build`, `deploy`, `tauri`, `infra`, `script`, `refactor`, `docs`, `debug`, `cli`, `unknown`.

4. **Generate ID**
   `est_<sha1(session_id + iso_ts + task)[0..10]>` — same format as auto-capture.

5. **Append entry to log**
   ```bash
   cat >> workspace/estimate-log/log.jsonl <<EOF
   {"id":"est_...","timestamp":"...","session_id":"manual","message_uuid":"manual-<short>","offset":0,"raw":"<duration token>","kind":"estimate","min_minutes":...,"max_minutes":...,"expected_minutes":...,"category":"...","surrounding":"<task>","status":"pending","task":"<task>"}
   EOF
   ```

   Field order should match canonical (alphabetical) so it sorts identically to auto-capture entries.

6. **Report**
   ```
   Tracked: <task>
   ID: est_...
   Estimate: <human-readable> (<expected_minutes> min, range <min>-<max>)
   Category: <category>

   When done, run: /finish-estimate <id> <actual-duration>
   ```

## Notes

- This command is the escape hatch for the auto-capture hook. Most estimates should land via the Stop hook automatically; this is for the cases the hook misses.
- The `session_id` is set to `"manual"` to distinguish manual entries from auto-captured ones in `/calibration-report`.
- If the user provides only a duration with no task, prompt for the task — never log an estimate without context.

## See also

- `/finish-estimate` — close it with the actual time
- `/calibration-report` — see estimate accuracy

Attribution

indigoai-usindigoai-us
View sourceMore from indigoai-us →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

ucoz-landing-skill

Playbook for creating and editing uCoz landing pages via MCP tools (`templates_tool`, `ftp_tool`, `modules_tool`). Use for tasks such as: "build a landing page", "update the homepage as a landing page", "create a promo page on the homepage", "add a lead form / menu / SEO to the homepage". Homepage: `page_list`, `page_get`; first publish — `page_update` with full `page_tmpl`; HTML edits after generation — `patch_template` (module_id=2, template_id=1), not `update_template`. Activate the mail f...

107 votes

Paperclip

Interact with the Paperclip control plane API for task coordination and governance. Use when checking assignments, updating issue status, posting comments, delegating work, managing routines, or calling Paperclip API endpoints.

805541 votes

Daw Music

Digital Audio Workstation usage, music composition, interactive music systems, and game audio implementation for immersive soundscapes.

761 votes

Instantly Rdsthomas Mission Control

Instantly.ai cold email outreach API - manage campaigns, leads, accounts, and analytics. Use for cold email automation, lead management, campaign creation/monitoring, and email account warmup.

761 votes

Caveman Compress

Compress natural language memory files (CLAUDE.md, todos, preferences) into caveman format to save input tokens. Preserves all technical substance, code, URLs, and structure. Compressed version overwrites the original file. Human-readable backup saved as FILE.original.md. Trigger: /caveman-compress FILEPATH or "compress memory file"

1066600 votes
View all in tools →