From cogni-website
This skill initializes a cogni-website project by discovering content sources from cogni-portfolio, cogni-marketing, cogni-trends, and cogni-research, selecting a theme, and scaffolding the project directory. It should be triggered when the user mentions creating a website, starting a new website project, setting up a website, "build me a website", "company website", "customer website", "generate a website", "website setup", "Website erstellen", "Homepage erstellen", "Internetauftritt", "Webseite generieren", "online presence", "web presence", or wants to turn portfolio content into a web presence — even without saying "setup" explicitly.
How this skill is triggered — by the user, by Claude, or both
Slash command
/cogni-website:website-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 cogni-website project by discovering content from existing insight-wave plugins, selecting a theme, and scaffolding the project directory.
Initialize a cogni-website project by discovering content from existing insight-wave plugins, selecting a theme, and scaffolding the project directory.
A website project aggregates content from multiple insight-wave plugins into a multi-page static website:
Setup discovers what content is available across these plugins, validates minimum requirements, captures company details, selects a visual theme, and creates website-project.json — the configuration that all downstream skills depend on.
If a website-project.json already exists in the working directory, redirect to the website-resume skill.
Scan the current directory and immediate children for website-project.json. If found, inform the user and invoke the website-resume skill instead.
Scan the workspace for insight-wave plugin projects using recursive globs. This mirrors the discovery pattern used by cogni-marketing:marketing-setup — recursive globs ensure discovery works regardless of workspace layout.
**/portfolio.json (recursive — do not use narrow single-level globs)portfolio.json to extract: company name, description, industry, languageoutput/README.mdoutput/communicate/customer-narrative/:
portfolio-overview.md)market/*.md)customer/*.md)**/marketing-project.jsonmarketing-project.json for brand voice and content strategycontent/thought-leadership/*.md, content/demand-generation/*.md, content/lead-generation/*.md**/tips-project.jsontips-trend-report.md exists alongside it (trend report completed)tips-value-model.json to count investment themes**/output/draft-v*.md or **/output/report.md (cogni-research output)Gefundene Inhaltsquellen:
Portfolio: ../acme-cloud/
✓ 3 Produkte, 8 Features, 2 Märkte, 12 Propositions
✓ Kundendarstellungen: 1 Übersicht, 2 Markt-Narrative, 3 Persona-Narrative
✓ Synthese erstellt
Marketing: ../acme-marketing/
✓ 4 Thought-Leadership-Artikel
✓ 6 Demand-Generation-Beiträge
✓ 2 Landing Pages
Trends: ../b2b-ict-trends/
✓ Trend-Report mit 5 Investitionsthemen
Research: ../cloud-security-report/
✓ 1 Forschungsbericht
If multiple projects of the same type are found, present all and ask the user to select one. If only one exists, confirm automatically.
Hard gate — if no portfolio project is found, warn the user that a portfolio is the minimum requirement. Offer to help set one up via cogni-portfolio:portfolio-setup. Do not proceed without a portfolio.
Hard gate — the discovered portfolio must have at least 1 product AND a company name/description. Without these, the website has no meaningful content to render.
Soft warnings (inform but allow proceeding):
Extract company information from the discovered portfolio.json:
language field)Ask only for what's missing. Adapt all user-facing text to the portfolio language (examples below use German):
"Aus dem Portfolio übernehme ich: Acme Cloud Services — Cloud-Infrastruktur für den Mittelstand. Fehlen noch: Kontakt-E-Mail und Adresse für die Kontaktseite. Können Sie die ergänzen?"
Invoke cogni-workspace:pick-theme to let the user select a visual theme. The theme drives all colors, fonts, and styling across the website.
After theme selection, derive design variables by reading the theme.md file and generating output/design-variables.json following the convention in cogni-workspace/references/design-variables-pattern.md.
Ask the user about build preferences using AskUserQuestion. Only show options for content sources that were actually discovered:
Create the website project directory and write configuration:
mkdir -p cogni-website/{output/website/{css,pages,images},output}
Write website-project.json following the schema documented in ${CLAUDE_PLUGIN_ROOT}/libraries/EXAMPLE_WEBSITE_PLAN.md (see the project config section). Key fields:
slug, name, language, theme_pathcompany — name, tagline, description, contact detailssources:
portfolio_project — path to portfolio directory (required)marketing_project — path to marketing directory (null if not found)trends_project — path to trends directory (null if not found)research_projects — array of paths to research report directories (empty array if none)enriched_portfolio_narratives — object with overview, markets (map: slug → path), personas (map: slug → path). null if no portfolio-communicate output exists.build_options — hero_renderer, include_blog, include_case_studies, include_insights, include_resourcescontent_discovery — entity counts per source for change detection by website-resumeAll boolean build options default to true when the corresponding content source exists, false when it does not. Set hero_renderer to "pencil" or "html" based on user choice.
Website-Projekt erstellt: {slug}
Konfiguration:
Unternehmen: {name}
Sprache: {language}
Theme: {theme_name}
Hero: {pencil|html}
Inhaltsquellen:
Portfolio: ✓ ({N} Produkte, {M} Features, {K} Propositions)
Marketing: {✓ N Artikel | ✗ nicht gefunden}
Trends: {✓ Trend-Report | ✗ nicht gefunden}
Research: {✓ N Berichte | ✗ nicht gefunden}
Nächster Schritt: /website-plan — Seitenstruktur planen und Inhalte zuordnen
Read the language field from portfolio.json. Generate all user-facing text in that language. JSON field names and slugs remain in English. Default to German (de) if not specified.
Derive the website slug from the company name:
-website suffixacme-cloud-websitenpx claudepluginhub cogni-work/insight-wave --plugin cogni-websiteTriage and build sites of any shape (lander, minisite, website) from business context, deploy to Cloudflare Pages, and write owned-surface sales videos and pitch scripts.
Initializes an Agentic SEO project with standard directory structure, blank brain templates, content scaffolding, and first log entry. Use when creating or resetting the project.
Guides creation of production-ready Power Pages code sites as SPAs using React, Angular, Vue, or Astro, from requirements discovery to deployment with live dev server previews and git commits.