Finish
Skill bricerising/enterprise-software-playbook/skills/finish
Run a final "definition of done" check before shipping: verify correctness, tighten contracts/docs, and produce a change summary. Use at the end of non-trivial work to confirm nothing was missed before merge/release. NOT for writing tests (use testing); NOT for adversarial code review (use review); NOT for initial planning (use plan).From its SKILL.md
npx -y skills add bricerising/enterprise-software-playbook --skill finishAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 3 commands, including `archobs report --suggestions-provider rules` and 2 more.
SKILL.md
7.8 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Finish
Overview
Turn “it works on my machine” into “this is ready to ship” by running verification, checking boundary discipline, and reporting changes in a consistent format.
Chooser (What To Verify By Change Type)
- Tiny change (typo, copy, rename): lint/format + typecheck. No spec/contract check needed.
- Normal change (behavior/feature): unit tests + typecheck + lint + boundary spot-check (resilience/security/observability where touched) + cleanup.
- Big change (cross-service, migration): full verification (tests + typecheck + lint + build + dependency scan) + spec/contract alignment check + executive + engineer packets.
- Refactor (no behavior change): characterization tests pass before and after + typecheck + lint. No new spec artifacts unless contracts changed.
- Security-sensitive change: add security spot-check (authn/authz, input validation, safe logging) even for normal scope.
Inputs / Outputs
Inputs: All prior skill outputs from the current workflow; verification commands (tests, typecheck, lint, build); archobs baseline (for regression check). Outputs: Executive packet (decision bandwidth), engineer packet (implementation bandwidth), learning loop. Terminal skill — nothing consumes its output downstream.
Workflow
- Re-check intent artifacts:
- if contracts/semantics changed: specs/contracts are updated (
spec) - if shared primitives were added/changed: API surface + adoption notes are clear (
platform) - for non-trivial work: objective function, measurement ladder, and kill criteria are documented
- if 2+ viable approaches existed: decision table includes assumptions (facts vs assumptions) and opportunity costs
- if contracts/semantics changed: specs/contracts are updated (
- Run verification (prefer narrow → broad):
- unit tests / focused tests
- typecheck
- lint/format (if configured)
- dependency/security scan (if configured)
- build (if relevant)
- Boundary discipline spot-check (only where the change touched boundaries):
- timeouts/cancellation/retry safety (
resilience) - authn/authz + input validation + safe logging (
security) - logs/traces/metrics correlation + low-cardinality labels (
observability) - architecture health regression (skip for tiny changes — typo, copy, single-file rename): run
archobs report --suggestions-provider rulesand wait for the report to complete — then runarchobs show summary --format jsonandarchobs show risks --top 5 --format jsonto verify that top file risk scores and cluster leakage did not increase compared to the previous run; if no prior.archobs/baseline exists, create one now so future runs can detect regressions (archobs)
- timeouts/cancellation/retry safety (
- Cleanup:
- remove dead code, debug logs, commented-out blocks
- ensure errors are actionable and don’t leak secrets/PII
- update quickstarts or runbooks if needed
GATE: Verification (step 2) must have actually been executed — commands run with results captured. "Tests pass" without showing which commands ran and their output does not satisfy this gate. If verification could not be run, report "not run" and why.
- Translation check:
- write an executive packet (decision bandwidth)
- write an engineer packet (implementation bandwidth)
- use clear framing: recommendation, evidence, remaining risks, and explicit owner/date for next action (this is sufficient for most cases)
- for formal hand-offs needing extra rigor (multi-stakeholder PRs, ADR recommendations), optionally use Recommendation Brief from
../references/structured-thinking-templates.md
- Micro-retrospective (non-trivial work):
- what happened vs what was expected?
- key assumption confirmed or updated (one sentence — always include this, even when expectations were met)
- if expectations diverged (rollback, incident, surprise scope, or assumption failure):
- what one process/control change would reduce repeat risk? (flag for human to assign owner)
- if divergence is significant, flag a follow-up using the Retrospective / Postmortem template (
../references/structured-thinking-templates.md) — do not run it inline during the finish pass
Minimum viable execution
When context or time is constrained, these are the load-bearing steps:
- Run verification commands (step 2) — tests, typecheck, lint at minimum.
- Boundary spot-check (step 3) — only where the change touched boundaries.
- Write engineer packet (step 5) — what changed, files touched, verification results.
- Key assumption update (step 6) — one sentence: confirmed or updated.
Steps that can be cut under pressure: executive packet (step 5), archobs regression check (step 3), full micro-retrospective (step 6 depth).
Guardrails
- Don’t claim verification you didn’t run; report “not run” and why.
- Prefer explicit commands and outputs over vague statements (“tests passed”).
- Don’t expand scope; if you find unrelated issues, list as follow-ups.
- Close the loop for non-trivial work: include at least one explicit learning update and flag owner assignment for human review.
Common failure modes
- Reports "all tests pass" without actually running them — or runs tests but doesn't capture the output.
- Skips the micro-retrospective (step 6) — the learning loop is the most commonly skipped step, but it's what prevents repeat failures.
- Produces an engineer packet without an executive packet for non-trivial changes — the decision-maker audience is left uninformed.
- Doesn't check whether archobs health regressed — new coupling or increased leakage goes undetected.
References
- Architecture health regression checks:
archobs - CI quality workflow template:
../../specs/templates/ci/github-actions-quality.yml - Change workflow:
../../specs/004-change-process.md - Structured-thinking references (learning loop, retrospective, recommendation brief):
../references/
Output Template
Return:
- Executive packet (non-trivial changes):
- goal and decision/bet
- primary trade-off and risk
- success/failure signals + review ritual owner/cadence
- kill criteria / reversal trigger
- immediate next step
- Engineer packet:
- what changed (3–7 bullets; behavior + contract impact)
- files touched (key paths only)
- verification (commands run + results, or why not run)
- risks/follow-ups (including rollout watchpoints)
- Learning loop (non-trivial changes):
- outcome vs expectation
- key assumption confirmed or updated (always — even when expectations were met)
- one process/control change to reduce repeat risk (only when expectations diverged; flag for human to assign owner)
- Examples:
- Good: "Assumption: Redis cache would reduce p99 by 40%. Confirmed: p99 dropped 38%. No action needed."
- Good: "Assumption: existing auth middleware handles multi-tenant isolation. Updated: it doesn't check tenant on write paths. Action: add tenant-scoped write guard (owner: @backend-team, by 03-01)."
- Bad: "Things went as expected. No changes."
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.
Gives 0 of the 12 instructions most quality gates skills give in ~1.6k tokens
Counted across 1,524 of the 2,830 authors here whose files we hold, read 2026-09-06
- Read full output and check exit codein 45 of 1524, across 40 files
- Verify output confirms the claimin 44 of 1524, across 39 files
- Identify the command that proves the claimin 43 of 1524, across 39 files
- Execute the full verification commandin 36 of 1524, across 30 files
- Produce a verification reportin 34 of 1524, across 18 files
- Review git diff changesin 30 of 1524, across 16 files
- Fix build failures immediatelyin 29 of 1524, across 9 files
- Group findings by severityin 28 of 1524
- State claim only with evidencein 27 of 1524, across 22 files
- Verify regression tests with red-green cyclein 26 of 1524, across 22 files
- Run the full test suitein 26 of 1524, across 25 files
- Run test suite with coveragein 25 of 1524, across 10 files
Said here and by no other author read
- update specs and contracts if semantics changed
- spot check boundary discipline for touched areas
- write an executive packet for non-trivial changes
- write an engineer packet detailing changes and verification
- document key assumption confirmation or updates
- flag process improvements if expectations diverged
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.