[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CTFX9WW7FRGPFGJ5KBQS0K":3,"skill-same:01M6CTFX9WW7FRGPFGJ5KBQS0K":87},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":50,"updatedAt":51,"install":52,"resources":64},"01M6CTFX9WW7FRGPFGJ5KBQS0K","setup",null,"Configures Company OS for your project: company.config.yaml, permissions and folders. Use the first time you open a repo; accepts a preset, a pasted config block, or a URL to auto-fill.","vibbs\u002Fcompany-os","vibbs","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F7379149?v=4","01M6CT6M03CAS1H7RA89F3965B","Vibbs Dod","01M6CT6M4MY60C9FFQ3AAR2RSK",6,"MIT","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fsetup\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",[5,24,25,26,27,28,29,30,31,32,33,34],"config","preset","permissions","yaml","first","open","repo","company os","use","auto","time","2026-11-10 10:12:30",false,"---\nname: setup\ndescription: \"Configures Company OS for your project: company.config.yaml, permissions and folders. Use the first time you open a repo; accepts a preset, a pasted config block, or a URL to auto-fill.\"\nruntimes:\n  claude:\n    user-invocable: true\n    argument-hint: \"[preset | config block | URL | description]\"\n---\n\n# Setup Wizard\n\nInteractive setup skill for Company OS. Works on both new (greenfield) and existing projects. Company OS is an **overlay** — it adds its own files alongside your code and never touches your source.\n\n## At a Glance\n\n- **What it does**: asks about your company and tech stack, then configures Company OS for your project.\n- **Three ways to run it**: answer questions (interactive), paste a filled-in config block (express), or give a URL or description and confirm what it infers (auto-extract).\n- **Files it writes**: `company.config.yaml`, `.claude\u002Fsettings.json` (permissions for your stack; Claude Code only), and the `artifacts\u002F`, `tasks\u002F` and related folders. It never edits your source code.\n- **Time**: about 5 minutes interactive, under 1 minute in express mode.\n- **Safe to rerun**: existing config and settings are merged, not overwritten.\n- **Done when**: you see the \"Setup Complete\" summary with next steps (usually `\u002Fship` or `\u002Fgtm-sprint`).\n- **Note**: the `## Design` block inside Step 5.7 is part of the express template, not a separate step.\n\n## When to Use\n\n- The first time you open a repo with Company OS installed.\n- When you change your tech stack, company stage or platform targets and want the config and permissions to match.\n- Not needed for day-to-day work once `company.config.yaml` is filled in.\n\n## Modes\n\n- **Interactive** (`\u002Fsetup` or `\u002Fsetup nextjs`) — step-by-step guided wizard with smart defaults\n- **Express** (`\u002Fsetup` + config block) — paste a pre-filled config block, wizard parses and applies it in one shot\n- **Auto-Extract** (`\u002Fsetup` + URL or unstructured text) — wizard fetches\u002Freads the content, extracts company profile, infers tech stack, and presents a pre-filled config for confirmation\n\n## Deployment Models\n\n- **New project**: Run the curl installer, then `\u002Fsetup`\n- **Existing repo**: Run the curl installer in your repo root, then `\u002Fsetup`\n- **Mono repo**: Run `\u002Fsetup` at the repo root. `company.config.yaml` describes the shared stack. Agents work across all packages.\n- **Multi repo**: Each repo gets its own Company OS instance with independent artifacts and config.\n\n## Express Mode\n\nIf the user provides a config block alongside `\u002Fsetup`, skip interactive questions and parse the block directly. Any field not provided uses preset defaults (if a preset is specified) or is left empty.\n\n### Express Mode Template\n\nUsers can copy this template, fill in their values, and paste it with `\u002Fsetup`:\n\n````markdown\n## Company\n- Name:\n- Product:\n- Description:\n- Domain:\n- Stage: idea | mvp | growth | scale\n\n## Tech Stack\n- Preset: nextjs | fastapi | express | django | go | rails | custom\n- Cache: Redis | Memcached | none\n- Queue: BullMQ | Celery | SQS | none\n- Search: Elasticsearch | Meilisearch | Typesense | none\n\n## Overrides (only if different from preset defaults)\n- API Auth: JWT | API Keys | OAuth2 | session | Clerk | Auth.js\n- API Versioning: url-path | header | query-param | none\n- API Pagination: cursor | offset | none\n- Rate Limiting: token-bucket | sliding-window | none\n- Test Framework: Vitest | Jest | pytest | go test | cargo test\n- Linter: ESLint | Biome | Ruff | golangci-lint\n- Formatter: Prettier | Biome | Black | gofmt\n- Branching: trunk-based | gitflow | github-flow\n- Commit Style: conventional | gitmoji | freeform\n- Monorepo: true | false\n- Monorepo Tool: Turborepo | Nx | pnpm workspaces | none\n\n## Architecture\n- Multi-tenant: true | false\n- Tenant Isolation: RLS | schema-per-tenant | database-per-tenant | none\n- Deployment: serverless | containers | VMs | edge\n\n## Observability\n- Logging: structured-json | plaintext\n- Error Tracking: Sentry | Bugsnag | none\n\n## i18n\n- Enabled: true | false\n- Default Locale: en-US\n- Supported Locales: [en-US, hi-IN, fr-FR]\n- Strategy: key-based | gettext | ICU\n\n## Platforms\n- Targets: [web, mobile-web, ios, android]\n- Mobile Framework: [react-native, expo, flutter, capacitor]\n- PWA: true | false\n\n## Analytics\n- Provider: Mixpanel | Amplitude | Pendo | PostHog | none\n- Event Prefix: my-app\n\n## Feature Flags\n- Provider: LaunchDarkly | Flagsmith | Unleash | custom | config-file\n- Strategy: progressive-discovery | release-only | full\n\n## Email\n- Provider: Resend | Sendgrid | Postmark | SES | none\n- From: noreply@yourdomain.com\n- Template Engine: react-email | mjml | handlebars | jinja | plain-html\n\n## Options\n- Skill Categories: all | -growth | -legal\n- Clean Up Templates: yes | no\n````\n\n### Express Mode Procedure\n\n1. **Parse** the config block — extract all key-value pairs by section header\n2. **Apply preset** — if `Preset` is specified, fill in all preset defaults first\n3. **Override** — apply any explicit values from the block on top of preset defaults\n4. **Smart defaults** — fill remaining gaps with stage-appropriate defaults:\n   - `observability.logging` → `structured-json`\n   - `observability.error_tracking` → `Sentry`\n   - `analytics.provider` → `none` for idea, `PostHog` for mvp+\n   - `feature_flags.provider` → `config-file` for idea\u002Fmvp\n   - `feature_flags.strategy` → `release-only` for idea\u002Fmvp, `full` for growth\u002Fscale\n   - `analytics.event_prefix` → lowercase hyphenated product name\n   - `email.from_address` → `noreply@{domain}`\n   - `email.template_engine` → infer from tech stack (react-email for TS, jinja for Python, etc.)\n   - `platforms.targets` → `[web, mobile-web]` for Next.js, `[web]` for others\n   - `platforms.responsive` → `true`\n5. **Display summary** — show the full resolved config as a table for user confirmation\n6. **On confirmation** — proceed directly to Step 6 (Write config), Step 7 (Settings), Step 8 (Scaffold), then handle Options (skill categories, template cleanup), then Step 11 (Verify)\n\nIf the user says \"looks good\" or confirms, apply everything. If they want changes, apply those changes and re-confirm.\n\n---\n\n## Auto-Extract Mode\n\nIf the user provides a URL or pastes unstructured text (pitch deck content, about page copy, investor memo, product brief, Notion dump, etc.), the wizard extracts as much as it can automatically.\n\n### Detecting Auto-Extract Mode\n\nThe input is Auto-Extract if ANY of these are true:\n- Contains a URL (starts with `http:\u002F\u002F` or `https:\u002F\u002F`)\n- Contains prose paragraphs (not structured `- Key: Value` pairs)\n- Contains a mix of freeform text and partial config values\n- Reads like marketing copy, pitch content, or a product description\n\n### Auto-Extract Procedure\n\n1. **Fetch\u002FRead the content**:\n   - If URL provided → use `WebFetch` to retrieve and extract page content\n   - If text pasted → use the text directly\n   - If multiple URLs → fetch all and combine\n\n2. **Extract company profile** — look for:\n   - Company name (from logo, header, footer, \"About\" section, legal text)\n   - Product name (from headline, hero section, title tag)\n   - Description (from meta description, hero subtitle, \"What we do\" section)\n   - Domain (from the URL itself or contact information)\n   - Stage — infer from signals:\n     - \"coming soon\", \"waitlist\", \"beta\" → `idea` or `mvp`\n     - \"trusted by X customers\", pricing page, case studies → `growth`\n     - Enterprise features, SOC2 badges, large customer logos → `scale`\n\n3. **Infer tech stack** — look for signals in the content AND in the codebase:\n   - Check the repo for `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`, `Gemfile`, `pom.xml`\n   - From website: check meta tags, response headers (`x-powered-by`, `server`), script sources, framework fingerprints\n   - From text: mentions of specific technologies (\"built with React\", \"powered by Django\", \"Node.js backend\")\n   - If no tech signals found → ask the user to pick a preset\n\n4. **Infer product characteristics** — look for:\n   - Multi-tenant signals: \"teams\", \"organizations\", \"workspaces\", \"per-seat pricing\"\n   - i18n signals: multiple language options, locale switcher, \"available in X countries\"\n   - Mobile signals: \"mobile app\", app store links, \"responsive\", QR codes\n   - B2B vs B2C: pricing model, target audience language\n   - Auth signals: \"Sign in with Google\", \"SSO\", \"enterprise login\"\n\n5. **Build a pre-filled config** — map extracted data to Company OS config fields:\n   - Fill everything that was confidently extracted\n   - Mark uncertain fields with `(inferred)` annotation\n   - Leave truly unknown fields empty\n\n6. **Present for confirmation** — show the extracted config as a summary table:\n   ```\n   ## Auto-Extracted Configuration\n\n   Source: https:\u002F\u002Fneevak.com + codebase analysis\n\n   ### Company Profile\n   | Field | Extracted Value | Confidence |\n   |-------|----------------|------------|\n   | Name | Univas Collective | high — from footer |\n   | Product | Neevak | high — from title |\n   | Description | School fee management... | high — from hero |\n   | Domain | neevak.com | high — from URL |\n   | Stage | mvp | medium — no pricing page yet |\n\n   ### Tech Stack\n   | Field | Extracted Value | Confidence |\n   |-------|----------------|------------|\n   | Preset | nextjs | high — package.json found |\n   | ... | ... | ... |\n\n   Fields I couldn't determine: [list]\n\n   Does this look right? I'll ask about the missing fields.\n   ```\n\n7. **Fill gaps** — for fields that couldn't be extracted:\n   - If a preset was determined, apply preset defaults\n   - For remaining unknowns, ask the user (interactive-style) only for those specific fields\n   - Apply smart defaults for everything else\n\n8. **On confirmation** — proceed to Step 6 (Write config) through Step 11 (Verify), same as Express mode\n\n### Example Usage\n\n**URL mode:**\n```\n\u002Fsetup https:\u002F\u002Fneevak.com\n```\n\n**Text dump mode:**\n```\n\u002Fsetup\n\nWe're Univas Collective, building Neevak — a school fee management\nplatform for Indian K-12 schools. Schools currently use Excel, cash\ncounters, and WhatsApp to manage crores in fee collection. We're\nreplacing that with a proper infrastructure layer.\n\nWe're using Next.js with TypeScript, PostgreSQL, and deploying on\nVercel. Each school is a tenant with RLS isolation. We need mobile\nsupport — parents will use Android primarily. We're at MVP stage,\nabout to onboard our first 10 pilot schools.\n\nTech: Next.js 14, Prisma, PostgreSQL, Redis for caching, BullMQ for\nbackground jobs (receipt generation, payment reminders). Auth via\nClerk. We'll need WhatsApp integration for notifications.\n```\n\nThe wizard would extract all of that into a pre-filled config, infer the preset (Next.js + Vercel), set multi-tenant with RLS, platforms targeting web + mobile-web + android, and present the full config for one-click confirmation.\n\n---\n\n## Interactive Mode Procedure\n\n### Step 1: Detect Environment\n\n1. Check if `company.config.yaml` exists and has any non-empty values\n2. Check if `.claude\u002Fsettings.json` exists and has permissions\n3. Check if `artifacts\u002F`, `tools\u002F`, `standards\u002F` directories exist\n4. Classify the situation:\n   - **Fresh setup**: No config or all fields empty → full walkthrough\n   - **Reconfigure**: Config exists with values → ask \"Update existing configuration or start fresh?\"\n   - **Overlay**: Existing codebase detected (e.g., `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`) → note existing stack, suggest preset\n\n### Step 2: Company Profile\n\nGather the following (skip fields that already have values unless user wants to update):\n\n- `company.name` — company or project name\n- `company.product` — product name\n- `company.description` — one-line product description\n- `company.domain` — primary domain (optional)\n- `company.stage` — idea | mvp | growth | scale\n\n### Step 3: Tech Stack Selection\n\nOffer presets first to save time, then allow customization:\n\n| Preset | Language | Framework | Runtime | DB | ORM | Hosting | CI |\n|--------|----------|-----------|---------|-----|-----|---------|-----|\n| **Next.js + Vercel** | TypeScript | Next.js | Node.js 20 | PostgreSQL | Prisma | Vercel | GitHub Actions |\n| **FastAPI + AWS** | Python | FastAPI | Python 3.12 | PostgreSQL | SQLAlchemy | AWS | GitHub Actions |\n| **Express + Railway** | TypeScript | Express | Node.js 20 | PostgreSQL | Prisma | Railway | GitHub Actions |\n| **Django + AWS** | Python | Django | Python 3.12 | PostgreSQL | Django ORM | AWS | GitHub Actions |\n| **Go + Fly.io** | Go | Gin | Go 1.22 | PostgreSQL | GORM | Fly.io | GitHub Actions |\n| **Rails + Heroku** | Ruby | Rails | Ruby 3.3 | PostgreSQL | ActiveRecord | Heroku | GitHub Actions |\n| **Custom** | — | — | — | — | — | — | — |\n\nAfter preset selection, walk through remaining `tech_stack` fields not covered by preset:\n- `cache` (Redis | Memcached | none)\n- `queue` (BullMQ | Celery | SQS | none)\n- `search` (Elasticsearch | Meilisearch | Typesense | none)\n\nIf the environment has existing files (e.g., `package.json` → Node.js), suggest the matching preset.\n\n### Step 4: API & Conventions\n\nProvide smart defaults based on the chosen preset. Only prompt when the user needs to decide.\n\n**API section:**\n- `api.style` — REST | GraphQL | gRPC | tRPC\n- `api.spec_format` — OpenAPI 3.1 | GraphQL SDL | Protobuf\n- `api.error_format` — RFC7807 | custom\n- `api.versioning` — url-path (\u002Fv1\u002F) | header | query-param | none\n- `api.auth` — JWT | API Keys | OAuth2 | session | Clerk | Auth.js\n- `api.pagination` — cursor | offset | none\n- `api.rate_limiting` — token-bucket | sliding-window | none\n\n**Conventions section:**\n- `conventions.branching` — trunk-based | gitflow | github-flow\n- `conventions.commit_style` — conventional | gitmoji | freeform\n- `conventions.test_framework` — Vitest | Jest | pytest | go test | cargo test\n- `conventions.linter` — ESLint | Biome | Ruff | golangci-lint\n- `conventions.formatter` — Prettier | Biome | Black | gofmt\n- `conventions.monorepo` — true | false\n- `conventions.monorepo_tool` — Turborepo | Nx | pnpm workspaces | none (only if monorepo is true)\n\n**Preset defaults** (apply these, ask user to confirm or change):\n\n| Field | Next.js + Vercel | FastAPI + AWS | Express + Railway | Django + AWS | Go + Fly.io | Rails + Heroku |\n|-------|-----------------|---------------|-------------------|-------------|-------------|----------------|\n| api.style | REST | REST | REST | REST | REST | REST |\n| api.spec_format | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 |\n| api.auth | JWT | JWT | JWT | session | JWT | session |\n| api.pagination | cursor | cursor | cursor | offset | cursor | offset |\n| conventions.test_framework | Vitest | pytest | Vitest | pytest | go test | RSpec |\n| conventions.linter | ESLint | Ruff | ESLint | Ruff | golangci-lint | RuboCop |\n| conventions.formatter | Prettier | Black | Prettier | Black | gofmt | RuboCop |\n| conventions.branching | trunk-based | trunk-based | trunk-based | trunk-based | trunk-based | github-flow |\n| conventions.commit_style | conventional | conventional | conventional | conventional | conventional | conventional |\n\n### Step 5: Architecture, Observability & i18n\n\nPrompt for key decisions:\n- `architecture.multi_tenant` — true | false (default: false)\n- `architecture.tenant_isolation` — only if multi_tenant is true\n- `architecture.deployment_model` — serverless | containers | VMs | edge\n\nObservability with sensible defaults:\n- `observability.logging` — structured-json (default)\n- `observability.error_tracking` — Sentry (default) | Bugsnag | none\n- Leave `log_provider`, `metrics`, `tracing` as `\"\"` (can configure later)\n\ni18n (only prompt if user indicates international audience):\n- `i18n.enabled` — true | false (default: false)\n- If true: `i18n.default_locale`, `i18n.supported_locales`, `i18n.strategy` (key-based | gettext | ICU), `i18n.fallback`\n\n### Step 5.5: Platforms, Analytics, Feature Flags & Email\n\n**Platforms** — ask about target platforms:\n- `platforms.targets` — [web, mobile-web, ios, android] (default: [web] for web frameworks, [web, mobile-web] for Next.js\u002FNuxt)\n- `platforms.mobile_framework` — [react-native, expo, flutter, capacitor] (only if ios or android in targets; array, supports multiple)\n- `platforms.responsive` — true | false (default: true for any web target)\n- `platforms.pwa` — true | false (default: false)\n\n**Preset platform defaults:**\n\n| Preset | targets | responsive | mobile_framework |\n|--------|---------|------------|-----------------|\n| Next.js + Vercel | [web, mobile-web] | true | [] |\n| FastAPI + AWS | [web] | true | [] |\n| Express + Railway | [web] | true | [] |\n| Django + AWS | [web] | true | [] |\n| Go + Fly.io | [web] | true | [] |\n| Rails + Heroku | [web] | true | [] |\n\n**Analytics** — ask if the product needs analytics (recommended for all products beyond `idea` stage):\n- `analytics.provider` — Mixpanel | Amplitude | Pendo | PostHog | none (default: none for `idea`, PostHog for `mvp`+)\n- `analytics.event_prefix` — auto-suggest from `company.product` (lowercase, hyphenated)\n- `analytics.tracker_attribute` — data-track-id (default) | data-analytics | custom\n\n**Feature Flags** — ask about rollout strategy:\n- `feature_flags.provider` — LaunchDarkly | Flagsmith | Unleash | custom | config-file (default: config-file for early stage)\n- `feature_flags.strategy` — progressive-discovery | release-only | full (default: release-only for `idea`\u002F`mvp`, full for `growth`\u002F`scale`)\n- `feature_flags.cleanup_sla_days` — number of days (default: 14)\n\n**Email** — ask if the product sends emails (skip for pure API products):\n- `email.provider` — Resend | Sendgrid | Postmark | SES | none (default: none)\n- `email.from_address` — auto-suggest: noreply@{company.domain}\n- `email.template_engine` — react-email (for TypeScript\u002FNext.js) | mjml (for any) | handlebars (for Node.js) | jinja (for Python) | plain-html (default: infer from tech stack)\n\n### Step 5.6: Model Preferences\n\nAsk: \"Which model tier should each agent use? This controls cost vs. capability.\"\n\nOffer presets first:\n\n| Preset | Orchestrator | Engineering | Product | QA | Ops & Risk | Growth |\n|--------|-------------|-------------|---------|-----|-----------|--------|\n| **Cost-Optimized** (Recommended) | opus | opus | sonnet | sonnet | sonnet | sonnet |\n| **All Opus** | opus | opus | opus | opus | opus | opus |\n| **All Sonnet** | sonnet | sonnet | sonnet | sonnet | sonnet | sonnet |\n| **Custom** | — | — | — | — | — | — |\n\n**Default**: Cost-Optimized — keeps Opus for Orchestrator (routing\u002Fgating) and Engineering (architecture\u002Fimplementation), uses Sonnet for structured\u002Ftemplate-driven agents.\n\nIf user selects Custom, walk through each agent:\n- `models.orchestrator` — opus (recommended) | sonnet | haiku\n- `models.engineering` — opus (recommended) | sonnet\n- `models.product` — sonnet (recommended) | opus\n- `models.qa_release` — sonnet (recommended) | opus\n- `models.ops_risk` — sonnet (recommended) | opus\n- `models.growth` — sonnet (recommended) | opus | haiku\n\nAfter selection, update both:\n1. `company.config.yaml` `models:` section with the chosen values\n2. Each `os\u002Fagents\u002F*.md` frontmatter `model:` field to match. Edit `os\u002Fagents\u002F`, not `.claude\u002Fagents\u002F` (that folder is generated), then run `bash tools\u002Fbuild\u002Fbuild.sh` to regenerate the adapters\n\n### Step 5.7: Design & Brand\n\nConfigure the product's design archetype — the visual and UX personality that drives all frontend implementation. This step uses the same procedure defined in the **design-system** skill (S-ENG-12). Refer to `os\u002Fskills\u002Fdesign-system\u002FSKILL.md` Step 1 for the full wizard flow.\n\n**Summary of the flow:**\n\n1. Ask 3 product-context questions:\n   - **Product Type**: What are you building? (internal tool \u002F CRM \u002F knowledge base \u002F collaborative workspace \u002F consumer app \u002F creative tool)\n   - **User Priority**: What matters most? (speed \u002F record management \u002F focused content \u002F real-time collaboration \u002F simplicity \u002F visual impact)\n   - **Information Density**: How much should users see at once? (dense \u002F moderate \u002F minimal)\n\n2. Score each answer against 6 archetypes using the scoring matrix (see design-system skill for full table). Sum scores. Present top 2-3 recommendations.\n\n3. **Present recommendations with visual cues** — this is critical for users who don't know the reference products:\n   - Lead with the **vibe name** and **dimension bars** (density, warmth, sophistication, interaction)\n   - Show **ASCII wireframe preview** from the archetype file so users can *see* the feel\n   - Include **\"Think: Product1, Product2\"** as secondary reference hints\n   - Show **\"Best for\"** and **\"Not ideal for\"** lists\n\n4. User picks an archetype → write `design.archetype` to config.\n\n5. Ask two follow-up preferences:\n   - **Dark mode**: auto (follow system) | light | dark | both (user toggle)\n   - **Density**: compact | comfortable (default) | spacious\n\n6. Write all three values to `design:` section in config.\n\n**Express mode support** — add to the express mode template:\n```\n## Design\n- Archetype: linear | attio | notion | figma | things3 | framer\n- Dark Mode: auto | light | dark | both\n- Density: compact | comfortable | spacious\n```\n\n**Auto-extract heuristics** — when extracting from URL\u002Ftext, use keyword matching:\n- \"admin\", \"dashboard\", \"monitoring\", \"ops\" → Linear\n- \"CRM\", \"contacts\", \"records\", \"inventory\", \"school\" → Attio\n- \"docs\", \"wiki\", \"knowledge\", \"notes\", \"learning\" → Notion\n- \"collaboration\", \"real-time\", \"whiteboard\", \"canvas\" → Figma\n- \"personal\", \"simple\", \"consumer\", \"wellness\", \"journal\" → Things 3\n- \"marketing\", \"creative\", \"portfolio\", \"landing\" → Framer\n\n**Skip condition**: If user already has `design.archetype` set and doesn't want to change it, skip this step.\n\n### Step 6: Write `company.config.yaml`\n\nWrite the complete config file with all gathered values. Preserve the comment structure from the template. Leave uncollected optional fields as `\"\"`.\n\n### Step 7: Generate \u002F Merge `.claude\u002Fsettings.json`\n\n**Claude Code only.** Run this step only when the Claude Code adapter is installed (the `.claude\u002F` folder exists) or you are running inside Claude Code. In Cursor, Codex, Gemini CLI or Aider without a `.claude\u002F` folder, skip it and say \"Skipped .claude\u002Fsettings.json (Claude Code is not installed)\". Do not create a `.claude\u002F` folder for other runtimes.\n\n**If `.claude\u002Fsettings.json` already exists:**\n1. Read and parse the existing file\n2. Preserve ALL existing user rules in `allow` and `deny` arrays\n3. Add Company OS base permissions + tech-stack-specific permissions\n4. Deduplicate — don't add rules that already exist\n5. Write back the merged result\n\n**If `.claude\u002Fsettings.json` does not exist:**\n1. Create it fresh with base + tech-stack permissions\n\n#### Base Permissions (always included)\n\n**Allow:**\n```json\n\"Read\", \"Edit\", \"Write\", \"Glob\", \"Grep\",\n\"Bash(.\u002Ftools\u002F*)\", \"Bash(.\u002Ftools\u002F**\u002F*)\",\n\"Bash(chmod *)\", \"Bash(mkdir *)\", \"Bash(ls *)\", \"Bash(pwd)\", \"Bash(wc *)\",\n\"Bash(git init*)\", \"Bash(git status*)\", \"Bash(git log *)\", \"Bash(git log)\",\n\"Bash(git diff *)\", \"Bash(git diff)\", \"Bash(git add *)\", \"Bash(git commit *)\",\n\"Bash(git branch *)\", \"Bash(git branch)\", \"Bash(git checkout *)\",\n\"Bash(git switch *)\", \"Bash(git fetch *)\", \"Bash(git pull *)\",\n\"Bash(git merge *)\", \"Bash(git stash *)\", \"Bash(git remote *)\",\n\"Bash(git tag *)\", \"Bash(git show *)\", \"Bash(git rev-parse *)\",\n\"Bash(git push *)\", \"Bash(git push)\",\n\"Bash(gh *)\"\n```\n\n**Deny:**\n```json\n\"Bash(git push --force*)\", \"Bash(git push -f *)\", \"Bash(git push -f)\",\n\"Bash(git reset --hard*)\", \"Bash(git clean -f*)\", \"Bash(git clean -df*)\",\n\"Bash(git checkout -- .)\", \"Bash(git restore .)\",\n\"Bash(rm -rf *)\", \"Bash(rm -rf \u002F)\", \"Bash(rm -f *)\",\n\"Bash(sudo *)\", \"Bash(curl *)\", \"Bash(wget *)\", \"Bash(nc *)\"\n```\n\n#### Tech-Stack-Specific Additions (add to allow)\n\n| Language | Additional Bash Permissions |\n|----------|---------------------------|\n| TypeScript \u002F JavaScript | `npm *`, `npx *`, `yarn *`, `pnpm *`, `bun *`, `node *` |\n| Python | `python *`, `python3 *`, `pip *`, `pip3 *`, `poetry *`, `uv *` |\n| Go | `go *` |\n| Rust | `cargo *`, `rustc *` |\n| Ruby | `ruby *`, `gem *`, `bundle *`, `rails *` |\n| Java | `mvn *`, `gradle *`, `java *`, `javac *` |\n\n#### Monorepo Tool Additions (add to allow if monorepo is true)\n\n| Tool | Additional Bash Permissions |\n|------|---------------------------|\n| Turborepo | `turbo *` |\n| Nx | `nx *` |\n| pnpm workspaces | (already covered by `pnpm *`) |\n\n### Step 8: Scaffold Directories\n\nCreate any missing directories (idempotent — skip if they already exist):\n\n```\nartifacts\u002Fprds\u002F\nartifacts\u002Frfcs\u002F\nartifacts\u002Ftest-plans\u002F\nartifacts\u002Fqa-reports\u002F\nartifacts\u002Flaunch-briefs\u002F\nartifacts\u002Fsecurity-reviews\u002F\nartifacts\u002Fdecision-memos\u002F\nartifacts\u002Fproduct\u002F\nartifacts\u002Fexperiments\u002F\nartifacts\u002F.audit-log\u002F\nstandards\u002Fapi\u002F\nstandards\u002Fcoding\u002F\nstandards\u002Fcompliance\u002F\nstandards\u002Ftemplates\u002F\nstandards\u002Fbrand\u002F\nstandards\u002Fops\u002F\nstandards\u002Fanalytics\u002F\nstandards\u002Fdocs\u002F\nstandards\u002Femail\u002F\nstandards\u002Fengineering\u002F\nimports\u002F (with .gitkeep if empty)\ntasks\u002F (with todo.md and lessons.md if missing)\nseeds\u002F (with .gitkeep)\nartifacts\u002Ftest-data\u002F (with .gitkeep)\n```\n\nDo NOT create directories that are part of Company OS source (`.claude\u002F`, `tools\u002F`) — these should already exist from the template.\n\n### Step 8b: Initialize App Versioning\n\nSet up version tracking for the user's application. This is separate from Company OS versioning — this tracks the user's product version.\n\n1. **Detect existing version file**:\n   - If `package.json` exists and has a `\"version\"` field → use it (don't overwrite)\n   - If `pyproject.toml` exists and has a `version` field → use it\n   - If a `VERSION` file exists (and is not the Company OS version — check against `.company-os\u002Fversion`) → use it\n   - If none found → create `VERSION` file with the appropriate initial version\n\n2. **Set initial version based on stage**:\n   - If `company.stage` is `idea` or `mvp` (or empty): version starts at `0.1.0`\n   - If `company.stage` is `growth` or `scale`: version starts at `1.0.0`\n   - If an existing version file was detected, keep its current value\n\n3. **Create app CHANGELOG.md** (only if no CHANGELOG.md exists):\n   ```markdown\n   # Changelog\n\n   All notable changes to this project are documented in this file.\n   Format based on [Keep a Changelog](https:\u002F\u002Fkeepachangelog.com\u002F).\n\n   ## [Unreleased]\n\n   ## [0.1.0] - {today's date}\n   ### Added\n   - Initial release\n   ```\n   Use the initial version from step 2 in the heading (0.1.0 or 1.0.0).\n\n4. **Create `.previous-version`** with `0.0.0` (baseline for first bump detection)\n\n5. **Add `.previous-version` to `.gitignore`** if not already present (internal tracking file, not user-facing)\n\n6. **Report**: \"App versioning initialized at v{version}. The ship flow will auto-bump versions on each release.\"\n\n### Step 9: Skill Category Selection (Optional)\n\nAsk: \"Which skill categories do you need? All are included by default.\"\n\n- **Product** (PRDs, prioritization, ICP) — default: keep\n- **Engineering** (architecture, API design, implementation) — default: keep\n- **QA & Release** (test plans, release gates, benchmarks) — default: keep\n- **Growth** (launch, SEO, content, activation) — default: keep (suggest removing for internal tools)\n- **Legal & Compliance** (privacy, TOS, compliance, pricing) — default: keep (suggest removing for early-stage)\n\nIf user removes a category, note it but don't delete skills (they're harmless if unused and easy to re-enable). Add a comment to `company.config.yaml`:\n\n```yaml\n# Disabled skill categories: growth, legal\n```\n\n### Step 10: Template Documentation Cleanup (Optional)\n\nAsk: \"Would you like to clean up template example files? This removes the example artifacts and standards and, if it is still the Company OS template README, replaces it. Your own README.md, FAQ.md and similar files are never touched. The Company OS guides in `.company-os\u002Fdocs\u002F` stay.\"\n\n| File | Purpose | Recommendation |\n|------|---------|----------------|\n| `README.md` | Describes Company OS template | **Replace** with a project-specific README, but only when its first heading is `# Company OS` (the template copy). Otherwise it is the user's own README: keep it and say so |\n| `.company-os\u002Fdocs\u002F` | Company OS guides (SETUP, CONCEPTS, CONFIG_REFERENCE, CUSTOMIZING, TROUBLESHOOTING, FAQ, TOKEN_COSTS, ROADMAP, CHANGELOG, SKILL_SCHEMA) and the `diagrams\u002F` they embed | **Keep.** Other files link to them and they cost no tokens unless read |\n| `.company-os\u002Fsetup.sh` | Bash fallback for setup (installed with Company OS) | **Keep.** Upgrades refresh it |\n| `TOKEN_COSTS.md`, `FAQ.md`, `SETUP_COMPANY_OS.md` (repo root) | Old copies of guides that now live in `.company-os\u002Fdocs\u002F`. Present only in projects set up before 1.12.0 | **Remove** only when the file is the Company OS copy: its first line is `# FAQ — AI Agentic Company OS`, `# Setup Guide — AI Agentic Company OS`, or `# Token Cost Reference` (with \"Company OS\" in the first five lines). Any other file with these names is the user's own: keep it and say so. `bash .company-os\u002Fsetup.sh --cleanup` applies the same rule |\n| `artifacts\u002Fprds\u002FPRD-EXAMPLE-001-notifications.md` | Example PRD artifact | **Remove** after reviewing |\n| `artifacts\u002Frfcs\u002FRFC-EXAMPLE-001-notification-system.md` | Example RFC artifact | **Remove** after reviewing |\n| `standards\u002Fapi\u002Fexample-api-conventions.md` | Example API standards | **Remove** after reviewing |\n| `standards\u002Fcoding\u002Fexample-coding-standards.md` | Example coding standards | **Remove** after reviewing |\n\nIf user confirms:\n1. Delete the legacy root files above (only the Company OS copies), example artifacts, and example standards. List any root file you kept because it is not a Company OS copy\n2. Replace `README.md` with a minimal project README only if it is the template README (first heading `# Company OS`); otherwise leave it and say \"README.md is your own, so I left it\":\n   ```\n   # {company.product}\n   {company.description}\n   ```\n3. Report what was cleaned up\n\nFiles that are **always kept** (operationally required):\n- `CLAUDE.md` — auto-loaded every session, governs all agent behavior\n- `company.config.yaml` — central configuration for all agents\u002Fskills\u002Ftools\n- `.claude\u002F` — agents, skills, settings\n- `tools\u002F` — enforcement scripts\n- `artifacts\u002F`, `standards\u002F`, `tasks\u002F`, `imports\u002F` — working directories\n\n### Step 11: Verify & Report\n\n1. Run `.\u002Ftools\u002Fregistry\u002Fhealth-check.sh` — verify all skills discoverable\n2. Validate `company.config.yaml` is well-formed YAML\n3. If Step 7 ran, validate `.claude\u002Fsettings.json` is well-formed JSON\n4. Print setup summary:\n\n```\n## Setup Complete\n\n### Company Profile\n- Company: {name}\n- Product: {product}\n- Stage: {stage}\n\n### Tech Stack\n- {language} \u002F {framework} \u002F {database}\n- Hosting: {hosting}, CI: {ci}\n\n### Permissions\n- .claude\u002Fsettings.json configured with {N} allow rules, {M} deny rules (or \"skipped: Claude Code not installed\")\n- Tech stack: {language} permissions included\n\n### Directories\n- {N} directories created, {M} already existed\n\n### Next Steps\n1. **`\u002Fdev-environment`** — Generate Docker Compose, `.env.example`, and dev scripts. **Required before running `\u002Fship`** — the Seed & Verify step depends on `tools\u002Fdev\u002Fstart.sh`.\n2. **Install dependencies** — run `npm install`, `pip install -r requirements.txt`, `go mod download`, or the equivalent for your tech stack\n3. **Place reference docs** in `standards\u002F` and run `\u002Fingest` to sync agents\n4. **Import existing artifacts** — if you have PRDs, RFCs, or specs elsewhere, run `\u002Fartifact-import` to bring them in\n5. **Generate seed data** — after your first ship cycle creates domain entities, run `\u002Fseed-data` to generate test data for all scenarios\n6. **Build your first feature** — ask the Orchestrator: \"Build [feature] for [product]\"\n```\n\n## Edge Cases\n\n- **No git repo**: Warn user to run `git init` first (artifacts use timestamps but git history aids audit)\n- **Conflicting stack signals**: If `package.json` exists but user picks Python preset, note the conflict but proceed (mono repos legitimately mix stacks)\n- **Existing `.claude\u002Fsettings.json` with custom rules**: Merge carefully — never remove user rules, only add\n- **Re-running `\u002Fsetup`**: Idempotent for directories and settings merge. Config overwrites with new values.\n\n## Reference\n\n- **ID**: S-ORG-06\n- **Category**: Orchestration\n- **Inputs**: user prompts, existing config state, environment signals\n- **Outputs**: `company.config.yaml`, `.claude\u002Fsettings.json`, scaffolded directories\n- **Used by**: User (directly), Orchestrator Agent\n- **Tool scripts**: `.\u002Ftools\u002Fregistry\u002Fhealth-check.sh`\n","# Setup Wizard\n\nInteractive setup skill for Company OS. Works on both new (greenfield) and existing projects. Company OS is an **overlay** — it adds its own files alongside your code and never touches your source.\n\n## At a Glance\n\n- **What it does**: asks about your company and tech stack, then configures Company OS for your project.\n- **Three ways to run it**: answer questions (interactive), paste a filled-in config block (express), or give a URL or description and confirm what it infers (auto-extract).\n- **Files it writes**: `company.config.yaml`, `.claude\u002Fsettings.json` (permissions for your stack; Claude Code only), and the `artifacts\u002F`, `tasks\u002F` and related folders. It never edits your source code.\n- **Time**: about 5 minutes interactive, under 1 minute in express mode.\n- **Safe to rerun**: existing config and settings are merged, not overwritten.\n- **Done when**: you see the \"Setup Complete\" summary with next steps (usually `\u002Fship` or `\u002Fgtm-sprint`).\n- **Note**: the `## Design` block inside Step 5.7 is part of the express template, not a separate step.\n\n## When to Use\n\n- The first time you open a repo with Company OS installed.\n- When you change your tech stack, company stage or platform targets and want the config and permissions to match.\n- Not needed for day-to-day work once `company.config.yaml` is filled in.\n\n## Modes\n\n- **Interactive** (`\u002Fsetup` or `\u002Fsetup nextjs`) — step-by-step guided wizard with smart defaults\n- **Express** (`\u002Fsetup` + config block) — paste a pre-filled config block, wizard parses and applies it in one shot\n- **Auto-Extract** (`\u002Fsetup` + URL or unstructured text) — wizard fetches\u002Freads the content, extracts company profile, infers tech stack, and presents a pre-filled config for confirmation\n\n## Deployment Models\n\n- **New project**: Run the curl installer, then `\u002Fsetup`\n- **Existing repo**: Run the curl installer in your repo root, then `\u002Fsetup`\n- **Mono repo**: Run `\u002Fsetup` at the repo root. `company.config.yaml` describes the shared stack. Agents work across all packages.\n- **Multi repo**: Each repo gets its own Company OS instance with independent artifacts and config.\n\n## Express Mode\n\nIf the user provides a config block alongside `\u002Fsetup`, skip interactive questions and parse the block directly. Any field not provided uses preset defaults (if a preset is specified) or is left empty.\n\n### Express Mode Template\n\nUsers can copy this template, fill in their values, and paste it with `\u002Fsetup`:\n\n````markdown\n## Company\n- Name:\n- Product:\n- Description:\n- Domain:\n- Stage: idea | mvp | growth | scale\n\n## Tech Stack\n- Preset: nextjs | fastapi | express | django | go | rails | custom\n- Cache: Redis | Memcached | none\n- Queue: BullMQ | Celery | SQS | none\n- Search: Elasticsearch | Meilisearch | Typesense | none\n\n## Overrides (only if different from preset defaults)\n- API Auth: JWT | API Keys | OAuth2 | session | Clerk | Auth.js\n- API Versioning: url-path | header | query-param | none\n- API Pagination: cursor | offset | none\n- Rate Limiting: token-bucket | sliding-window | none\n- Test Framework: Vitest | Jest | pytest | go test | cargo test\n- Linter: ESLint | Biome | Ruff | golangci-lint\n- Formatter: Prettier | Biome | Black | gofmt\n- Branching: trunk-based | gitflow | github-flow\n- Commit Style: conventional | gitmoji | freeform\n- Monorepo: true | false\n- Monorepo Tool: Turborepo | Nx | pnpm workspaces | none\n\n## Architecture\n- Multi-tenant: true | false\n- Tenant Isolation: RLS | schema-per-tenant | database-per-tenant | none\n- Deployment: serverless | containers | VMs | edge\n\n## Observability\n- Logging: structured-json | plaintext\n- Error Tracking: Sentry | Bugsnag | none\n\n## i18n\n- Enabled: true | false\n- Default Locale: en-US\n- Supported Locales: [en-US, hi-IN, fr-FR]\n- Strategy: key-based | gettext | ICU\n\n## Platforms\n- Targets: [web, mobile-web, ios, android]\n- Mobile Framework: [react-native, expo, flutter, capacitor]\n- PWA: true | false\n\n## Analytics\n- Provider: Mixpanel | Amplitude | Pendo | PostHog | none\n- Event Prefix: my-app\n\n## Feature Flags\n- Provider: LaunchDarkly | Flagsmith | Unleash | custom | config-file\n- Strategy: progressive-discovery | release-only | full\n\n## Email\n- Provider: Resend | Sendgrid | Postmark | SES | none\n- From: noreply@yourdomain.com\n- Template Engine: react-email | mjml | handlebars | jinja | plain-html\n\n## Options\n- Skill Categories: all | -growth | -legal\n- Clean Up Templates: yes | no\n````\n\n### Express Mode Procedure\n\n1. **Parse** the config block — extract all key-value pairs by section header\n2. **Apply preset** — if `Preset` is specified, fill in all preset defaults first\n3. **Override** — apply any explicit values from the block on top of preset defaults\n4. **Smart defaults** — fill remaining gaps with stage-appropriate defaults:\n   - `observability.logging` → `structured-json`\n   - `observability.error_tracking` → `Sentry`\n   - `analytics.provider` → `none` for idea, `PostHog` for mvp+\n   - `feature_flags.provider` → `config-file` for idea\u002Fmvp\n   - `feature_flags.strategy` → `release-only` for idea\u002Fmvp, `full` for growth\u002Fscale\n   - `analytics.event_prefix` → lowercase hyphenated product name\n   - `email.from_address` → `noreply@{domain}`\n   - `email.template_engine` → infer from tech stack (react-email for TS, jinja for Python, etc.)\n   - `platforms.targets` → `[web, mobile-web]` for Next.js, `[web]` for others\n   - `platforms.responsive` → `true`\n5. **Display summary** — show the full resolved config as a table for user confirmation\n6. **On confirmation** — proceed directly to Step 6 (Write config), Step 7 (Settings), Step 8 (Scaffold), then handle Options (skill categories, template cleanup), then Step 11 (Verify)\n\nIf the user says \"looks good\" or confirms, apply everything. If they want changes, apply those changes and re-confirm.\n\n---\n\n## Auto-Extract Mode\n\nIf the user provides a URL or pastes unstructured text (pitch deck content, about page copy, investor memo, product brief, Notion dump, etc.), the wizard extracts as much as it can automatically.\n\n### Detecting Auto-Extract Mode\n\nThe input is Auto-Extract if ANY of these are true:\n- Contains a URL (starts with `http:\u002F\u002F` or `https:\u002F\u002F`)\n- Contains prose paragraphs (not structured `- Key: Value` pairs)\n- Contains a mix of freeform text and partial config values\n- Reads like marketing copy, pitch content, or a product description\n\n### Auto-Extract Procedure\n\n1. **Fetch\u002FRead the content**:\n   - If URL provided → use `WebFetch` to retrieve and extract page content\n   - If text pasted → use the text directly\n   - If multiple URLs → fetch all and combine\n\n2. **Extract company profile** — look for:\n   - Company name (from logo, header, footer, \"About\" section, legal text)\n   - Product name (from headline, hero section, title tag)\n   - Description (from meta description, hero subtitle, \"What we do\" section)\n   - Domain (from the URL itself or contact information)\n   - Stage — infer from signals:\n     - \"coming soon\", \"waitlist\", \"beta\" → `idea` or `mvp`\n     - \"trusted by X customers\", pricing page, case studies → `growth`\n     - Enterprise features, SOC2 badges, large customer logos → `scale`\n\n3. **Infer tech stack** — look for signals in the content AND in the codebase:\n   - Check the repo for `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`, `Gemfile`, `pom.xml`\n   - From website: check meta tags, response headers (`x-powered-by`, `server`), script sources, framework fingerprints\n   - From text: mentions of specific technologies (\"built with React\", \"powered by Django\", \"Node.js backend\")\n   - If no tech signals found → ask the user to pick a preset\n\n4. **Infer product characteristics** — look for:\n   - Multi-tenant signals: \"teams\", \"organizations\", \"workspaces\", \"per-seat pricing\"\n   - i18n signals: multiple language options, locale switcher, \"available in X countries\"\n   - Mobile signals: \"mobile app\", app store links, \"responsive\", QR codes\n   - B2B vs B2C: pricing model, target audience language\n   - Auth signals: \"Sign in with Google\", \"SSO\", \"enterprise login\"\n\n5. **Build a pre-filled config** — map extracted data to Company OS config fields:\n   - Fill everything that was confidently extracted\n   - Mark uncertain fields with `(inferred)` annotation\n   - Leave truly unknown fields empty\n\n6. **Present for confirmation** — show the extracted config as a summary table:\n   ```\n   ## Auto-Extracted Configuration\n\n   Source: https:\u002F\u002Fneevak.com + codebase analysis\n\n   ### Company Profile\n   | Field | Extracted Value | Confidence |\n   |-------|----------------|------------|\n   | Name | Univas Collective | high — from footer |\n   | Product | Neevak | high — from title |\n   | Description | School fee management... | high — from hero |\n   | Domain | neevak.com | high — from URL |\n   | Stage | mvp | medium — no pricing page yet |\n\n   ### Tech Stack\n   | Field | Extracted Value | Confidence |\n   |-------|----------------|------------|\n   | Preset | nextjs | high — package.json found |\n   | ... | ... | ... |\n\n   Fields I couldn't determine: [list]\n\n   Does this look right? I'll ask about the missing fields.\n   ```\n\n7. **Fill gaps** — for fields that couldn't be extracted:\n   - If a preset was determined, apply preset defaults\n   - For remaining unknowns, ask the user (interactive-style) only for those specific fields\n   - Apply smart defaults for everything else\n\n8. **On confirmation** — proceed to Step 6 (Write config) through Step 11 (Verify), same as Express mode\n\n### Example Usage\n\n**URL mode:**\n```\n\u002Fsetup https:\u002F\u002Fneevak.com\n```\n\n**Text dump mode:**\n```\n\u002Fsetup\n\nWe're Univas Collective, building Neevak — a school fee management\nplatform for Indian K-12 schools. Schools currently use Excel, cash\ncounters, and WhatsApp to manage crores in fee collection. We're\nreplacing that with a proper infrastructure layer.\n\nWe're using Next.js with TypeScript, PostgreSQL, and deploying on\nVercel. Each school is a tenant with RLS isolation. We need mobile\nsupport — parents will use Android primarily. We're at MVP stage,\nabout to onboard our first 10 pilot schools.\n\nTech: Next.js 14, Prisma, PostgreSQL, Redis for caching, BullMQ for\nbackground jobs (receipt generation, payment reminders). Auth via\nClerk. We'll need WhatsApp integration for notifications.\n```\n\nThe wizard would extract all of that into a pre-filled config, infer the preset (Next.js + Vercel), set multi-tenant with RLS, platforms targeting web + mobile-web + android, and present the full config for one-click confirmation.\n\n---\n\n## Interactive Mode Procedure\n\n### Step 1: Detect Environment\n\n1. Check if `company.config.yaml` exists and has any non-empty values\n2. Check if `.claude\u002Fsettings.json` exists and has permissions\n3. Check if `artifacts\u002F`, `tools\u002F`, `standards\u002F` directories exist\n4. Classify the situation:\n   - **Fresh setup**: No config or all fields empty → full walkthrough\n   - **Reconfigure**: Config exists with values → ask \"Update existing configuration or start fresh?\"\n   - **Overlay**: Existing codebase detected (e.g., `package.json`, `requirements.txt`, `go.mod`, `Cargo.toml`) → note existing stack, suggest preset\n\n### Step 2: Company Profile\n\nGather the following (skip fields that already have values unless user wants to update):\n\n- `company.name` — company or project name\n- `company.product` — product name\n- `company.description` — one-line product description\n- `company.domain` — primary domain (optional)\n- `company.stage` — idea | mvp | growth | scale\n\n### Step 3: Tech Stack Selection\n\nOffer presets first to save time, then allow customization:\n\n| Preset | Language | Framework | Runtime | DB | ORM | Hosting | CI |\n|--------|----------|-----------|---------|-----|-----|---------|-----|\n| **Next.js + Vercel** | TypeScript | Next.js | Node.js 20 | PostgreSQL | Prisma | Vercel | GitHub Actions |\n| **FastAPI + AWS** | Python | FastAPI | Python 3.12 | PostgreSQL | SQLAlchemy | AWS | GitHub Actions |\n| **Express + Railway** | TypeScript | Express | Node.js 20 | PostgreSQL | Prisma | Railway | GitHub Actions |\n| **Django + AWS** | Python | Django | Python 3.12 | PostgreSQL | Django ORM | AWS | GitHub Actions |\n| **Go + Fly.io** | Go | Gin | Go 1.22 | PostgreSQL | GORM | Fly.io | GitHub Actions |\n| **Rails + Heroku** | Ruby | Rails | Ruby 3.3 | PostgreSQL | ActiveRecord | Heroku | GitHub Actions |\n| **Custom** | — | — | — | — | — | — | — |\n\nAfter preset selection, walk through remaining `tech_stack` fields not covered by preset:\n- `cache` (Redis | Memcached | none)\n- `queue` (BullMQ | Celery | SQS | none)\n- `search` (Elasticsearch | Meilisearch | Typesense | none)\n\nIf the environment has existing files (e.g., `package.json` → Node.js), suggest the matching preset.\n\n### Step 4: API & Conventions\n\nProvide smart defaults based on the chosen preset. Only prompt when the user needs to decide.\n\n**API section:**\n- `api.style` — REST | GraphQL | gRPC | tRPC\n- `api.spec_format` — OpenAPI 3.1 | GraphQL SDL | Protobuf\n- `api.error_format` — RFC7807 | custom\n- `api.versioning` — url-path (\u002Fv1\u002F) | header | query-param | none\n- `api.auth` — JWT | API Keys | OAuth2 | session | Clerk | Auth.js\n- `api.pagination` — cursor | offset | none\n- `api.rate_limiting` — token-bucket | sliding-window | none\n\n**Conventions section:**\n- `conventions.branching` — trunk-based | gitflow | github-flow\n- `conventions.commit_style` — conventional | gitmoji | freeform\n- `conventions.test_framework` — Vitest | Jest | pytest | go test | cargo test\n- `conventions.linter` — ESLint | Biome | Ruff | golangci-lint\n- `conventions.formatter` — Prettier | Biome | Black | gofmt\n- `conventions.monorepo` — true | false\n- `conventions.monorepo_tool` — Turborepo | Nx | pnpm workspaces | none (only if monorepo is true)\n\n**Preset defaults** (apply these, ask user to confirm or change):\n\n| Field | Next.js + Vercel | FastAPI + AWS | Express + Railway | Django + AWS | Go + Fly.io | Rails + Heroku |\n|-------|-----------------|---------------|-------------------|-------------|-------------|----------------|\n| api.style | REST | REST | REST | REST | REST | REST |\n| api.spec_format | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 | OpenAPI 3.1 |\n| api.auth | JWT | JWT | JWT | session | JWT | session |\n| api.pagination | cursor | cursor | cursor | offset | cursor | offset |\n| conventions.test_framework | Vitest | pytest | Vitest | pytest | go test | RSpec |\n| conventions.linter | ESLint | Ruff | ESLint | Ruff | golangci-lint | RuboCop |\n| conventions.formatter | Prettier | Black | Prettier | Black | gofmt | RuboCop |\n| conventions.branching | trunk-based | trunk-based | trunk-based | trunk-based | trunk-based | github-flow |\n| conventions.commit_style | conventional | conventional | conventional | conventional | conventional | conventional |\n\n### Step 5: Architecture, Observability & i18n\n\nPrompt for key decisions:\n- `architecture.multi_tenant` — true | false (default: false)\n- `architecture.tenant_isolation` — only if multi_tenant is true\n- `architecture.deployment_model` — serverless | containers | VMs | edge\n\nObservability with sensible defaults:\n- `observability.logging` — structured-json (default)\n- `observability.error_tracking` — Sentry (default) | Bugsnag | none\n- Leave `log_provider`, `metrics`, `tracing` as `\"\"` (can configure later)\n\ni18n (only prompt if user indicates international audience):\n- `i18n.enabled` — true | false (default: false)\n- If true: `i18n.default_locale`, `i18n.supported_locales`, `i18n.strategy` (key-based | gettext | ICU), `i18n.fallback`\n\n### Step 5.5: Platforms, Analytics, Feature Flags & Email\n\n**Platforms** — ask about target platforms:\n- `platforms.targets` — [web, mobile-web, ios, android] (default: [web] for web frameworks, [web, mobile-web] for Next.js\u002FNuxt)\n- `platforms.mobile_framework` — [react-native, expo, flutter, capacitor] (only if ios or android in targets; array, supports multiple)\n- `platforms.responsive` — true | false (default: true for any web target)\n- `platforms.pwa` — true | false (default: false)\n\n**Preset platform defaults:**\n\n| Preset | targets | responsive | mobile_framework |\n|--------|---------|------------|-----------------|\n| Next.js + Vercel | [web, mobile-web] | true | [] |\n| FastAPI + AWS | [web] | true | [] |\n| Express + Railway | [web] | true | [] |\n| Django + AWS | [web] | true | [] |\n| Go + Fly.io | [web] | true | [] |\n| Rails + Heroku | [web] | true | [] |\n\n**Analytics** — ask if the product needs analytics (recommended for all products beyond `idea` stage):\n- `analytics.provider` — Mixpanel | Amplitude | Pendo | PostHog | none (default: none for `idea`, PostHog for `mvp`+)\n- `analytics.event_prefix` — auto-suggest from `company.product` (lowercase, hyphenated)\n- `analytics.tracker_attribute` — data-track-id (default) | data-analytics | custom\n\n**Feature Flags** — ask about rollout strategy:\n- `feature_flags.provider` — LaunchDarkly | Flagsmith | Unleash | custom | config-file (default: config-file for early stage)\n- `feature_flags.strategy` — progressive-discovery | release-only | full (default: release-only for `idea`\u002F`mvp`, full for `growth`\u002F`scale`)\n- `feature_flags.cleanup_sla_days` — number of days (default: 14)\n\n**Email** — ask if the product sends emails (skip for pure API products):\n- `email.provider` — Resend | Sendgrid | Postmark | SES | none (default: none)\n- `email.from_address` — auto-suggest: noreply@{company.domain}\n- `email.template_engine` — react-email (for TypeScript\u002FNext.js) | mjml (for any) | handlebars (for Node.js) | jinja (for Python) | plain-html (default: infer from tech stack)\n\n### Step 5.6: Model Preferences\n\nAsk: \"Which model tier should each agent use? This controls cost vs. capability.\"\n\nOffer presets first:\n\n| Preset | Orchestrator | Engineering | Product | QA | Ops & Risk | Growth |\n|--------|-------------|-------------|---------|-----|-----------|--------|\n| **Cost-Optimized** (Recommended) | opus | opus | sonnet | sonnet | sonnet | sonnet |\n| **All Opus** | opus | opus | opus | opus | opus | opus |\n| **All Sonnet** | sonnet | sonnet | sonnet | sonnet | sonnet | sonnet |\n| **Custom** | — | — | — | — | — | — |\n\n**Default**: Cost-Optimized — keeps Opus for Orchestrator (routing\u002Fgating) and Engineering (architecture\u002Fimplementation), uses Sonnet for structured\u002Ftemplate-driven agents.\n\nIf user selects Custom, walk through each agent:\n- `models.orchestrator` — opus (recommended) | sonnet | haiku\n- `models.engineering` — opus (recommended) | sonnet\n- `models.product` — sonnet (recommended) | opus\n- `models.qa_release` — sonnet (recommended) | opus\n- `models.ops_risk` — sonnet (recommended) | opus\n- `models.growth` — sonnet (recommended) | opus | haiku\n\nAfter selection, update both:\n1. `company.config.yaml` `models:` section with the chosen values\n2. Each `os\u002Fagents\u002F*.md` frontmatter `model:` field to match. Edit `os\u002Fagents\u002F`, not `.claude\u002Fagents\u002F` (that folder is generated), then run `bash tools\u002Fbuild\u002Fbuild.sh` to regenerate the adapters\n\n### Step 5.7: Design & Brand\n\nConfigure the product's design archetype — the visual and UX personality that drives all frontend implementation. This step uses the same procedure defined in the **design-system** skill (S-ENG-12). Refer to `os\u002Fskills\u002Fdesign-system\u002FSKILL.md` Step 1 for the full wizard flow.\n\n**Summary of the flow:**\n\n1. Ask 3 product-context questions:\n   - **Product Type**: What are you building? (internal tool \u002F CRM \u002F knowledge base \u002F collaborative workspace \u002F consumer app \u002F creative tool)\n   - **User Priority**: What matters most? (speed \u002F record management \u002F focused content \u002F real-time collaboration \u002F simplicity \u002F visual impact)\n   - **Information Density**: How much should users see at once? (dense \u002F moderate \u002F minimal)\n\n2. Score each answer against 6 archetypes using the scoring matrix (see design-system skill for full table). Sum scores. Present top 2-3 recommendations.\n\n3. **Present recommendations with visual cues** — this is critical for users who don't know the reference products:\n   - Lead with the **vibe name** and **dimension bars** (density, warmth, sophistication, interaction)\n   - Show **ASCII wireframe preview** from the archetype file so users can *see* the feel\n   - Include **\"Think: Product1, Product2\"** as secondary reference hints\n   - Show **\"Best for\"** and **\"Not ideal for\"** lists\n\n4. User picks an archetype → write `design.archetype` to config.\n\n5. Ask two follow-up preferences:\n   - **Dark mode**: auto (follow system) | light | dark | both (user toggle)\n   - **Density**: compact | comfortable (default) | spacious\n\n6. Write all three values to `design:` section in config.\n\n**Express mode support** — add to the express mode template:\n```\n## Design\n- Archetype: linear | attio | notion | figma | things3 | framer\n- Dark Mode: auto | light | dark | both\n- Density: compact | comfortable | spacious\n```\n\n**Auto-extract heuristics** — when extracting from URL\u002Ftext, use keyword matching:\n- \"admin\", \"dashboard\", \"monitoring\", \"ops\" → Linear\n- \"CRM\", \"contacts\", \"records\", \"inventory\", \"school\" → Attio\n- \"docs\", \"wiki\", \"knowledge\", \"notes\", \"learning\" → Notion\n- \"collaboration\", \"real-time\", \"whiteboard\", \"canvas\" → Figma\n- \"personal\", \"simple\", \"consumer\", \"wellness\", \"journal\" → Things 3\n- \"marketing\", \"creative\", \"portfolio\", \"landing\" → Framer\n\n**Skip condition**: If user already has `design.archetype` set and doesn't want to change it, skip this step.\n\n### Step 6: Write `company.config.yaml`\n\nWrite the complete config file with all gathered values. Preserve the comment structure from the template. Leave uncollected optional fields as `\"\"`.\n\n### Step 7: Generate \u002F Merge `.claude\u002Fsettings.json`\n\n**Claude Code only.** Run this step only when the Claude Code adapter is installed (the `.claude\u002F` folder exists) or you are running inside Claude Code. In Cursor, Codex, Gemini CLI or Aider without a `.claude\u002F` folder, skip it and say \"Skipped .claude\u002Fsettings.json (Claude Code is not installed)\". Do not create a `.claude\u002F` folder for other runtimes.\n\n**If `.claude\u002Fsettings.json` already exists:**\n1. Read and parse the existing file\n2. Preserve ALL existing user rules in `allow` and `deny` arrays\n3. Add Company OS base permissions + tech-stack-specific permissions\n4. Deduplicate — don't add rules that already exist\n5. Write back the merged result\n\n**If `.claude\u002Fsettings.json` does not exist:**\n1. Create it fresh with base + tech-stack permissions\n\n#### Base Permissions (always included)\n\n**Allow:**\n```json\n\"Read\", \"Edit\", \"Write\", \"Glob\", \"Grep\",\n\"Bash(.\u002Ftools\u002F*)\", \"Bash(.\u002Ftools\u002F**\u002F*)\",\n\"Bash(chmod *)\", \"Bash(mkdir *)\", \"Bash(ls *)\", \"Bash(pwd)\", \"Bash(wc *)\",\n\"Bash(git init*)\", \"Bash(git status*)\", \"Bash(git log *)\", \"Bash(git log)\",\n\"Bash(git diff *)\", \"Bash(git diff)\", \"Bash(git add *)\", \"Bash(git commit *)\",\n\"Bash(git branch *)\", \"Bash(git branch)\", \"Bash(git checkout *)\",\n\"Bash(git switch *)\", \"Bash(git fetch *)\", \"Bash(git pull *)\",\n\"Bash(git merge *)\", \"Bash(git stash *)\", \"Bash(git remote *)\",\n\"Bash(git tag *)\", \"Bash(git show *)\", \"Bash(git rev-parse *)\",\n\"Bash(git push *)\", \"Bash(git push)\",\n\"Bash(gh *)\"\n```\n\n**Deny:**\n```json\n\"Bash(git push --force*)\", \"Bash(git push -f *)\", \"Bash(git push -f)\",\n\"Bash(git reset --hard*)\", \"Bash(git clean -f*)\", \"Bash(git clean -df*)\",\n\"Bash(git checkout -- .)\", \"Bash(git restore .)\",\n\"Bash(rm -rf *)\", \"Bash(rm -rf \u002F)\", \"Bash(rm -f *)\",\n\"Bash(sudo *)\", \"Bash(curl *)\", \"Bash(wget *)\", \"Bash(nc *)\"\n```\n\n#### Tech-Stack-Specific Additions (add to allow)\n\n| Language | Additional Bash Permissions |\n|----------|---------------------------|\n| TypeScript \u002F JavaScript | `npm *`, `npx *`, `yarn *`, `pnpm *`, `bun *`, `node *` |\n| Python | `python *`, `python3 *`, `pip *`, `pip3 *`, `poetry *`, `uv *` |\n| Go | `go *` |\n| Rust | `cargo *`, `rustc *` |\n| Ruby | `ruby *`, `gem *`, `bundle *`, `rails *` |\n| Java | `mvn *`, `gradle *`, `java *`, `javac *` |\n\n#### Monorepo Tool Additions (add to allow if monorepo is true)\n\n| Tool | Additional Bash Permissions |\n|------|---------------------------|\n| Turborepo | `turbo *` |\n| Nx | `nx *` |\n| pnpm workspaces | (already covered by `pnpm *`) |\n\n### Step 8: Scaffold Directories\n\nCreate any missing directories (idempotent — skip if they already exist):\n\n```\nartifacts\u002Fprds\u002F\nartifacts\u002Frfcs\u002F\nartifacts\u002Ftest-plans\u002F\nartifacts\u002Fqa-reports\u002F\nartifacts\u002Flaunch-briefs\u002F\nartifacts\u002Fsecurity-reviews\u002F\nartifacts\u002Fdecision-memos\u002F\nartifacts\u002Fproduct\u002F\nartifacts\u002Fexperiments\u002F\nartifacts\u002F.audit-log\u002F\nstandards\u002Fapi\u002F\nstandards\u002Fcoding\u002F\nstandards\u002Fcompliance\u002F\nstandards\u002Ftemplates\u002F\nstandards\u002Fbrand\u002F\nstandards\u002Fops\u002F\nstandards\u002Fanalytics\u002F\nstandards\u002Fdocs\u002F\nstandards\u002Femail\u002F\nstandards\u002Fengineering\u002F\nimports\u002F (with .gitkeep if empty)\ntasks\u002F (with todo.md and lessons.md if missing)\nseeds\u002F (with .gitkeep)\nartifacts\u002Ftest-data\u002F (with .gitkeep)\n```\n\nDo NOT create directories that are part of Company OS source (`.claude\u002F`, `tools\u002F`) — these should already exist from the template.\n\n### Step 8b: Initialize App Versioning\n\nSet up version tracking for the user's application. This is separate from Company OS versioning — this tracks the user's product version.\n\n1. **Detect existing version file**:\n   - If `package.json` exists and has a `\"version\"` field → use it (don't overwrite)\n   - If `pyproject.toml` exists and has a `version` field → use it\n   - If a `VERSION` file exists (and is not the Company OS version — check against `.company-os\u002Fversion`) → use it\n   - If none found → create `VERSION` file with the appropriate initial version\n\n2. **Set initial version based on stage**:\n   - If `company.stage` is `idea` or `mvp` (or empty): version starts at `0.1.0`\n   - If `company.stage` is `growth` or `scale`: version starts at `1.0.0`\n   - If an existing version file was detected, keep its current value\n\n3. **Create app CHANGELOG.md** (only if no CHANGELOG.md exists):\n   ```markdown\n   # Changelog\n\n   All notable changes to this project are documented in this file.\n   Format based on [Keep a Changelog](https:\u002F\u002Fkeepachangelog.com\u002F).\n\n   ## [Unreleased]\n\n   ## [0.1.0] - {today's date}\n   ### Added\n   - Initial release\n   ```\n   Use the initial version from step 2 in the heading (0.1.0 or 1.0.0).\n\n4. **Create `.previous-version`** with `0.0.0` (baseline for first bump detection)\n\n5. **Add `.previous-version` to `.gitignore`** if not already present (internal tracking file, not user-facing)\n\n6. **Report**: \"App versioning initialized at v{version}. The ship flow will auto-bump versions on each release.\"\n\n### Step 9: Skill Category Selection (Optional)\n\nAsk: \"Which skill categories do you need? All are included by default.\"\n\n- **Product** (PRDs, prioritization, ICP) — default: keep\n- **Engineering** (architecture, API design, implementation) — default: keep\n- **QA & Release** (test plans, release gates, benchmarks) — default: keep\n- **Growth** (launch, SEO, content, activation) — default: keep (suggest removing for internal tools)\n- **Legal & Compliance** (privacy, TOS, compliance, pricing) — default: keep (suggest removing for early-stage)\n\nIf user removes a category, note it but don't delete skills (they're harmless if unused and easy to re-enable). Add a comment to `company.config.yaml`:\n\n```yaml\n# Disabled skill categories: growth, legal\n```\n\n### Step 10: Template Documentation Cleanup (Optional)\n\nAsk: \"Would you like to clean up template example files? This removes the example artifacts and standards and, if it is still the Company OS template README, replaces it. Your own README.md, FAQ.md and similar files are never touched. The Company OS guides in `.company-os\u002Fdocs\u002F` stay.\"\n\n| File | Purpose | Recommendation |\n|------|---------|----------------|\n| `README.md` | Describes Company OS template | **Replace** with a project-specific README, but only when its first heading is `# Company OS` (the template copy). Otherwise it is the user's own README: keep it and say so |\n| `.company-os\u002Fdocs\u002F` | Company OS guides (SETUP, CONCEPTS, CONFIG_REFERENCE, CUSTOMIZING, TROUBLESHOOTING, FAQ, TOKEN_COSTS, ROADMAP, CHANGELOG, SKILL_SCHEMA) and the `diagrams\u002F` they embed | **Keep.** Other files link to them and they cost no tokens unless read |\n| `.company-os\u002Fsetup.sh` | Bash fallback for setup (installed with Company OS) | **Keep.** Upgrades refresh it |\n| `TOKEN_COSTS.md`, `FAQ.md`, `SETUP_COMPANY_OS.md` (repo root) | Old copies of guides that now live in `.company-os\u002Fdocs\u002F`. Present only in projects set up before 1.12.0 | **Remove** only when the file is the Company OS copy: its first line is `# FAQ — AI Agentic Company OS`, `# Setup Guide — AI Agentic Company OS`, or `# Token Cost Reference` (with \"Company OS\" in the first five lines). Any other file with these names is the user's own: keep it and say so. `bash .company-os\u002Fsetup.sh --cleanup` applies the same rule |\n| `artifacts\u002Fprds\u002FPRD-EXAMPLE-001-notifications.md` | Example PRD artifact | **Remove** after reviewing |\n| `artifacts\u002Frfcs\u002FRFC-EXAMPLE-001-notification-system.md` | Example RFC artifact | **Remove** after reviewing |\n| `standards\u002Fapi\u002Fexample-api-conventions.md` | Example API standards | **Remove** after reviewing |\n| `standards\u002Fcoding\u002Fexample-coding-standards.md` | Example coding standards | **Remove** after reviewing |\n\nIf user confirms:\n1. Delete the legacy root files above (only the Company OS copies), example artifacts, and example standards. List any root file you kept because it is not a Company OS copy\n2. Replace `README.md` with a minimal project README only if it is the template README (first heading `# Company OS`); otherwise leave it and say \"README.md is your own, so I left it\":\n   ```\n   # {company.product}\n   {company.description}\n   ```\n3. Report what was cleaned up\n\nFiles that are **always kept** (operationally required):\n- `CLAUDE.md` — auto-loaded every session, governs all agent behavior\n- `company.config.yaml` — central configuration for all agents\u002Fskills\u002Ftools\n- `.claude\u002F` — agents, skills, settings\n- `tools\u002F` — enforcement scripts\n- `artifacts\u002F`, `standards\u002F`, `tasks\u002F`, `imports\u002F` — working directories\n\n### Step 11: Verify & Report\n\n1. Run `.\u002Ftools\u002Fregistry\u002Fhealth-check.sh` — verify all skills discoverable\n2. Validate `company.config.yaml` is well-formed YAML\n3. If Step 7 ran, validate `.claude\u002Fsettings.json` is well-formed JSON\n4. Print setup summary:\n\n```\n## Setup Complete\n\n### Company Profile\n- Company: {name}\n- Product: {product}\n- Stage: {stage}\n\n### Tech Stack\n- {language} \u002F {framework} \u002F {database}\n- Hosting: {hosting}, CI: {ci}\n\n### Permissions\n- .claude\u002Fsettings.json configured with {N} allow rules, {M} deny rules (or \"skipped: Claude Code not installed\")\n- Tech stack: {language} permissions included\n\n### Directories\n- {N} directories created, {M} already existed\n\n### Next Steps\n1. **`\u002Fdev-environment`** — Generate Docker Compose, `.env.example`, and dev scripts. **Required before running `\u002Fship`** — the Seed & Verify step depends on `tools\u002Fdev\u002Fstart.sh`.\n2. **Install dependencies** — run `npm install`, `pip install -r requirements.txt`, `go mod download`, or the equivalent for your tech stack\n3. **Place reference docs** in `standards\u002F` and run `\u002Fingest` to sync agents\n4. **Import existing artifacts** — if you have PRDs, RFCs, or specs elsewhere, run `\u002Fartifact-import` to bring them in\n5. **Generate seed data** — after your first ship cycle creates domain entities, run `\u002Fseed-data` to generate test data for all scenarios\n6. **Build your first feature** — ask the Orchestrator: \"Build [feature] for [product]\"\n```\n\n## Edge Cases\n\n- **No git repo**: Warn user to run `git init` first (artifacts use timestamps but git history aids audit)\n- **Conflicting stack signals**: If `package.json` exists but user picks Python preset, note the conflict but proceed (mono repos legitimately mix stacks)\n- **Existing `.claude\u002Fsettings.json` with custom rules**: Merge carefully — never remove user rules, only add\n- **Re-running `\u002Fsetup`**: Idempotent for directories and settings merge. Config overwrites with new values.\n\n## Reference\n\n- **ID**: S-ORG-06\n- **Category**: Orchestration\n- **Inputs**: user prompts, existing config state, environment signals\n- **Outputs**: `company.config.yaml`, `.claude\u002Fsettings.json`, scaffolded directories\n- **Used by**: User (directly), Orchestrator Agent\n- **Tool scripts**: `.\u002Ftools\u002Fregistry\u002Fhealth-check.sh`\n",{"name":5,"runtimes":40,"description":7},{"claude":41},{"argument-hint":42,"user-invocable":43},"[preset | config block | URL | description]",true,"main","e842fb6d0e04360c47db78bc2e2e2987314d64d4","os\u002Fskills\u002Fsetup",2,"https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os","https:\u002F\u002Fgithub.com\u002Fvibbs","Principal Engineer · Applied AI · building ArcAI @ GrowthArc","2026-10-21 02:08:08",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":43},[54,57,60],{"tool":55,"command":56},"npx","npx skills add vibbs\u002Fcompany-os --skill setup",{"tool":58,"command":59},"bunx","bunx skills add vibbs\u002Fcompany-os --skill setup",{"tool":61,"command":62},"pnpm","pnpm dlx skills add vibbs\u002Fcompany-os --skill setup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fsetup\u002FSKILL.md",[65,71,75,79,83],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"backlog-template.md","REFERENCE","参考文档",564,"https:\u002F\u002Fgithub.com\u002Fcodeasice\u002Fagentcore-presentation\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgds-code-review\u002Fbacklog-template.md",{"path":72,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":73,"sourceHtmlUrl":74},"bmad-skill-manifest.yaml",12,"https:\u002F\u002Fgithub.com\u002Fcodeasice\u002Fagentcore-presentation\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgds-code-review\u002Fbmad-skill-manifest.yaml",{"path":76,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":77,"sourceHtmlUrl":78},"checklist.md",1116,"https:\u002F\u002Fgithub.com\u002Fcodeasice\u002Fagentcore-presentation\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgds-code-review\u002Fchecklist.md",{"path":80,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":81,"sourceHtmlUrl":82},"discover-inputs.md",3911,"https:\u002F\u002Fgithub.com\u002Fcodeasice\u002Fagentcore-presentation\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgds-code-review\u002Fdiscover-inputs.md",{"path":84,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":85,"sourceHtmlUrl":86},"workflow.md",11724,"https:\u002F\u002Fgithub.com\u002Fcodeasice\u002Fagentcore-presentation\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgds-code-review\u002Fworkflow.md",[88,97,105,115,131,147],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":35},"01M6CTHBW1E64ECYGD105N4S5E","typo-field","Fixture skill with a misspelled top-level field.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Ftypo-field\u002FSKILL.md",[],[95,96],"typo field","fixture skill",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":35},"01M6CTHABTV8FKVDHFMMKPAV51","spaced-comments","Fixture skill with comments and spaces after block keys.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fspaced-comments\u002FSKILL.md",[],[104,96],"spaced comments",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":35},"01M6CTH8MHC14KB65ZDHYBJW1N","crlf-comments","Fixture skill with Windows line endings.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fcrlf-comments\u002FSKILL.md",[],[112,113,114,96],"crlf comments","CRLF","windows",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":35},"01M6CTH6TBKTDP9G8QB1Z2K0TY","claude-fields","Fixture skill using top-level fields Claude Code documents.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fclaude-fields\u002FSKILL.md",[],[122,123,124,125,126,127,96,128,129,130],"claude fields","explore","documents","src","grep","read","Bash","code","testing",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":140,"publishedAt":35},"01M6CTH46BGKXH80RWS876Y2CW","workflow-router","Maps an objective to the artifacts, stages and agents it needs. Use when deciding what happens next or which agents to involve.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fworkflow-router\u002FSKILL.md",[137],{"categoryNo":138,"categoryName":139,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[141,142,143,144,145,32,146],"workflow","router","workflow router","next","maps","artifacts",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":35},"01M6CTH27653SRVP2FMEQN3J5B","weekly-review","Summarizes your week: what shipped, AI spend, support themes, security health and next priorities. Use at the end of each week.","https:\u002F\u002Fgithub.com\u002Fvibbs\u002Fcompany-os\u002Fblob\u002Fmain\u002Fos\u002Fskills\u002Fweekly-review\u002FSKILL.md",[],[154,155,156,144,32,157,158,159,160],"weekly review","review","priorities","health","save","support","security"]