Install any skill in seconds. Free to start, no credit card required.
Get Started Free →hashgraph-online/gitlab-portfolio
Use when you need a single-pane cross-repo health view across all vault-registered GitLab and GitHub projects. Discovers repos from `_overview.md` frontmatter in `<vault>/01-projects/*/`, aggregates open issues, MRs, critical labels, and stale signals via parallel `glab`/`gh` calls, then writes an idempotent `_PORTFOLIO.md` dashboard. Runs automatically at session-start Phase 2 when `gitlab-portfolio.enabled=true`. Triggers: "show portfolio status", "refresh the portfolio dashboard", "which repo
Passed 20 of 21 test cases with the skill, and 6 of 21 without it.
and 13 more in the full report
15 fixed6 passed either way1 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 14 test cases the skill fixed. Same model, same prompt, with and without the skill.
What exact key and value string must be included in the YAML frontmatter of the markdown dashboard output file so that future portfolio automation runs can distinguish machine-generated files from human-edited content?
| Checked | Without skill | With skill |
|---|---|---|
| Sets _generator to session-orchestrator-gitlab-portfolio@1 | Missed | Passed |
The instructions your model reads when the skill loads.
Aggregates cross-repo health signals from vault-registered projects into a single
_PORTFOLIO.mddashboard — idempotent, opt-in, and_generator-marked.
gitlab-portfolio gives you a single-pane view of your entire project portfolio. It iterates all vault-registered repositories, dispatches parallel CLI calls to glab / gh, and writes a structured Markdown dashboard at <vault-dir>/01-projects/_PORTFOLIO.md. The result is a living status snapshot — updated on demand or at session-start — that never overwrites hand-edited files.
/portfolio.--dry-run preview before committing a refresh to the vault.gitlab-ops for write operations./discovery or direct glab commands._overview.md or .vault.yaml) — unregistered repos are silently skipped._PORTFOLIO.md — the _generator guard prevents overwriting human content.Implementation: scripts/lib/gitlab-portfolio/aggregator.mjs — discoverRepos().
Iterates <vault-dir>/01-projects/*/ subdirectories:
_overview.md YAML frontmatter. Look for gitlab: <namespace/repo> and/or github: <owner/repo>. Both keys may be present on a single repo._overview.md is absent or missing those keys, read .vault.yaml at the project root: spec.links.gitlab / spec.links.github.Output is an array of RepoDescriptor objects: { slug, gitlab, github }.
Implementation: scripts/lib/gitlab-portfolio/aggregator.mjs — aggregateAll(repos, config).
All repos are fetched in parallel via Promise.allSettled. Per-repo CLI dispatch:
test cases passed, vs 6 / 21 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.