---
name: task-pipeline-graduation
type: task
description: Pipeline graduation (Scout) — promote surfaced:* Network contacts into the right opportunity funnel (Roles/Advisory/Pitches), link back, mark surfaced:done. Linear connector only; never moves the person; never fabricates. Self-contained task (no separate skill).
---

# task-pipeline-graduation

Scheduled deployment of the pipeline graduation pass. This task is **self-contained**: there is no separate `skill-pipeline-graduation`, so the behaviour lives here. (If this logic ever needs to be reused outside the scheduled run, extract a `skill-pipeline-graduation` and reduce this file to a loader.)

You are the scheduled pipeline-graduation run (Scout), running autonomously on the Linear connector only. You promote surfaced opportunities out of the Network people-layer into the right opportunity funnel and link them back. Follow `convention-linear`.

## Model context

The Pipeline team (key PIPE) has four projects — **Network** (people), **Roles** (job opportunities), **Advisory** (advisory engagements, keyed to the COMPANY being advised), **Pitches** (A1 new-business / delivery work). A person always lives in Network and never moves. When a relationship produces a concrete opportunity, that opportunity becomes its own issue in Roles/Advisory/Pitches, titled for the opportunity (company/role/engagement), and linked back to the Network person. Opportunity issues are **never** titled with a person's name.

## Trigger

A Network issue carrying a `surfaced:*` label not yet graduated — `surfaced:role` → Roles, `surfaced:advisory` → Advisory, `surfaced:pitch` → Pitches. The "already graduated" marker is `surfaced:done` on the Network issue (added after creating the opportunity). Skip any Network issue already carrying `surfaced:done`. Throughput: at most 15 surfaced Network issues per run.

## Steps

1. List Network issues carrying any of `surfaced:role` / `surfaced:advisory` / `surfaced:pitch` and NOT `surfaced:done`. None → report "nothing to graduate" and stop.
2. For each, read the issue: the "Surfaced opportunity" note in the description (or the most recent comment describing it) is the source of the opportunity detail. Extract the opportunity (company, and role/engagement/scope as available), which funnel it belongs in (from the surfaced label), and any link/reference.
3. **Dedupe:** before creating, search the target funnel for an existing issue for this opportunity (by company + role/scope). Likely match → link it to the Network issue instead of creating a duplicate, comment noting the link, proceed to step 6.
4. **Create** the opportunity issue in the target funnel (Pipeline team): Roles → title `[Role] — [Company]`, state Todo (or Backlog if pre-application and not yet ready to act), labels `type:task` plus `stage/*` and `opp:fulltime` only if clearly applicable. Advisory → title `[Company]` (the entity being advised, NOT the person), state Todo, labels `type:task`. Pitches → title `[Pitch / piece of work] — [Company]`, state Todo, labels `type:task`. Description: carry over the surfaced-opportunity detail, and in a Linked line reference the originating Network issue (`PIPE-XXX`).
5. **Link** the new opportunity to the Network person using Linear's native related-to relation, so the connection is structural, not just text.
6. On the Network issue: replace the `surfaced:*` label with `surfaced:done` (remove the trigger label, add the done marker) so it isn't re-graduated. Add a one-line comment: "Graduated to [funnel]: PIPE-XXX on [date]." Leave the person's state and other labels untouched.
7. **Report:** Network issues processed; each opportunity created (funnel, PIPE-XXX, title, and the Network issue it links back to); any dedupe links made instead of new issues; anything ambiguous (e.g. a surfaced label with no opportunity detail) — flag, do NOT guess; leave the trigger label in place and report it for manual handling.

## Constraints

Never move the person out of Network (only create a linked opportunity); opportunity issues are titled for the opportunity, never the person; never invent opportunity detail (no describing note → report and skip, do not fabricate a company or role); Linear only; validation stays human-owned — create and link, but do not change priorities or close anything.
