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.
From cogni-websitenpx claudepluginhub cogni-work/insight-waveThis skill is limited to using the following tools:
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Calculates TAM/SAM/SOM using top-down, bottom-up, and value theory methodologies for market sizing, revenue estimation, and startup validation.
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-website