Skip to content
Back to skills

Compound Estimate

ASecurity

Write a compound-log entry for a just-shipped ticket. This is the Phase 1 exit gate for AI-native estimation: without this closer, cost/wall-time signals never feed future estimates and the calibration loop stays open. All mechanical work delegates to this skill's `scripts/compound-log.sh` — your job is collecting the three human-authored inputs and invoking it. **Paths.** Commands below name files inside this skill's own directory as `${CLAUDE_SKILL_DIR}/…`. Claude Code fills that in. On any...

  • 20 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsgobashtestinggit

Works with

  • claude code
  • terminal

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add coalesce-labs/catalyst --skill compound-estimate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Compound Estimate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Compound Estimate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/coalesce-labs-compound-estimate/badge)](https://www.skillsdirectory.com/skills/coalesce-labs-compound-estimate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: compound-estimate
description:
  "Closing ritual for the AI-native estimation feedback loop. **ALWAYS use when** a ticket's PR
  has merged and merge-pr's post-merge deploy-verification (CTL-2232) has resolved a terminal
  sentinel for it — the relay-native trigger this skill now shares with `ticket-retro` and
  `ticket-compound`, see references/trigger.md (CTL-2244) — or when the user says
  'compound-estimate', 'close the estimation loop', 'record actuals', 'compound-log', or wants to
  log post-merge actuals for a shipped Linear ticket. Writes a structured entry (linear.key, pr_number, merged_at,
  estimate_at_start, estimate_actual, cost_usd, wall_time_hours, what_worked, what_surprised_me)
  to thoughts/shared/retros/estimate/YYYY-WW-compound-log.md — one file per ISO week, appends."
disable-model-invocation: false
allowed-tools: Bash(gh *), Bash(linearis *), Bash(jq *), Bash(git *), Bash(${CLAUDE_SKILL_DIR}/scripts/compound-log.sh *), Read, Write
version: 1.1.0
---

# Compound Estimate — Closing Ritual at PR Merge

Write a compound-log entry for a just-shipped ticket. This is the Phase 1 exit gate for AI-native estimation: without this closer, cost/wall-time signals never feed future estimates and the calibration loop stays open. All mechanical work delegates to this skill's `scripts/compound-log.sh` — your job is collecting the three human-authored inputs and invoking it.

**Paths.** Commands below name files inside this skill's own directory as `${CLAUDE_SKILL_DIR}/…`. Claude Code fills that in. On any other harness, set CLAUDE_SKILL_DIR to the absolute directory that contains this SKILL.md before running them. If you cannot, stop and report `skill_dir_unresolved`.

## Invocation

```
/compound-estimate <TICKET-ID>
```

`<TICKET-ID>` is required unless it can be detected from the current branch name (`gh pr view --json headRefName` → parse the ticket prefix).

## Load on demand

| when | read |
| -- | -- |
| resolving the ticket, collecting the three inputs, invoking the helper, reporting back | `references/process.md` |
| where `estimate_at_start` and `cost_usd` actually come from today | `references/data-source.md` |
| the opportunistic corpus refresh, flags, entry schema, testing, troubleshooting | `references/corpus-refresh.md` |
| what fires this skill now, and why the daemon-era `phase-monitor-merge` path is gone | `references/trigger.md` |

## Invariants

- **Don't skip the re-score.** `estimate_actual` is the calibration signal; ask for it even when the ticket felt routine.
- **Reads → the replica** (via the helper's `linear_read_ticket`, gated by cloud-detection); **writes → `linearis`**. See `references/data-source.md`.
- **A refresh failure never fails the ritual** — the corpus refresh in `references/corpus-refresh.md` is best-effort, off the critical path.
- **Trigger: merge-pr's post-merge deploy-verification signal (CTL-2232), not `phase-monitor-merge`.** This skill no longer depends on the retiring daemon-era `phase-monitor-merge` phase agent to fire — see `references/trigger.md` for the full contract (CTL-2244).

## Output

Appends an entry to `thoughts/shared/retros/estimate/YYYY-WW-compound-log.md` (creating the weekly file if needed). Weeks are ISO-8601, derived from the PR's `mergedAt`, not today's date.

## Related

- Spec/plan: `thoughts/shared/research/2026-04-24-CTL-159-compound-closing-ritual.md`,
  `thoughts/shared/plans/2026-04-24-CTL-159-compound-closing-ritual.md`
- Consumers: `compound-log.sh read`/`aggregate` → `refresh-corpus.sh` feeds `estimate_actual` into
  `reference-class-corpus.json`; `/catalyst-dev:ticket-retro` reads the weekly files for the estimation-calibration summary.

Files in this skill

  • SKILL.md3.5 KB
  • references/corpus-refresh.md3.4 KB
  • references/data-source.md2.2 KB
  • references/process.md2.3 KB
  • references/trigger.md3.7 KB

Attribution

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

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.