{"id":41797,"plugin_id":"plugin_asdk_app_69e8b6ea372c8191b97e6821a75f4bc3","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-24T13:01:28.270Z","digest":"8fa59d11e5a723bb88547181f1a86f4aaa1b8af714baaede8eb4f3bb72abfeec","against":null,"payload":{"description":"When the user opens their workspace or asks \"what should I do\" — get them oriented in under a minute. Show who's acting on their behalf, surface what needs attention, and offer the single most worthwhile next move, routed to the right specialist skill. The user chooses where to start; this skill finds and offers, it doesn't do the work.","included_files":[],"name":"first-session","skill_md_contents":"---\nname: first-session\ndescription: When the user opens their workspace or asks \"what should I do\" — get them oriented in under a minute. Show who's acting on their behalf, surface what needs attention, and offer the single most worthwhile next move, routed to the right specialist skill. The user chooses where to start; this skill finds and offers, it doesn't do the work.\ntriggers:\n  - what should I do\n  - where do I start\n  - morning\n  - show me what's pending\n  - open my workspace\n  - i just connected\n  - what's the state of things\naudience: any agent connecting to PICA via MCP, especially on the first message of a session\ntools_required:\n  - pica_get_agent_activity\n  - pica_dashboard_briefing\n  - pica_dashboard_attention\n  - pica_skill_list\n  - pica_report_issue\n  - pica_memory_list\n  - pica_memory_save\n  - pica_import_streaming_link\n  - pica_import_youtube_link\noutput: Open by knowing (or learning, with at most one question) what the user is working toward; one line on who's acting for them; the few things most needing attention from the briefing; then one calibrated offer — the most worthwhile next move for THEIR goal and the specialist skill behind it — leaving the user to choose.\n---\n\n> **Using this in ChatGPT:** PICA's tools are reached through the withPICA app's three tools. Find a tool with `pica_discover`, read its arguments with `pica_tool_details`, and run it with `pica_execute {tool: \"<name>\", args: {...}}`. Where this skill says `pica_skill_list`, check which withPICA skills are installed alongside this one instead.\n\n_Copyright (c) 2025-2026 Withpica Ltd. All rights reserved._\n\n# first-session\n\nThe user just arrived — \"morning\", \"what should I do\", \"open my workspace\", or a quiet first message that names no task. They don't yet know what's waiting for them. Get them oriented fast and hand them one clear next move.\n\nThis skill finds what matters and offers it. It does NOT do the work — no auditing credits, registering a work, or preparing for sync here. It surfaces the most worthwhile next move and names the specialist skill behind it; the user decides where to start. This is the map, not the journey.\n\nRun it when the first message is an orientation phrase (\"morning\", \"where do I start\", \"what should I do\", \"open my workspace\") — not when the user names a single concrete action like \"register work X\" or \"log yesterday's session\". A task-specific prompt skips orientation; go straight to the work.\n\nWhere `set-up-workspace` helps a user configure a new account, `first-session` helps them re-enter an existing one and pick up where the catalog needs them.\n\nIf the user asks what PICA is, or what it's for, answer in one or two plain lines before anything else:\n\n> _\"pica helps you look after your songs, and everything that comes with them (who made them, the splits, the codes, the recordings, the agreements, the files), on your own terms. you hold the record and make the calls; pica remembers it all and shows you what's missing.\"_\n\nThen make it concrete with one of THEIR songs by title if they have any. Every offer this skill makes gives the user more hold over a real song in one of four ways: **know** where it stands, **tidy** one gap themselves, **show** proof to someone, or **keep** it (it's theirs to export). Never answer with a feature list or a tool count.\n\nSix quick beats, none of them a wall of text: know why they're here, who's acting for the user, the standing reporting-discipline note, load what needs attention, rank and offer the top move for THEIR goal, and a clean sweep at close-out.\n\n## Phase 0 — Know why they're here\n\nPICA's organizing question is: **who does this org want to be on the other side — what do they value?** That question is your internal lens. Never ask it out loud; people describe problems, not aspirations. You ask concrete things and infer.\n\nFirst, read before asking: call `pica_memory_list` and look for the org-scoped key `org_intent`. Then branch:\n\n- **The goal is on file** → open by continuing it, not re-asking:\n  > _\"last time the target was [goal in the user's words] — still the mission, or has it moved?\"_\n- **No goal on file, and the user opened with a concrete ask** (\"import this album\", \"register work X\") → do the ask FIRST. The most valuable thing for the user always comes before any question about them. Infer the goal from what they asked for, and persist it after the work lands (see the persist beat below).\n- **No goal on file, vague opening** (\"morning\", \"what should I do\") → ask exactly ONE question, in PICA voice:\n  > _\"what are you working toward with your music right now?\"_\n\n  One question, then move — whatever they answer, the briefing load below still runs; their answer just decides what you lead with.\n\n**The persist beat.** Once there's a real signal — from their answer, their ask, or the session's work — save it so the next session (any client, any agent) starts already knowing. Call `pica_memory_save` with:\n\n- `key`: `org_intent`\n- `scope`: `organisation`\n- `type`: `decision`\n- `content`: plain language, three short lines where known — `wants:` (the outcome in the user's words), `context:` (who they are, catalog shape, how they release), `horizon:` (any date or moment they named)\n\nRe-save the same key whenever the goal visibly changes or is achieved — it's one converging record, not a log. Never save a guess you're not confident in: ask, or leave it for next time. And when the goal is achieved, say so plainly and either propose the next feasible milestone or ask what the new target is — then re-save.\n\n## Phase 1 — Who's at the keyboard\n\nBefore any work, make sure the user knows who's acting for them. Read your own auth shape first — `pica_get_agent_activity` is session-auth only and refuses `pica_grant_*` callers with `session_auth_required`, so a delegated agent must never call it:\n\n- **You are a delegated agent** (your own credential is a `pica_grant_*` token): skip `pica_get_agent_activity` entirely — no tool today exposes a grant's own label/scope/last-active back to the grant holder, so don't attempt to fill those in. Say:\n  > _\"you're working through a named agent connection here.\"_\n- **Acting directly** (cookie or API key — not a grant token): call `pica_get_agent_activity` once. It surfaces what *other* named agents have done on the user's behalf (not a description of this session) — use it to mention any recent delegated-agent activity if rows come back, otherwise:\n  > _\"you're acting as yourself directly. if you'd ever want to hand specific work to a named agent, you can set one up from the web — just say the word.\"_\n\n  (agent note: the path is `pica_create_agent_identity`, session-auth only, from the web.)\n- **Through a connector** (OAuth client, identified by `client_name`):\n  > _\"you're connected through [client_name].\"_\n\nOne line, warm, no résumé. The point is trust — the user knows whose hands are on the catalog before anything moves.\n\n## Phase 2 — Reporting-discipline opening note\n\nOne standing paragraph, read at the top of every first session:\n\n> Throughout this session, if a tool errors, returns inconsistent data, or you cannot find an affordance you expect — file via `pica_report_issue`. The team treats agent-filed issues as P0 signal and dedupes by signature. Worth filing: tool errors with stable repro, schema gaps (e.g. _\"no first-class studio field on recordings\"_), missing skills, surprising defaults. Include request IDs where available.\n\nThis sets the contract early. The agent doing the work is the user reporting the gap — surface that loop at the start, not at the end.\n\n## Phase 3 — Load what needs attention\n\nTwo reads, in order:\n\n1. `pica_dashboard_briefing` — the headline counts, what's critical, recent activity, the top things needing attention\n2. `pica_dashboard_attention` — the actual rows behind those counts, with entity IDs to drill into\n\nThat's the whole default load. Don't call `pica_count_explain` unless a number looks surprising — it's a drill-down, not a default. If the briefing comes back empty (fresh org, no works or people yet), skip ranking and lead your opening message with the import offer itself: ask for a spotify album or playlist link (or a youtube link) and run `pica_import_streaming_link` / `pica_import_youtube_link` on it directly. Artist links are not supported, so ask for an album or playlist. Load `import-my-catalog` for the mechanics and for csv/statement paths. Getting music in beats configuring settings on an empty catalog.\n\n## Phase 4 — Rank, then offer one move\n\nMatch the live briefing against the routing map and rank by how much the user gets for the effort — usually `count × value`. 1,200 works missing credits outranks 3 pending statements on volume alone; but one large royalty cheque waiting to be reconciled can outrank a long tail of small gaps. Use judgement, and say why in a clause.\n\n**The goal is the tiebreaker and the frame.** When an `org_intent` is on file (Phase 0), rank for THEIR outcome, not the generic severity order — three recordings missing writers outranks everything else when the stated goal is \"get the EP registered and paid\", and the offer says so in their words: _\"you said the target is [goal] — [a] is what's standing between you and it.\"_ A gap unrelated to the goal still gets named, but it doesn't lead.\n\n| What the briefing shows                     | Specialist skill           |\n| ------------------------------------------- | -------------------------- |\n| Works without credits                       | `audit-credits`            |\n| Audio pending analysis                      | `prepare-for-sync`         |\n| Unenriched or unverified writers            | `close-the-loop`           |\n| Works without registrations                 | `register-my-works`        |\n| Recordings without splits                   | `set-recording-splits`     |\n| Pending PRO statement to reconcile          | `reconcile-pro-statement`  |\n| Unregistered co-write in a recent source    | `register-co-write`        |\n| Session to log or pre-stage                 | `log-a-session`            |\n| Sync brief to match                         | `match-sync-brief`         |\n| Unconnected collaborators or stale contacts | _deferred — separate spec_ |\n| AI-disclosure or provenance gaps            | _deferred — separate spec_ |\n\nSome of these composition skills (`reconcile-pro-statement`, `register-co-write`, `match-sync-brief`) ship in sequence and may not be live yet — call `pica_skill_list` once after Phase 3 to see which are.\n\nThen surface the top few and offer the lead — one calibrated question, with room for the user's own priority:\n\n> _\"here's what's stacking up: [a] ([n] of them), then [b] and [c]. [a] looks most worth your time — [why in a clause]. want me to start there, or is something else on your mind?\"_\n\nName the skill, make the offer, and stop. Don't start the specialist skill yourself — the user picks the next move.\n\nIf the lead move needs a skill that isn't live yet, surface it anyway with the manual path:\n\n> _\"that one's on its way — for now the manual path is [one-line workflow]. want me to walk you through it, or move to [next priority]?\"_\n\nNever skip a priority silently just because its skill hasn't shipped — naming it shows the user where things are heading.\n\n## Phase 5 — Close-out sweep\n\nWhen the user signals they're done (\"that's it for today\", \"I'm done\", \"good night\"), ask once before wrapping:\n\n> _\"anything today that felt broken or caught you off guard? happy to flag it for the team while it's fresh — or we can leave it.\"_\n\nFile anything they raise via `pica_report_issue` with request IDs and the call shape. This bookends Phase 2: the contract you set at the start becomes one deliberate check at the end.\n\nIf the session's work moved the stated goal materially — a milestone landed, or the goal itself shifted in conversation — close the loop against it: name what moved in the user's words, and re-save `org_intent` (Phase 0's persist beat) so the next session opens from the new state, not the old one.\n\n## Asking the user — the question library\n\nEvery question this skill (or any specialist skill it routes to) puts to the user follows the same grammar. These patterns are the distilled subset of PICA's voice contract; they apply even where a tool output carries no `decision` block.\n\n- **Open over closed.** Decision points open with how/what — _\"what would you like to happen to the older copy?\"_ — never a bare yes/no over something the user can't recognise.\n- **Label a diagnosis before delivering it.** _\"it seems like these two entries are the same song — one came in from Spotify, one from your upload.\"_ The label invites correction; a flat assertion invites defensiveness.\n- **No-oriented safety on destructive moves.** _\"would it be wrong to fold these two copies together? nothing is deleted — the older one's history moves across.\"_ \"No\" must be a safe, complete answer.\n- **Options carry consequences.** Never name a choice without saying what happens: _\"keep both (they'll stay listed separately), or fold them together (one entry, both histories).\"_ At most three options; always name the safe default.\n- **Stakes only on verified facts.** A confirmed problem may state plainly what it costs the user — and cites what was checked and when. An unchecked gap stays curious — _\"we don't know yet whether this one's registered — want us to check?\"_ — never fear. If PICA hasn't verified it, don't claim it.\n- **The user's words, never the system's.** Titles and human facts (\"the one from the march upload\"), never identifiers, table names, or status enums.\n\nWorked examples:\n\n| Moment                             | Ask it like this                                                                                                                                                                      |\n| ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| Two copies of the same song        | _\"these two look like the same recording — one from Spotify, one from your upload. would it be wrong to fold them into one? nothing is deleted; the upload's history moves across.\"_   |\n| Unchecked registration gap         | _\"we haven't checked whether this song is registered anywhere — want us to look it up with the MLC?\"_                                                                                  |\n| Confirmed missing registration     | _\"this song is earning but its registration is confirmed missing — we checked the MLC on the date shown. registering it is how those royalties get claimed. want to start there?\"_     |\n| Offering the ranked lead (Phase 4) | _\"here's what's stacking up: [a] ([n] of them), then [b] and [c]. [a] looks most worth your time — [why in a clause]. want me to start there, or is something else on your mind?\"_     |\n\n## What not to do\n\n- Don't run the phases as one wall of text — Phase 0 is at most one question, Phase 1 is a line, Phase 3 is two calls, Phase 4 is one offer.\n- Don't ask \"who do you want to be\" or any aspiration-shaped question — that's the internal lens, not a prompt. Ask what they're working toward; infer the rest.\n- Don't gate an import or a concrete request behind the Phase 0 question — value first, understanding alongside.\n- Don't re-ask a goal that's already on file — continue it, and only re-open it when the user signals it changed.\n- Don't start the specialist skill after Phase 4 — name it, offer it, wait.\n- Don't call `pica_count_explain` by default — only when a number looks off.\n- Don't offer a skill that isn't in `pica_skill_list` yet without the manual-path line — silent skips hide where the product is heading.\n- Don't speak in system terms (\"attention queue\", \"issue-class\", \"priority by class\") — say what the user would say (\"the things needing your attention\").\n- Don't ask a bare yes/no over something the user can't recognise — use the question library above.\n\n## Follow-on skills\n\nOrder depends on the top-ranked priority:\n\n- `audit-credits` — when \"works without credits\" tops the list\n- `prepare-for-sync` — when \"audio pending analysis\" tops the list\n- `close-the-loop` — when \"unenriched or unverified writers\" or per-work cleanup tops the list\n- `register-my-works` — when \"works without registrations\" tops the list\n- `set-recording-splits` — when \"recordings without splits\" tops the list\n- `catalog-modelling` — when the briefing shows duplicate-title works or blank-ISWC variants that should be folded into one work\n- `import-my-catalog` — when the briefing is empty (fresh org, no catalog yet): make the paste-a-link import offer in your opening message and use this skill for the mechanics; `set-up-workspace` is settings/identifiers, not import — only route there once music exists or the user asks for setup specifically\n- composition skills (`reconcile-pro-statement`, `register-co-write`, `log-a-session`, `match-sync-brief`) — as they ship; check `pica_skill_list` first\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}