agentsclimarketplace

Find wasted effort

Skill fusebase-dev/fusebase-flow/.agents/skills/find-wasted-effort

Use when the operator runs "/find-wasted-effort" or asks about "wasted effort", "ceremony overhead", "process overhead", "outcome-neutral steps", "are our gate stops worth it", "is the Full lane overkill here", or wants the process-per-outcome sibling of /token-waste-audit. Audits Flow ARTIFACTS ON DISK (gate reports, deploy reports, handoffs, approval artifacts, git log, prevents: annotations) for ceremony that bought no safety outcome — distinct axis from token-waste-audit (tokens-per-rule, from transcripts). Read-only to the project (Phase 1 + Phase 2A: writes only the gitignored state/audit/; Phase 2A adds proposal OUTPUT — a Proposed memory entries report section + optional state/audit/ JSON — but applies nothing; no prune / no overlay edits). Do NOT use for token/transcript economy (token-economy + /token-waste-audit own that), for execution-layer polling/record-then-read economics (smoke-testing § Verification cost discipline owns that), for doc budgets (documentation-budget owns that), or to auto-remove any ceremony element (pruning is PO-owned, never automatic, never this audit's job).From its SKILL.md

Install
npx -y skills add fusebase-dev/fusebase-flow --skill find-wasted-effort

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 8 stars8 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.

SKILL.md

10.8 KB, as published. Nobody here has run it

Find Wasted Effort (A2 — process-per-outcome ceremony audit)

The process-per-outcome ceremony audit — the sibling of the tokens-per-rule /token-waste-audit (FR-26). Different axis, different inputs, shared discipline.

/find-wasted-effort (this)/token-waste-audit (FR-26)
Axisprocess-per-outcome (ceremony)tokens-per-rule (consumption)
InputsFlow artifacts ON DISK: gate/deploy reports, handoffs, approval artifacts, git log, round structure, prevents: annotationsClaude Code transcripts (~/.claude/projects/.../*.jsonl)
Question"Which ceremony step bought no safety outcome?""Which tokens bought no information?"
Sharedcandidate/false-positive header · read-only-first posture · state/audit/<date>.md gitignored output(same)

It is not standalone-with-no-sibling. It reuses the shipped substrate — see flow-skills/token-economy/SKILL.md and hooks/local/token-waste-audit.py for the FP-header text, the read-only posture, and the state/audit/ output convention. Do not reinvent or duplicate token-waste-audit's detection.

Guardrail first (same floor as FR-21 / FR-26)

Ceremony drops, safety never. This audit flags ceremony that is outcome-neutral in the observed window — that is a review candidate, not a remove instruction. A clean window is not proof a control is worthless: a gate stop can be low-frequency/high-severity (catastrophic-low-frequency, policies/ratchet-governance.yml). Every finding states the contrary evidence that would dismiss it; absence of contrary evidence in a short window is inconclusive, never confirmed.

Read-only-to-the-project is load-bearing (D4)

The analyzer writes only inside the gitignored state/audit/ directory — NO memory writes, NO overlay/spec/decisions/provider/policy edits, NO prune/remove application. This holds in Phase 1 (read-only) AND Phase 2A (proposal-output): Phase 2A enriches the output (a Proposed memory entries report section + an optional gitignored state/audit/ proposals JSON) but applies NOTHING. The audit describes candidates and proposes changes a human could apply; the PO owns subtraction (A3 prune protocol). The actual memory write-apply is Phase 2B (DEFERRED, consumer-repo prototype, AC2b). If asked to "just remove the dead gate" or "apply the proposal," refuse: "Per the A2 read-only-to-the-project posture (D4), I surface review candidates and propose patches; removal/apply is Phase 2B + the PO's call via the policies/ratchet-governance.yml prune protocol."

Verdict vocabulary (every rule emits one)

VerdictMeaningRequires
confirmedthe waste signature held AND the required contrary evidence was searched for and not foundthe contrary-evidence search, stated
dismissedcontrary evidence found — the ceremony bought a real outcome (a gate that blocked, a control that fired, a deliberate exception)the contrary evidence, cited
inconclusivesignature present but the window is too small / ambiguous / a catastrophic-low-frequency controlwhy it can't be confirmed

The 6 active rules (rule 4 is CUT)

Per-rule input shapes, signatures, and false-positive examples: references/rule-signatures.md and references/false-positive-examples.md. Cite them; don't restate.

#RuleSignatureRequired contrary evidence (→ dismissed)
1Unused gate stopsN rounds where the gate approved every deviation, no deviation blockedANY blocked-gate counterexample in the window ⇒ dismissed (never suggest Middle eligibility for that class). Suggestion is eligibility for review, never auto-reclassify.
2Per-commit full-suite habitfull-suite runs ≫ 2/round with identical fail-sets each runa run whose fail-set DIFFERED (the suite caught a real regression mid-round) ⇒ dismissed for that round
3Artifact duplicationthe same rule/evidence block copied verbatim in ≥3 round artifactsintentional self-bootstrapping (handoff role-prelude, template scaffolding) ⇒ dismissed
4Context-rebuild overheadCUT — net-newalready shipped in /token-waste-audit's v3.21.0 cross-session aggregate. POINT at that report; do not re-implement the signature.
5Lane misclassificationsmall diff + zero design decisions but Full ceremony was runany design decision / risk surfaced in the round ⇒ dismissed. Ambiguous size/risk ⇒ inconclusive; never auto-reclassify a lane.
6Ratchet inventorya ceremony element with NO prevents: annotation (A3) AND no firing in the windowa prevents: annotation present, OR a firing in the window, ⇒ dismissed. catastrophic-low-frequency element on a clean window ⇒ inconclusive (expected to sit idle), never confirmed. Output = a review candidate, never "remove".
7Watch-vs-read waste (cross-session ceremony layer ONLY)cross-session ceremony where a later session re-watched/re-derived what an earlier session already recorded durablythe durable record was absent (a real observability gap, not waste) ⇒ dismissed. Scoped to the cross-session ceremony layer — do NOT duplicate FR-26's execution-layer record-then-read/polling signature (token-economy / smoke-testing own that).

Inputs (already on disk — read-only)

  • docs/specs/*/verification-gate.md, gate reports, deploy reports (docs/tmp/handoff/*, docs/handoff/*)
  • approval artifacts (state/approvals/*.json), git log (per-task/per-round commit shape)
  • round structure (change-notes docs/changes/*, future round-files)
  • prevents: annotations + policies/ratchet-governance.yml (A3 taxonomy + coverage map)

Output

  • Mode-A chat summary (totals + per-rule confirmed/dismissed/inconclusive + coverage + proposal count).
  • Gitignored report state/audit/find-wasted-effort-<date>.md carrying the FP header (reuse token-economy's), the per-rule findings, a coverage section naming which prevents:-annotated controls were in scope (D5 — silence is not safety), and (Phase 2A) a Proposed memory entries section.
  • Phase 2A (read-only-safe): a Proposed memory entries report section + an optional gitignored state/audit/find-wasted-effort-proposals-<date>.json sibling (skip with --no-proposals-json). Both live only under state/audit/.
  • NO writes beyond state/audit/ in any phase here: no memory, no overlay, no spec/decisions/provider/policy edits, no prune application. The write-apply is Phase 2B (DEFERRED, consumer-repo, AC2b).

Proposal schema (Phase 2A)

A proposal is a change a human could apply — the audit emits it, never applies it. Emitted from confirmed findings (rules 1,2,3,5,7) and rule-6 per-element review candidates; inconclusive/dismissed emit none.

FieldMeaning
proposal_idstable <rule>-<verdict-kind>-<hash> id (deterministic)
rulesource rule number
verdictconfirmed (rules 1,2,3,5,7) or prune_review_candidate (rule 6 — never an auto-prune)
raw_evidence_refspointers to raw on-disk artifacts — never a prior audit report/proposal (self-output quarantine)
target_kind / target_pathwhat / where a human could change (often an (operator decision))
exact_patchthe concrete change text a human could apply (description, not an applied diff)
operator_confirmation_requiredalways true
sourcealways "audit"

Self-output quarantine (Codex #5): the evidence collectors do NOT read state/audit/, so the audit can never cite its own prior output as evidence. Proposals cite only raw artifacts.

Coverage statement (mandatory in every report)

The report states its own coverage: which artifacts it read, which rules it could evaluate, and which ratchet-governance.yml coverage entries were in scope. An un-annotated control NOT in the coverage map is reported as coverage gap, not as safe.

Growth rule

A ceremony-waste pattern that recurs across audits and matches no rule above → add one rule row (with its required contrary evidence + an FP example in references/) via skill-authoring. Project-specific ceremony patterns stay in project docs/skills, not here.

Anti-patterns

  • Treating a finding as a verdict to act on — they are candidates; the PO prunes (A3), gated on FP fixtures (P2).
  • Confirming a catastrophic-low-frequency control as waste on a clean window — that inverts the guardrail.
  • Duplicating /token-waste-audit's execution-layer signatures (rule 4 cut; rule 7 scoped to cross-session ceremony) — different axis, no overlap.
  • Auto-reclassifying a lane or auto-removing a gate — out of scope in every phase of this skill.

Clean-room note

Original Fusebase Flow content. Designed after reviewing public AI coding workflow patterns; no third-party code, prompts, skill files, or hook scripts are copied. Reuses the in-repo token-economy substrate by reference. See docs/source-map.md.

Keep looking

Skills are one crate of 627,801. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.