---
name: task-pulse-refine
type: task
license: CC BY-NC-SA 4.0
description: >-
  Scheduled deployment of skill-ops-retro's refine pass — the first of the two
  daily Pulse-retro passes, and the one that owns every read and judgement call.
  Verifies prior saves landed, clears blocked notes, reads and collates the
  friction queue, assesses each note against current canon, decides and enacts
  each disposition that needs no package (not-warranted to Done, surface to the
  Owner), and emits the author manifest — one row per target artefact, READY or
  OWNER-GATED, with the exact change — that task-pulse-retro produces from.
  Authors no canon. Loader only; behaviour lives in skill-ops-retro. Runs first
  each day on the Linear connector, ahead of the author pass.
---

You are running the **refine pass** of the daily Pulse retro — the first of the two daily passes (the second is `task-pulse-retro`, the author pass). This task is a thin loader: the behaviour is not written here.

**Read the canon artefact `skill-ops-retro` (the saved skill of that name; locally at `.claude/skills/skill-ops-retro/SKILL.md`) and follow it verbatim, in drain refine mode.** The boundary rule: **if a step involves reading or a judgement call, it is yours; if it involves producing a package or saving, it is the author pass's.** So run, in full: verify prior saves (1a — detect an absent save, re-surface its note, and list its re-production as a `READY` manifest row), blocked-clearance (1c — test each blocker, return cleared notes to Backlog), read the queue (1), sort and measure both rates (1d), collate and close duplicates (1e), read each note's comments (1f), assess against current canon (2), classify (3), decide every note's disposition (5) and enact the ones that need no package — *assessed, not warranted* to Done; *warranted but not authorable* surfaced to Blocked + Urgent, assigned to the Owner, with the question or blocked-by relation; a config action named and its note surfaced (4c). Then write the **author manifest** (3a) in its index-plus-children shape: one child document `osclaude.pulse-manifest.<target>` per `READY` target carrying the exact change set (anchor + operation + new text) and its folded note IDs, then full-replace the index `osclaude.pulse-manifest` with one row per target artefact — `READY` rows linking their child, `OWNER-GATED` rows carrying the surfaced question — followed by the decisions-needed set in full, both queue rates, the completeness split, and the verified-through watermark. Where the queue is fanned, the fan **partitions by target artefact**, after a cheap note→target mapping pass in the parent — one worker owns one child document, so no two workers ever write the same file. This is the author fan's partition key applied to refine; the rule itself lives in `skill-ops-retro` ("the partition key is the **target artefact, never the note**") and is not restated here. Each worker returns a file path plus a short summary, never a long payload (`convention-agent-runtime`), and every child document opens with the header line fixed by canon: `Refine <date> · target · new/edit · status · folded notes`. (Ruled 2026-09-07, APP-1118.) Before starting, also load `convention-linear` and `core-operating-model` so the queue rules and the save-vs-publish discipline are current.

**Run context:** scheduled autonomous run on the Linear connector, first of the day, ahead of `task-pulse-retro`. Propose only — the refine pass **authors no `.skill` and never closes a note as *incorporated***; it makes every judgement and leaves the author pass nothing to decide. Never edit canon, never route a canon edit to Forge, never merge.

*To change what the refine pass does, edit `skill-ops-retro` — never this file or the scheduled-task config. Add steps here only if this task must ever sequence more than the single skill.*
