From we
Project onboarding — detects stack, ticketing tool, and optionally creates project vision, DoR, DoD. Interactive, minimal (3 questions). Use when user says "/we:setup", "configure project", "set up workflow".
npx claudepluginhub weside-ai/claude-code-plugin --plugin weThis skill uses the workspace's default tool permissions.
Interactive project onboarding. Three questions, then done.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Interactive project onboarding. Three questions, then done.
/we:* skills in a projectScan the project to detect:
Stack:
pyproject.toml → Python (ruff, mypy, pytest)package.json → Node.js (eslint, tsc, jest/vitest)Cargo.toml → Rustgo.mod → GoTicketing Tool (check in order):
execute_tool with JIRA_*) → Jira via Composio (preferred)jira_* tools) → Jira direct (fallback)gh CLI available → GitHub IssuesIf weside MCP is connected but Jira tools are missing: Tell the user:
"Jira is not connected via your weside Companion. To enable it: go to weside.ai → Integrations → connect Jira, then activate it for your Companion."
Existing Config:
.weside/ directory exists → already configuredCLAUDE.md exists → read for conventionsCheck if recommended companion plugins are installed. Read ~/.claude/plugins/installed_plugins.json or check if the skill appears in available skills.
| Plugin | Provides | Used By |
|---|---|---|
code-simplifier@claude-plugins-official | /simplify skill | Step 4: Simplify in /we:story |
security-guidance@claude-plugins-official | Security hooks during development | /we:story Step 2 security checks |
If either is missing, inform the user:
"Recommended plugin not installed: {plugin-name}. It provides {what}. Install with:
/install {plugin-name}" "The /we:* pipeline works without it, but {feature} will be skipped."
Do NOT block. This is informational only — the pipeline works without these plugins.
1. "Do you have a product vision? (Link, file, or brief description)"
→ If yes: save to .weside/vision.md
→ If no: "No problem — we'll skip vision checks for now."
2. "Which ticketing tool? (Auto-detected: {detected})"
→ Confirm or override
→ If Jira: "What's your project key? (e.g. 'PROJ')"
3. "Stack detected: {detected}. Correct?"
→ Confirm or override
If user provided a vision or wants custom DoR/DoD:
.weside/
├── vision.md # Product vision (optional)
├── dor.md # Custom DoR overrides (optional)
└── dod.md # Custom DoD overrides (optional)
Otherwise: plugin uses built-in defaults from quality/dor.md and quality/dod.md.
Project configured!
Stack: Python + TypeScript (monorepo)
Ticketing: Jira (project: PROJ)
Vision: .weside/vision.md
Ready to go:
/we:refine — Create/refine stories
/we:story — Implement a story end-to-end
/we:review — Code review
Setup is the first touchpoint. Use it to gently explain WHY things matter:
| Question | What the user learns |
|---|---|
| "Do you have a vision?" | Vision helps prioritize — without it, every feature seems equally important |
| "Which ticketing tool?" | Structured backlogs prevent context loss and enable traceability |
| "Custom DoR/DoD?" | Quality gates prevent rework — catching issues early is 10x cheaper |
Never block. Every question has a "skip" path. The user can always run /we:setup again later.