From cogni-projects
This skill should be used when the user wants to start a new project-portfolio for partner project-portfolio steering — cogni-projects models consultants, projects, and staffing, so new portfolio work starts here. Trigger on: "set up a projects portfolio", "start a project portfolio", "new cogni-projects portfolio", "initialize project-portfolio steering", "create a staffing portfolio", or any request to begin structured consultant/project/staffing work — even if the user does not say "setup" explicitly.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cogni-projects:projects-setupThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Initialize a new cogni-projects portfolio: a self-contained directory holding
Initialize a new cogni-projects portfolio: a self-contained directory holding consultants, projects, and assignments that later skills (staffing match, backfilling recommender, partner-meeting dashboard) read and write. This skill is the foundation entry point — run it once per portfolio before any staffing logic exists.
A portfolio is one cogni-projects/<portfolio-slug>/ directory rooted by a
projects-portfolio.json manifest. The manifest is the source of truth for the
portfolio's identity and holds the (initially empty) consultants[],
projects[], and assignments[] entity lists that downstream skills populate.
A .metadata/ directory carries the append-only logs those skills write to.
Setup is idempotent: re-running against an already-initialized portfolio
returns {"success": false, ...} with an "already initialized" message and
never overwrites existing data.
Determine two values from the user's request (ask only for what is missing):
nordic-advisory-2026). Derive it automatically from the name unless the user
supplies one.Echo the resolved slug and name back to the user and confirm the target
directory cogni-projects/<slug>/ before running the init script.
Run the init script (resolved against CLAUDE_PLUGIN_ROOT, with a plugin-cache
fallback so it works whether the plugin is loaded locally or from cache):
bash "${CLAUDE_PLUGIN_ROOT:-$(ls -td "$HOME"/.claude/plugins/cache/*/cogni-projects/*/ 2>/dev/null | head -1)}/scripts/portfolio-init.sh" "<portfolio-slug>" "<portfolio-name>"
The script returns a single JSON line {"success": bool, "data": {...}, "error": "string"}:
success: true — the portfolio was scaffolded. data.path is the new
directory; data.slug echoes the slug.success: false with an "already initialized" error — the portfolio already
exists; nothing was changed. This is a clean no-op, not a failure.Report the created directory and outline what comes next: define the data model and author entities, then run the staffing match engine. Keep the summary short.
cogni-projects/<portfolio-slug>/
├── projects-portfolio.json Root manifest (identity + consultants/projects/assignments)
├── consultants/ Consultant entity records (populated later)
├── projects/ Project entity records (populated later)
├── assignments/ Assignment records (populated later)
└── .metadata/ Append-only logs (execution, staffing, decisions)
npx claudepluginhub cogni-work/insight-wave --plugin cogni-projectsThis skill should be used when the user wants to author or register a consultant, project, or assignment record in a cogni-projects portfolio — the entities the staffing engine scores over. Trigger on: "add a consultant", "add a project", "create an assignment", "author a projects entity", "register a consultant/project", "record a staffing assignment", "populate the projects portfolio", or any request to write consultant/project/assignment data into a cogni-projects portfolio — even if the user does not name the entity type.
Scaffolds a cogni-portfolio project with company context and directory structure for product/market messaging work.
Use when: kullanıcı "yeni proje", "init project", "bootstrap project", "{slug} kur", "{slug} ekle", "workspace bootstrap", "yeni proje aç" der ya da /pseo-init çağırır. Also use when: pilot project workspace iskelet eksik (projects/{slug}/ yok ya da master.xlsx ve project.config.json mevcut değil); workspace- staging'de yeni bir slug ilk kez kuruluyor; idempotent re-bootstrap isteniyor (var olan master.xlsx KORUNUR, sadece config refresh). Do not use when: project zaten kurulmuş ve sadece veri ingest edilecek — sf-import, quick-wins veya başka discovery/ingestion skill kullan; mevcut master.xlsx'i schema-uyumsuz şekilde yeniden yaratmak gerekiyor — bu yıkıcı, init-project ASLA mevcut master.xlsx'e dokunmaz (F1 workbook policy + idempotency invariant).