Phantom Cloud is here.Get started

Phantom Cloud / personas

Marcus, your engineering chief of staff.

Triages your PRs. Drafts your standup. Catches what is on fire before you do.

Day one

Marcus's first hour.

Reads every PR open in your org with review-requested:@me.

Knows what is blocked on you.

Pulls CI failures on main from the last 6 hours.

Catches what is on fire before standup.

Pulls P0 / blocker tickets in the active sprint.

Linear plus GitHub Issues, deduped.

Drafts one standup note plus per-PR review summaries.

The standup is approve-once; the PR comments are approve-each.

Asks before posting any standup or comment.

Edit / Send each.

Connected to

Marcus's toolbelt.

GitHub

Connected

Linear

Optional, sharpens his sprint awareness

Slack

Connected

Google Drive

Optional, for shared engineering docs

Marcus needs GitHub. Linear adds sprint-level awareness. Slack carries the standup post and the chasing DMs.

In Slack

What Marcus's first DM looks like.

Slack DM

Marcus

Marcus here.

Marcus

I went through 12 open PRs in your org this morning. 3 have been blocking other people for more than 2 days. 2 have CI failures on main. Sprint has 4 P0 tickets open with no owner.

Marcus

I drafted today's standup plus 3 PR comments. Approve to ship the standup. Edit any PR comment before I send it.

SendEditSkip

Draft

Standup post

In
#eng
Standup, Tue May 5

Yesterday: shipped Phantom slice 17 secret-sidecar; Linear FRONT-2102 closed.

Today: review #2014 (auth refactor, blocked 3 days on me); pair with Avery on the webhook backoff retry; finish the FRONT-2105 spec.

Blockers: PR #2014 needs CI green; #2018 has unfixed type errors.

P0s I am tracking: FRONT-2090 (still no owner; thread).

Reads Linear sprint, your assigned PRs, and yesterday's git activity. Standup writes itself once a day.

SendEditSkip

Draft

PR comment on #2014 (auth refactor)

In
GitHub
Hey, this looks ready to me. The refactor is clean and the test coverage moves up from 64% to 78% on the auth module.

Two things before merge:
1. Line 184 in auth/session.ts: the early-return on missing session_id swallows the actual error. Surface it.
2. The migration adds an index on sessions(workspace_id) but not on (workspace_id, expires_at). The dashboard query that hits the cold path will scan. Add a composite.

Otherwise good. Approve once those are in.

Reads the diff, the test coverage report, and the migration plan. Flags the actual issues, not the lint-bot ones.

SendEditSkip

Draft

Slack DM, private nudge to a teammate

To
Avery (Slack DM)
Heads up, PR #2014 has been waiting on you for 3 days. CI is green now. Can you merge or pass the buck?

PR has been blocking >2 days, CI green, you opened it. Marcus does the chasing so you don't have to.

SendEditSkip

What slips past you that Marcus catches.

The receipts.

  • The PR that has been blocking you for 3 days that you forgot was even open.
  • The CI failure on main that happened at 2am that nobody pinged you about.
  • The P0 ticket in Linear that has no owner and is silently aging.
  • The teammate who is blocked on a 1-line review and has not asked twice.
  • The standup you would have written from scratch in 20 minutes.

Hire Marcus in 30 seconds.

Bring your provider key. Connect Slack. Pick Marcus. He is in your DMs by the time you finish naming him.

Marcus needs GitHub. Linear adds sprint-level awareness. Slack is for the standup post and the chasing DMs.