Skip to content
Back to skills

Portfolio Triage

ASecurity

Scan every project's task board across the monorepo and surface the single highest-priority open item per project as a ranked cross-project worklist

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 26, 2026
ai-agentsrust

Security analysis

A100/100

Scanned September 26, 2026

npx -y skills add xiaolongnk/SuperHarness --skill portfolio-triage --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Portfolio Triage?

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

Security grade badge for Portfolio Triage
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/xiaolongnk-portfolio-triage/badge)](https://www.skillsdirectory.com/skills/xiaolongnk-portfolio-triage)

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: portfolio-triage
description: Scan every project's task board across the monorepo and surface the single highest-priority open item per project as a ranked cross-project worklist
domains: [portfolio]
tier: both
---

The "one glance at the whole portfolio" skill. Run it cold, at the start of a session, or any time
you need to decide what to work on next across **more than one** project.

Arguments: `$ARGUMENTS`
(Optional. `--tier <personal|team>` filters to one tier. `--top N` caps the worklist to the top N
projects by priority, default: all. No arguments → full portfolio scan.)

## What "portfolio" means here

A **portfolio** is every project registered in `docs/portfolio.md` (the routing table: project →
responsibilities → keywords → task-board path). This skill does not discover projects on disk — it
trusts the registry, so a project only gets triaged once it's registered (see `route` for what to do
when a requirement names an unregistered project).

## Steps

1. **Read the registry.** Parse the live registry `docs/portfolio-registry.md` — ONLY the rows between
   its `<!-- projects:start -->` / `<!-- projects:end -->` markers — to get the full project list and each
   project's task-board path (`docs/tasks/<project>.md`). (`templates/project-registry.md` is the schema;
   `docs/portfolio.md` §3 is the model. IGNORE the tier→policy table — it is not a project list.)
2. **Read every board.** For each registered project, read its task board and extract:
   - The **Now / In progress** item, if any (this always outranks Next/Queued — work already
     started beats a fresh pick).
   - Otherwise the **top item in Next / Queued** (boards follow the priority-ordered convention from
     `templates/task-board.md`).
   - Any **Parked / Blocked** item whose blocker looks resolved (e.g. "blocked on review" and review
     context suggests it landed) — surface these separately, they're easy wins.
   - Skip a project cleanly if its board has no open items — do not manufacture a task.
3. **Normalize one line per project**: `<project> — <item> — <state: in-progress|next|unblock-check>`.
   Carry the exact task text and, if the board records one, its priority/date so ranking isn't just
   board order.
4. **Rank across projects.** In-progress items first (finish what's started), then unblock-checks
   (cheap wins), then queued items ordered by whatever priority signal the boards carry (explicit
   priority label, else recency, else board order as a last resort). State the ranking rule you used
   — don't rank silently.
5. **Emit the worklist:**
   ```
   Portfolio triage — <N> projects scanned, <M> with an open top item

   1. <project> — [in-progress] <task>
   2. <project> — [next] <task>
   3. <project> — [unblock-check] <task> — was blocked on <X>, check before assuming still blocked
   ...

   Skipped (no open items): <project>, <project>
   ```
6. **Do not act on the worklist yourself.** This skill triages; it does not delegate. Hand the
   ranked list to `route` (per item, or per a batch you choose) to actually dispatch work.

## Why this exists

Managing many projects from one control point needs a single command that answers "what
should get worked on right now, across everything" without a human re-reading N task boards by
hand. This is the portfolio-scale analogue of reading one project's board before starting work.

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.