# Studio Startup

> Morning studio startup routine. Syncs all project mirrors, runs the Abderus timing sweep, surfaces overdue tasks and harvest gaps, and gives a pulse check to start the day. Run at the beginning of any work session.

- Skill: `markbaindesign/studio-startup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add markbaindesign/studio-startup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/markbaindesign/studio-startup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: markbaindesign (https://skillmd.com/u/markbaindesign)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/markbaindesign/studio-startup

---


# Studio Startup

Run this at the start of every work session. It syncs the world, then tells you what matters today.

## Steps

### 1. Sync all project mirrors

Pull the latest Asana state for all registered projects:

```bash
cd /media/data/dev/bain-studio && python3 studio/sync.py
```

Wait for completion. If any project fails to sync, note it but continue.

### 2. Read the studio pulse

Read `/media/data/dev/bain-studio/studio/projects.md` for the registered project list.

For each active project, read its `asana-mirror.md`. Extract:
- Overdue tasks (due date in the past)
- Tasks with no Progress note
- Open questions from `.claude/open-questions.md` if it exists

### 3. Run Abderus

```
/abderus
```

Abderus surfaces harvest gaps, stale projects, pending follow-ups, and overdue obligations. Let it run and include its output in the startup report.

### 4. Check Obsidian harvest

Read `/media/data/dev/bain-studio/studio/collectors/obsidian_standup.json` if it exists.

Surface:
- How many spec stubs were created since the last sweep, and their names (strip the `project-` / `skill-` prefix for readability)
- How many ideas were filed

If the file doesn't exist or `spec_stubs` is 0 and `ideas` is 0, skip this section.

### 5. Check the studio inbox

Run `/check-inbox` to process any pending messages in `studio/inbox/`.

If any urgent or high-priority messages are found, surface them at the top of the startup report before anything else.

### 6. Check the financial pulse

Read `/media/data/Dropbox/Work/Admin/Financial/Accounting/accounts.json`. Surface:
- Current bank balance (`total_eur`)
- Cash after 30-day obligations (`balance_after_30d`)
- Any overdue invoices from `accounts.json`'s `harvest.invoices` field (sourced live from Harvest)

If `balance_after_30d` is below €1,000, flag as **low cash warning**.

### 7. Startup report

Output a concise startup report:

```
## Studio Startup — {YYYY-MM-DD}

### Sync
{N} projects synced. Errors: {none / list}

### Overdue tasks
{list by project, or "None"}

### Open questions
{list by project, or "None"}

### Harvest gaps (from Abderus)
{summary}

### Obsidian harvest _(if anything new)_
{N} spec stubs: {name}, {name} | {N} ideas filed

### Financial pulse
Balance: €{total_eur} | After 30d obligations: €{balance_after_30d}
{Low cash warning if applicable}
{Overdue invoices if any}

### Today's priorities
{Top 3 most pressing items across all projects — your judgment}
```

Keep it scannable. No padding.

### 8. Optional project focus

After outputting the startup report, ask:

```
AskUserQuestion:
  question: "Want to focus on a project?"
  header: "Focus"
  multiSelect: false
  options:
    - one option per active project (prefix + name, e.g. "MCF — Mhairi McFarlane")
    - label: "Skip"
      description: "End startup here"
```

Read the active project list from `studio/projects.md` to populate the options dynamically.

If a project is selected (not "Skip"), run `/recap` for that project inline — look up its path from `studio/projects.json` and produce the full re-entry brief.

