Skip to content
cccskills
FreePublished on GitHub

finish-estimate

Mark a pending time estimate complete with actual duration.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90 stars(GitHub 90 + cccskills 0)

Run score Not tested

See how to install

Files included (2)

  • SKILL.md3.3 KB
  • agents/openai.yaml131 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

/finish-estimate - Record Actual Time

Look up an estimate by ID (or grab the most-recent pending) and fill in the actual elapsed time, ratio, and verdict.

Input: $ARGUMENTS

Examples:

  • latest 10m — close out the most-recently-logged pending estimate with 10 minutes
  • est_f43cca6aa1 1h — close out a specific estimate
  • latest 45m "Tauri sign step took longer than expected" — with a note

Steps

  1. Parse arguments

    • First token: estimate ID (est_*) or literal latest
    • Second token: actual duration in same format as /track-estimate (10m, 1.5h, 2d)
    • Remaining (optional): notes string
  2. Resolve target entry

    • If latest: read workspace/estimate-log/log.jsonl, find the most-recent entry with kind == "estimate" AND status == "pending". Take its id.
    • Else: search for the line where id == <provided>.
    • If no match, abort with a clear message.
  3. Normalize actual duration Same parser as /track-estimate. Compute actual_minutes (single value, not a range — actuals are point measurements).

  4. Compute verdict

    ratio = actual_minutes / expected_minutes
    verdict = "under" if ratio < 0.8
            | "on"    if 0.8 <= ratio <= 1.2
            | "over"  if ratio > 1.2
    
  5. Rewrite the entry's line in log.jsonl

    • Read the file line by line.
    • For the matched line, parse the JSON, add fields:
      • actual_minutes
      • actual_at (current ISO timestamp)
      • ratio
      • verdict
      • status: "completed"
      • notes if provided
    • Re-emit with canonical (alphabetical) key order.
    • Write back the full file (atomic via temp + rename).
  6. Report

    ID: <id>
    Task: <task-or-surrounding-truncated>
    Estimate: <expected> min (range <min>-<max>)
    Actual:   <actual> min
    Ratio:    <ratio> ({factor}x {over/under/on})
    Category: <category>
    

    Where factor:

    • over: round(ratio, 1) — e.g. 2.4x over
    • under: round(1/ratio, 1) — e.g. 3.0x under
    • on: ±X% — e.g. +12%

Implementation hint

Use jq for the in-place rewrite. Atomic pattern:

LOG=workspace/estimate-log/log.jsonl
TMP=$(mktemp)
jq -c --arg id "$ID" --argjson actual "$ACTUAL_MINUTES" --arg ts "$NOW_ISO" --arg verdict "$VERDICT" --argjson ratio "$RATIO" --arg notes "$NOTES" '
  if .id == $id then
    . + {actual_minutes: $actual, actual_at: $ts, ratio: $ratio, verdict: $verdict, status: "completed"}
    + (if $notes != "" then {notes: $notes} else {} end)
  else . end
' "$LOG" > "$TMP" && mv "$TMP" "$LOG"

jq -c keeps it as JSONL. Field order may shift after the merge; that's fine — the dedup grep doesn't depend on order.

Notes

  • Once status: "completed", an entry won't be re-processed by latest — so it's safe to run repeatedly.
  • If you mistyped the actual, just run again with the correct value — the rewrite is idempotent.
  • Don't worry about precise wall-clock timing. The signal we want is "ratio order of magnitude" (2x, 5x, 0.5x), not minutes-of-minutes precision.

See also

  • /calibration-report — review accuracy across estimates
  • /track-estimate — start a new one

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

accept

Free

Accept HQ membership invites from a magic link or raw token.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90Updated Oct 26, 2026

adr

Free

Capture qualifying architecture decisions as ADRs in the right HQ or repo location.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90Updated Oct 26, 2026

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90Updated Oct 26, 2026

Find shallow modules and propose deepening refactors, ranked with file refs; never edits code. Use when code is hard to change or planning a refactor.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90Updated Oct 26, 2026

Generate dark ASCII banner graphics for HQ and social launch assets.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90Updated Oct 26, 2026

Compare approaches to best-in-class prior art, merge existing work, verify cruft removal, and recommend the most durable design before PRD work.

The English summary is being prepared. Showing the original description.

indigoai-us/hq-core90Updated Oct 26, 2026

See all skills by indigoai-us

Report a problem with this skill