This document defines the complete standard operating procedure (SOP) and automated runbook for provisioning, authenticating, and onboarding client agency profiles (nodes) into the NetVM multi-tenant fleet on `bl`.
In accordance with the NetVM Ethics Charter (`https://start.muse-dev.online/ethics.html`):
- Managed services are strictly run for consenting clients with explicit authority.
- Every client receives a completely isolated network namespace (`warp-<node>`), dedicated WireGuard tunnel identity, isolated Chrome profile, and separate credentials.
When the client or operator receives the 6-digit email OTP:
```bash
super cred submit-otp --node dev1 --otp 123456
```
- The code is submitted transiently and is never persisted to disk or logs.
- If the account directly enters chat, status transitions to `active`.
- If the account requires age verification, it advances to Phase 4.
---
### Phase 4: Resolving the Age Verification Gate (`/access/verification`)
When a brand-new or unlinked client profile reaches the Muse age verification gate:
#### Method A: Instagram Linking (Recommended)
1. Run:
```bash
super cred link-instagram --node dev1 [--notify]
```
2. The system provides a one-tap Tailscale portal URL:
`http://bl.tailfb5960.ts.net:8765/verify/dev1`
3. **Crucial Rule**: The operator or client must link an **established / aged Instagram profile** (not created within minutes). Brand-new Instagram accounts lack mature age signals, causing Meta Accounts Center to disable the Confirm button.
4. If completed via mobile/desktop browser, use an Incognito/Private window to prevent ambient Meta cookie bleed.
5. If executing automated RPA in-browser, inject the Instagram credentials and security code directly into the container's CDP session.
### Phase 4.1: Edge Gate — Hard Audience Lockout (`/access` vs `/access/verification`)
- **Observed Behavior**: If an account routes to `https://muse.ai/access` with the text `"Muse isn't available to all audiences."` instead of `https://muse.ai/access/verification`:
- The Meta account is temporarily unverified or lacks linked identity signals.
- The in-app endpoint (`/api/hatch/age-confirmation/linking-web-auth`) returns `403 Forbidden`.
- Reloading or navigating directly to `/` or `/access/verification` immediately redirects back to `/access`.
- **Root Cause**:
- Meta accounts without an active linked profile (Facebook or Instagram) trigger Meta's general audience filter on Muse before the conversational AI product can be initialized.
- In addition, attempting automated sign-in on low-reputation / unverified identities directly from server/VPN IPs will trigger Google reCAPTCHA Enterprise checkpoints (`auth_platform/recaptcha`).
- **Proven Unblocking SOP (The Direct Meta Accounts Center Flow)**:
1. Open a clean browser session with the target Meta Account signed in (`https://accountscenter.meta.com/`).
2. Navigate to **Accounts** → **Add Accounts** (`/add_accounts/`).
3. Enter the Instagram credentials for an older/established IG profile (`veryraremeta`, `paradahub`, etc.) and submit any required 2FA/email OTP.
4. If returned to Accounts Center, click **Add Instagram** again to initiate the OAuth handoff:
5. On the *"Meta needs to access info from your Instagram account"* prompt, click **[Continue]**.
6. Accounts Center returns to the confirmation screen (`/add/?auth_flow=ig_linking&token=...&blob=...`) → click **[Confirm]**.
7. Meta sends security confirmation: *"Did you just move your profiles into the same Meta Account?"*.
8. Once confirmed in Accounts Center, simply navigate back or reload `https://muse.ai/` inside the NetVM node. The `/access` lockout drops immediately, and the node enters active chat (*"Hey! I'm your personal agent..."*).
To avoid platform anti-automation challenges and maintain high reputation:
1. **Pacing / Spacing**: Space new node creations and Instagram authorizations by **at least 15–20 minutes** per IP/session.
2. **Namespace Isolation**: Never attempt multi-account auth inside the same browser profile. Always execute inside the client's dedicated `warp-<node>` netns.
3.**No Credential Logging**: Never print plain text passwords or authentication tokens to stdout, git-tracked markdown, or plain text logs.