with one click
track-estimate
Manually log a time estimate.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Manually log a time estimate.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Deploy or share generated HQ artifacts through hq-deploy.
Mark a company as HQ Pro cloud-backed and sync its team setup.
Send HQ Sync direct messages, prompts, details, or scheduled notes to teammates.
Run a full bidirectional sync for cloud-backed HQ companies.
Scaffold a new HQ company AND optionally take it all the way to operational — business-discovery interview, seeded knowledge/workers/skills/projects, brand design packs (generated from website/PDF/Drive and bound to deploys via policy), connected integrations, org groups + ACL rules, teammate invites, and optional cloud agents.
Resolve HQ Sync conflicts by choosing local, cloud, or discard.
| name | track-estimate |
| description | Manually log a time estimate. |
| allowed-tools | Bash, Read, Edit |
Append a time estimate to workspace/estimate-log/log.jsonl. Use this when:
task description to a freshly-captured estimateInput: $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"Parse arguments
30m, 1-2h, 2 days, ~5min, etc.)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×)1-2h: min_minutes=60, max_minutes=120, expected_minutes=90Categorize
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.
Generate ID
est_<sha1(session_id + iso_ts + task)[0..10]> — same format as auto-capture.
Append entry to log
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.
Report
Tracked: <task>
ID: est_...
Estimate: <human-readable> (<expected_minutes> min, range <min>-<max>)
Category: <category>
When done, run: /finish-estimate <id> <actual-duration>
session_id is set to "manual" to distinguish manual entries from auto-captured ones in /calibration-report./finish-estimate — close it with the actual time/calibration-report — see estimate accuracy