Interactive first-run workspace setup with directory scaffolding, integration verification, and context gathering
Initializes a TARS workspace by creating directory structures, verifying integrations, and gathering user context through interactive setup.
npx claudepluginhub ajayjohn/tars-work-assistantThis skill inherits all available tools. When active, it can use any tool Claude has access to.
Interactive first-run setup. Creates workspace scaffolding and learns user context.
This skill replaces both install.sh and the legacy /welcome command.
No external protocol file. Self-contained setup command.
Check for existing workspace files:
CLAUDE.md (root config)memory/ directorytasks/ directoryjournal/ directorycontexts/ directoryreference/replacements.mdIf files exist, ask: "Existing workspace detected. A) Add to it, B) Start fresh, C) Cancel"
Run the automated scaffolding script:
bash scripts/scaffold.sh {workspace_path} {plugin_path}
This script creates all directories, copies reference templates, creates empty indexes, and verifies configured integrations. Parse the JSON output to determine what was created and which integrations are available.
Then run integration verification separately for detailed health info:
python3 scripts/verify-integrations.py {workspace_path}
This script checks each configured integration's health and returns JSON with status per integration (configured, error, not_configured, check_mcp_servers). Report integration status to the user.
If the scripts are not available, create directories manually:
memory/
people/
vendors/
competitors/
products/
initiatives/
decisions/
organizational-context/
journal/
contexts/
products/
artifacts/
And verify manually:
reference/integrations.md Tasks section. Execute a test list operation. If it fails, warn and continue.reference/integrations.md Calendar section. Execute a test list_events operation. If it fails, warn and continue.Display integration status clearly using symbols:
After verifying integrations in Step 2, check the status of calendar and tasks integrations. For each integration that is not configured, provide guidance to the user.
For Calendar (if not configured):
Display:
⚠ Calendar not configured
TARS needs calendar access for:
- Daily and weekly briefings with schedule awareness
- Meeting attendee context and calendar lookups
- "When did I last meet X?" queries
- Full meeting processing pipeline
Recommended MCP Servers:
- Apple Calendar: @modelcontextprotocol/server-apple-calendar
- Google Calendar: @modelcontextprotocol/server-google-calendar
- Microsoft 365: @modelcontextprotocol/server-microsoft-365
Setup Instructions:
1. Create .mcp.json in your workspace root (if it doesn't exist)
2. Add calendar MCP server configuration
3. Restart Claude Cowork/Code
4. Re-run /welcome to verify
Example .mcp.json for Apple Calendar:
{
"mcpServers": {
"apple-calendar": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-apple-calendar"]
}
}
}
For Tasks (if not configured):
Display:
⚠ Tasks not configured
TARS needs task manager access for:
- Automatic action item creation from meetings
- Task tracking in daily/weekly briefings
- Task triage and prioritization
- Accountability tracking
Recommended MCP Servers:
- Apple Reminders: @modelcontextprotocol/server-apple-reminders
- Todoist: @modelcontextprotocol/server-todoist
- TickTick: @modelcontextprotocol/server-ticktick
- Microsoft To-Do: @modelcontextprotocol/server-microsoft-todo
- Linear: @modelcontextprotocol/server-linear (for engineering teams)
Setup Instructions:
1. Add to your .mcp.json file
2. Restart Claude Cowork/Code
3. Re-run /welcome to verify
Example .mcp.json with both calendar and tasks:
{
"mcpServers": {
"apple-calendar": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-apple-calendar"]
},
"apple-reminders": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-apple-reminders"]
}
}
}
If both calendar and tasks are configured (MCP or legacy): → Report: "✓ Calendar: Configured" and "✓ Tasks: Configured" → Skip guidance and proceed directly to Step 3
If one or both integrations have errors: → Display troubleshooting:
Ask user before proceeding: If calendar and/or tasks are not configured, ask: "I notice calendar and/or tasks are not configured. You can:
What would you like to do?"
If user chooses to continue, proceed to Step 3. If user chooses to exit, display: "Setup incomplete. To configure integrations:
See GETTING-STARTED.md 'Essential Integrations' section for more details."
Gather context through bounded questions (max 3 questions per round):
Round 1: Identity
Round 2: Organization
Round 3: People
Round 4: Context
Using the gathered information, create:
CLAUDE.md (workspace root)# TARS Framework
You are TARS, the intelligent assistant for **{user_name}, {title} at {company}**.
{company_description}
Teams: {team_list}.
Products: {product_list}.
---
## Core directives
- **BLUF**: Lead every response with the bottom line. No preambles.
- **Anti-sycophancy**: Challenge flawed premises. Never default to agreement.
- **Clarification**: If critical context is missing after checking sources, STOP and ask using bounded techniques (menu, strawman, binary). Never guess.
- **Wikilinks**: Use `[[Entity Name]]` for all internal entity references.
- **Name normalization**: Read `reference/replacements.md` before processing any names. Always use canonical forms.
- **Framework citation**: When applying a decision framework, state which one and why.
---
## MCP integrations
External tools available via MCP. See `reference/integrations.md` for query patterns.
Configured: {configured_mcps}. Placeholder: {placeholder_mcps}.
reference/replacements.mdPopulate People section with nicknames from Round 3. Populate Teams section with abbreviations. Populate Products/Initiatives section with acronyms from Round 4.
reference/taxonomy.mdCopy the template taxonomy from the plugin's reference/taxonomy.md. No user-specific modifications needed (it's already generic structure).
reference/kpis.mdCreate a template KPI file with sections for each team and initiative gathered in setup:
# KPI definitions
User-maintained file. Add metrics per team and initiative.
---
## {Team Name}
- **Velocity**: Average story points per sprint (~~project tracker)
- **Cycle time**: Average days from start to done (~~project tracker)
[Repeat for each team]
---
## {Initiative Name}
- **Feature completion**: Done / Total stories (~~project tracker)
- **Blocked items**: Issues in Blocked status (~~project tracker)
[Repeat for each initiative]
---
## Adding new KPIs
1. Add under the appropriate team or initiative heading
2. Format: `- **Metric Name**: Description (data source)`
3. Include the data source so the report protocol knows where to query
For each memory category, create an empty _index.md:
# {Category} index
| Name | Aliases | File | Summary | Updated |
|------|---------|------|---------|---------|
Create contexts/products/_index.md:
# Product specifications index
| Name | Status | Owner | Summary | Updated |
|------|--------|-------|---------|---------|
Create contexts/artifacts/_index.md:
# Artifacts index
| Name | Type | Created | Source | Summary |
|------|------|---------|--------|---------|
For each key person from Round 3, create memory/people/{slug}.md:
---
title: Full Name
type: person
tags: [stakeholder]
aliases: [nickname1, nickname2]
summary: Role description
related: []
updated: YYYY-MM-DD
---
# [[Full Name]]
**Role:** {role}
**Relationship:** {relationship to user}
Update memory/people/_index.md with all entries.
Create memory/_index.md with counts.
reference/schedule.mdCreate empty schedule template from the plugin's reference/schedule.md for recurring and one-time scheduled items.
If MCP tools are available, offer:
If the calendar integration is reachable, offer:
If accepted, run lightweight queries and add findings to memory.
If the environment supports Cowork shortcuts with schedules:
reference/shortcuts.md and the user's preferred cron schedule (see shortcuts.md for the Cowork shortcut creation steps)If the environment does not support scheduled shortcuts, skip this step. The session-start check will handle daily housekeeping.
Display summary:
## Setup complete
### Workspace created
- CLAUDE.md (root config)
- reference/replacements.md ({N} entries)
- reference/kpis.md ({N} teams, {N} initiatives)
- memory/ ({N} people created, {N} category indexes)
- journal/ (ready)
- contexts/ (products index, artifacts index ready)
### Integration status
- Calendar: {✓ Configured (MCP) | ✓ Configured (legacy) | ⚠ Not configured | ✗ Error}
- Tasks: {✓ Configured (MCP) | ✓ Configured (legacy) | ⚠ Not configured | ✗ Error}
{If any integration is not configured or errored:}
⚠ Missing integrations will limit functionality. See GETTING-STARTED.md "Essential Integrations" section for setup instructions.
### Next steps
1. {If integrations configured:} Run `/briefing` to see your first morning briefing
{If not:} Configure calendar and tasks in .mcp.json, restart Claude, and re-run /welcome
2. Run `/meeting` with your next meeting transcript
3. Add more people and context as you use TARS
4. Edit `reference/kpis.md` to define your team metrics
5. Daily housekeeping runs automatically (shortcut or session-start check)
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.