architecture
Use when the user asks to improve architecture, find refactoring opportunities, surface deepening opportunities, consolidate…
Aggregate cross-repo issue/MR/CI health across vault-registered projects into a single Markdown dashboard
Claude Code
$ npx -y skills add Kanevry/session-orchestrator --skill portfolio --agent claude-code
Codex
$ npx skills add Kanevry/session-orchestrator --skill portfolio -a codex -y
Cursor
$ npx skills add Kanevry/session-orchestrator --skill portfolio -a cursor -y
Gemini CLI
$ npx skills add Kanevry/session-orchestrator --skill portfolio -a gemini-cli -y
GitHub Copilot
$ npx skills add Kanevry/session-orchestrator --skill portfolio -a github-copilot -y
OpenCode
$ npx skills add Kanevry/session-orchestrator --skill portfolio -a opencode -y
Windsurf
$ npx skills add Kanevry/session-orchestrator --skill portfolio -a windsurf -y
name: portfolio description: Aggregate cross-repo issue/MR/CI health across vault-registered projects into a single Markdown dashboard user-invocable: true argument-hint: "[--dry-run] [--repo <name>]" model: inherit
The user invoked `/portfolio` with arguments: **$ARGUMENTS**. This skill carries the argument validation (`--dry-run`, `--repo <name>`), the config/mode/vault gates, the dispatch into `scripts/lib/gitlab-portfolio/cli.mjs`, and the exit-code table — all below; `skills/gitlab-portfolio/SKILL.md` owns the dashboard schema.
Aggregates open issues, MRs, and staleness signals across all vault-registered repositories and writes a structured dashboard to `<vault-dir>/01-projects/_PORTFOLIO.md`.
Parse `$ARGUMENTS` before doing anything else.
Recognized flags:
If `$ARGUMENTS` contains an unrecognized flag (starts with `--` but is not one of the above), inform the user:
Unknown flag '<flag>'. Recognized flags: --dry-run, --repo <name>.
Then continue with the remaining valid arguments.
1. **Config gate** — The CLI reads the `gitlab-portfolio:` block from Session Config. Only `enabled: true` activates it: an absent block parses to the default `enabled: false` (`scripts/lib/config/gitlab-portfolio.mjs`), and in both cases the CLI prints `gitlab-portfolio: disabled (set gitlab-portfolio.enabled: true in Session Config)` and exits 0.
2. **Mode gate** — If `mode: off`, the command is a no-op: the CLI checks it before vault resolution and any repo scan, prints `gitlab-portfolio: mode: off — skipped (set gitlab-portfolio.mode: warn|strict to run)` and exits 0 (#1619). Dispatch as usual; under `strict`, repo fetch failures exit 2.
3. **Vault resolution** — The CLI takes `--vault-dir`, else `vault-integration.vault-dir` from Session Config (resolved host-locally). If neither yields a path it prints `gitlab-portfolio: vault-integration.vault-dir not configured in Session Config` and exits 2. `vault-integration.enabled` is not checked: a configured `vault-dir` is used even when vault integration is disabled.
4. **Dispatch** — Invoke `scripts/lib/gitlab-portfolio/cli.mjs` with the resolved arguments:
node scripts/lib/gitlab-portfolio/cli.mjs \
--vault-dir <vault-dir> \
[--dry-run] \
[--repo <name>]5. **Report** — Print the action result emitted by the CLI (`action: written | skipped-noop | skipped-handwritten | dry-run`) and exit with the CLI's exit code.
Minimum Session Config to enable the command:
vault-integration: enabled: true vault-dir: ~/Projects/vault gitlab-portfolio: enabled: true
Full config reference (all fields with defaults):
gitlab-portfolio: enabled: true mode: warn # warn | strict | off stale-days: 30 critical-labels: ["priority::critical", "priority::high"]
See `skills/gitlab-portfolio/SKILL.md` § Output format for the full dashboard schema (frontmatter keys, summary table, per-repo sections, idempotency guard).
Behaviour is governed by the `mode` config field:
`--vault-dir` not found and write errors always exit 2 regardless of `mode`.
| Code | Meaning | |---|---| | `0` | Success (or `mode: off` / `enabled: false` no-op) | | `1` | User error (bad arguments, `--repo` names no discovered repo) | | `2` | System error (Session Config unreadable, no `vault-dir` configured, `vault-dir` outside the home directory, repo discovery or fetch crashed, write failed, repo fetch failures in `strict` mode) |
Exit codes follow `.claude/rules/cli-design.md` conventions.
Your coding agents get an agreed plan, a check after each round of changes and a handover to the next session. A free, MIT-licensed workflow plugin for people running Claude Code, Codex CLI, Cursor IDE or Pi on a git repository.
Use when the user asks to improve architecture, find refactoring opportunities, surface deepening opportunities, consolidate…
Use this skill when running an autonomous session-orchestration loop. Chains session-start → session-plan → wave-executor →…
Use this skill when scaffolding the minimum repository structure required by session-orchestrator. Invoked automatically by the…
Use when you have a feature idea but the scope or UX is still ambiguous — runs a lightweight Socratic design dialogue (3-5 AUQ…
Use when detecting drift between CLAUDE.md (or AGENTS.md, the Codex CLI alias) / _meta narrative and live repository state. Ten…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.