portfolio-dashboard · git:20260409.af49a32 · 2026-04-09 · sha256 3db55aa5cfb78bbb

portfolio-dashboard git:20260409.af49a32A

Immutable. This exact content is served forever at /api/v1/blob/3db55aa5cfb78bbb.

---
name: portfolio-dashboard
description: Use when the user wants to generate, update, or customise an HTML dashboard from portfolio assessment data — produces a self-contained HTML file with level distribution, repo table, shared gaps, improvement plan, and trend visualisation from multiple quarterly assessments
---

# Portfolio Dashboard

Generate a self-contained HTML dashboard from portfolio assessment
data. The dashboard visualises AI literacy levels across repos with
trend tracking from multiple quarterly assessments.

The output is a single HTML file with inline CSS and no external
dependencies. It opens in any browser, works offline, and can be
shared as an email attachment or Slack file.

## Input

The skill reads portfolio assessment files from the `assessments/`
directory in the current repo. It looks for files matching
`*-portfolio-assessment.md`.

If no portfolio assessment files exist, tell the user to run
`/portfolio-assess` first.

## Process

### Step 1: Find Assessment Files

```bash
ls assessments/*-portfolio-assessment.md 2>/dev/null | sort
```

Report what was found:

- **One file:** Dashboard will show current state, no trends
- **Two or more files:** Dashboard will include trend visualisation
- **No files:** Stop and suggest running `/portfolio-assess`

### Step 2: Parse Assessment Data

For each portfolio assessment file, extract:

- **Date** — from the filename (`YYYY-MM-DD`)
- **Summary** — repo count, assessed/estimated/not assessed counts
- **Level distribution** — count at each level (L0–L5), split by
  assessed vs estimated
- **Portfolio median level**
- **Weakest discipline** — name and average score
- **Repo table** — each repo with level, confidence, discipline
  scores, last assessed date
- **Shared gaps** — gaps affecting 3+ repos with recommended action
- **Improvement plan** — organisation-wide, cluster, individual items

For trend data (2+ files), also track per-repo level changes across
assessments to show trajectories (e.g. L1 → L2 → L3).

### Step 3: Generate the Dashboard

Produce a self-contained HTML file with these panels:

**1. Summary header.** Portfolio name (derived from the source
description in the most recent assessment), date, total repo count,
median level.

**2. Level distribution.** Colour-coded visualisation showing how
many repos are at each level. Use the standard level colours:

| Level | Colour | Hex |
| --- | --- | --- |
| L0 — Awareness | Grey | `#808080` |
| L1 — Prompting | Light blue | `#87CEEB` |
| L2 — Verification | Blue | `#4682B4` |
| L3 — Habitat Engineering | Teal | `#20B2AA` |
| L4 — Specification Architecture | Green | `#2E8B57` |
| L5 — Sovereign Engineering | Gold | `#DAA520` |

**3. Trends (if 2+ assessments).** Show how the portfolio has changed
over time:

- Median level trend line
- Number of repos at L3+ over time
- Assessment coverage (% of repos with full assessments) over time
- Per-repo level trajectories in the repo table

**4. Repo table.** Each repo as a row with:

- Repo name
- Current level (colour-coded cell)
- Confidence (assessed / estimated / not assessed)
- Discipline scores (context, constraints, guardrails) — or "—" for
  estimated/not assessed
- Last assessed date
- Level trajectory (if multiple assessments show change)

**5. Shared gaps.** Table of gaps affecting 3+ repos with repo count
and recommended action.

**6. Improvement plan.** Grouped by impact scope:

- Organisation-wide (50%+ of repos) — highest priority
- Cluster (2-4 repos)
- Individual

### Step 4: Write the File

Save to `assessments/portfolio-dashboard.html`.

If a previous dashboard exists, overwrite it — the dashboard is
regenerated from source data each time.

### Step 5: Report

```text
Dashboard generated: assessments/portfolio-dashboard.html

  Repos: N (N assessed, N estimated, N not assessed)
  Median level: LN
  Trend data: N quarterly assessments
  Shared gaps: N

Open with: open assessments/portfolio-dashboard.html
```

## Design Constraints

- **Self-contained:** All CSS must be inline or in a `<style>` block.
  No external stylesheets, no CDN links, no JavaScript libraries.
- **Readable without JavaScript:** The dashboard must be fully
  readable with JavaScript disabled. JavaScript may be used for
  progressive enhancement (sorting, collapsing sections) but is not
  required for the content to be visible.
- **Print-friendly:** The dashboard should render well when printed
  or saved as PDF.
- **No build step:** The HTML file is generated directly. No npm,
  no bundler, no static site generator.

## Customisation

After generating the initial dashboard, the user may ask for
refinements. Common requests:

- Filter to a subset of repos
- Add threshold highlighting (e.g. repos below L2 in red)
- Add a dark mode toggle
- Make tables sortable
- Collapse the improvement plan into an expandable section
- Add a "last updated" timestamp footer

Apply these as modifications to the existing file. Keep the
self-contained constraint — do not add external dependencies.