@withpica/mcp-server 2.97.5 → 2.99.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/CHANGELOG.md +223 -0
  2. package/README.intro.md +1 -1
  3. package/README.md +8 -4
  4. package/dist/lib/changelog.generated.d.ts +2 -2
  5. package/dist/lib/changelog.generated.d.ts.map +1 -1
  6. package/dist/lib/changelog.generated.js +2 -2
  7. package/dist/lib/changelog.generated.js.map +1 -1
  8. package/dist/prompts/creator-question-atlas.d.ts.map +1 -1
  9. package/dist/prompts/creator-question-atlas.js +37 -2
  10. package/dist/prompts/creator-question-atlas.js.map +1 -1
  11. package/dist/prompts/index.d.ts.map +1 -1
  12. package/dist/prompts/index.js +18 -21
  13. package/dist/prompts/index.js.map +1 -1
  14. package/dist/resources/agent-guide.d.ts.map +1 -1
  15. package/dist/resources/agent-guide.js +3 -1
  16. package/dist/resources/agent-guide.js.map +1 -1
  17. package/dist/resources/index.d.ts.map +1 -1
  18. package/dist/resources/index.js +0 -3
  19. package/dist/resources/index.js.map +1 -1
  20. package/dist/resources/required-schemas.generated.d.ts +7 -5
  21. package/dist/resources/required-schemas.generated.d.ts.map +1 -1
  22. package/dist/resources/required-schemas.generated.js +15 -2
  23. package/dist/resources/required-schemas.generated.js.map +1 -1
  24. package/dist/resources/required-schemas.source.d.ts.map +1 -1
  25. package/dist/resources/required-schemas.source.js +8 -1
  26. package/dist/resources/required-schemas.source.js.map +1 -1
  27. package/dist/server-instructions.d.ts +2 -2
  28. package/dist/server-instructions.d.ts.map +1 -1
  29. package/dist/server-instructions.js +1 -1
  30. package/dist/skills/skills.generated.js +11 -11
  31. package/dist/skills/skills.generated.js.map +1 -1
  32. package/dist/tools/agreement-types.d.ts.map +1 -1
  33. package/dist/tools/agreement-types.js +3 -1
  34. package/dist/tools/agreement-types.js.map +1 -1
  35. package/dist/tools/agreements.d.ts.map +1 -1
  36. package/dist/tools/agreements.js +15 -6
  37. package/dist/tools/agreements.js.map +1 -1
  38. package/dist/tools/approvals.d.ts.map +1 -1
  39. package/dist/tools/approvals.js +14 -1
  40. package/dist/tools/approvals.js.map +1 -1
  41. package/dist/tools/arg-aliases.d.ts.map +1 -1
  42. package/dist/tools/arg-aliases.js +12 -0
  43. package/dist/tools/arg-aliases.js.map +1 -1
  44. package/dist/tools/audio-files.d.ts +39 -0
  45. package/dist/tools/audio-files.d.ts.map +1 -1
  46. package/dist/tools/audio-files.js +253 -12
  47. package/dist/tools/audio-files.js.map +1 -1
  48. package/dist/tools/catalog-enums.d.ts +20 -0
  49. package/dist/tools/catalog-enums.d.ts.map +1 -0
  50. package/dist/tools/catalog-enums.js +28 -0
  51. package/dist/tools/catalog-enums.js.map +1 -0
  52. package/dist/tools/collaborators.d.ts.map +1 -1
  53. package/dist/tools/collaborators.js +27 -3
  54. package/dist/tools/collaborators.js.map +1 -1
  55. package/dist/tools/credits.d.ts +4 -1
  56. package/dist/tools/credits.d.ts.map +1 -1
  57. package/dist/tools/credits.js +70 -97
  58. package/dist/tools/credits.js.map +1 -1
  59. package/dist/tools/custody-hints.js +2 -2
  60. package/dist/tools/custody-hints.js.map +1 -1
  61. package/dist/tools/custody.d.ts.map +1 -1
  62. package/dist/tools/custody.js +4 -1
  63. package/dist/tools/custody.js.map +1 -1
  64. package/dist/tools/deprecations.d.ts +67 -8
  65. package/dist/tools/deprecations.d.ts.map +1 -1
  66. package/dist/tools/deprecations.js +98 -82
  67. package/dist/tools/deprecations.js.map +1 -1
  68. package/dist/tools/directory.js +2 -2
  69. package/dist/tools/directory.js.map +1 -1
  70. package/dist/tools/discovery.d.ts +28 -2
  71. package/dist/tools/discovery.d.ts.map +1 -1
  72. package/dist/tools/discovery.js +72 -28
  73. package/dist/tools/discovery.js.map +1 -1
  74. package/dist/tools/documents.d.ts +2 -2
  75. package/dist/tools/documents.d.ts.map +1 -1
  76. package/dist/tools/documents.js +2 -88
  77. package/dist/tools/documents.js.map +1 -1
  78. package/dist/tools/duplicates.d.ts +2 -0
  79. package/dist/tools/duplicates.d.ts.map +1 -1
  80. package/dist/tools/duplicates.js +173 -18
  81. package/dist/tools/duplicates.js.map +1 -1
  82. package/dist/tools/enrichment.d.ts.map +1 -1
  83. package/dist/tools/enrichment.js +36 -2
  84. package/dist/tools/enrichment.js.map +1 -1
  85. package/dist/tools/import.d.ts.map +1 -1
  86. package/dist/tools/import.js +19 -0
  87. package/dist/tools/import.js.map +1 -1
  88. package/dist/tools/index.d.ts.map +1 -1
  89. package/dist/tools/index.js +44 -4
  90. package/dist/tools/index.js.map +1 -1
  91. package/dist/tools/integrity.d.ts.map +1 -1
  92. package/dist/tools/integrity.js +65 -8
  93. package/dist/tools/integrity.js.map +1 -1
  94. package/dist/tools/licensing.d.ts.map +1 -1
  95. package/dist/tools/licensing.js +14 -9
  96. package/dist/tools/licensing.js.map +1 -1
  97. package/dist/tools/metadata.d.ts.map +1 -1
  98. package/dist/tools/metadata.js +74 -114
  99. package/dist/tools/metadata.js.map +1 -1
  100. package/dist/tools/notes.d.ts +3 -4
  101. package/dist/tools/notes.d.ts.map +1 -1
  102. package/dist/tools/notes.js +31 -44
  103. package/dist/tools/notes.js.map +1 -1
  104. package/dist/tools/people.d.ts +5 -1
  105. package/dist/tools/people.d.ts.map +1 -1
  106. package/dist/tools/people.js +8 -1
  107. package/dist/tools/people.js.map +1 -1
  108. package/dist/tools/projects.d.ts +3 -4
  109. package/dist/tools/projects.d.ts.map +1 -1
  110. package/dist/tools/projects.js +3 -27
  111. package/dist/tools/projects.js.map +1 -1
  112. package/dist/tools/public-filter.d.ts.map +1 -1
  113. package/dist/tools/public-filter.js +3 -6
  114. package/dist/tools/public-filter.js.map +1 -1
  115. package/dist/tools/purchases.d.ts +2 -3
  116. package/dist/tools/purchases.d.ts.map +1 -1
  117. package/dist/tools/purchases.js.map +1 -1
  118. package/dist/tools/recording-attribution-hints.js +1 -1
  119. package/dist/tools/recording-attribution-hints.js.map +1 -1
  120. package/dist/tools/recording-custody.d.ts +3 -1
  121. package/dist/tools/recording-custody.d.ts.map +1 -1
  122. package/dist/tools/recording-custody.js +8 -4
  123. package/dist/tools/recording-custody.js.map +1 -1
  124. package/dist/tools/recovery-hints.d.ts +0 -6
  125. package/dist/tools/recovery-hints.d.ts.map +1 -1
  126. package/dist/tools/recovery-hints.js +97 -38
  127. package/dist/tools/recovery-hints.js.map +1 -1
  128. package/dist/tools/register.d.ts.map +1 -1
  129. package/dist/tools/register.js +2 -1
  130. package/dist/tools/register.js.map +1 -1
  131. package/dist/tools/releases.d.ts +2 -4
  132. package/dist/tools/releases.d.ts.map +1 -1
  133. package/dist/tools/releases.js +12 -213
  134. package/dist/tools/releases.js.map +1 -1
  135. package/dist/tools/rights.d.ts +54 -0
  136. package/dist/tools/rights.d.ts.map +1 -0
  137. package/dist/tools/rights.js +495 -0
  138. package/dist/tools/rights.js.map +1 -0
  139. package/dist/tools/royalties.d.ts +29 -6
  140. package/dist/tools/royalties.d.ts.map +1 -1
  141. package/dist/tools/royalties.js +101 -119
  142. package/dist/tools/royalties.js.map +1 -1
  143. package/dist/tools/section-validation.d.ts +14 -0
  144. package/dist/tools/section-validation.d.ts.map +1 -0
  145. package/dist/tools/section-validation.js +68 -0
  146. package/dist/tools/section-validation.js.map +1 -0
  147. package/dist/tools/selections.d.ts +5 -2
  148. package/dist/tools/selections.d.ts.map +1 -1
  149. package/dist/tools/selections.js +10 -4
  150. package/dist/tools/selections.js.map +1 -1
  151. package/dist/tools/share-links.d.ts.map +1 -1
  152. package/dist/tools/share-links.js +32 -6
  153. package/dist/tools/share-links.js.map +1 -1
  154. package/dist/tools/share-send.d.ts.map +1 -1
  155. package/dist/tools/share-send.js +32 -7
  156. package/dist/tools/share-send.js.map +1 -1
  157. package/dist/tools/signed-split-sheet-preview.d.ts +43 -0
  158. package/dist/tools/signed-split-sheet-preview.d.ts.map +1 -0
  159. package/dist/tools/signed-split-sheet-preview.js +67 -0
  160. package/dist/tools/signed-split-sheet-preview.js.map +1 -0
  161. package/dist/tools/split-sheets.d.ts.map +1 -1
  162. package/dist/tools/split-sheets.js +3 -2
  163. package/dist/tools/split-sheets.js.map +1 -1
  164. package/dist/tools/statements.js +1 -1
  165. package/dist/tools/statements.js.map +1 -1
  166. package/dist/tools/version-guard.d.ts +16 -4
  167. package/dist/tools/version-guard.d.ts.map +1 -1
  168. package/dist/tools/version-guard.js +22 -8
  169. package/dist/tools/version-guard.js.map +1 -1
  170. package/dist/tools/works.d.ts +9 -1
  171. package/dist/tools/works.d.ts.map +1 -1
  172. package/dist/tools/works.js +217 -74
  173. package/dist/tools/works.js.map +1 -1
  174. package/dist/tools/write-receipt.d.ts +68 -0
  175. package/dist/tools/write-receipt.d.ts.map +1 -0
  176. package/dist/tools/write-receipt.js +64 -0
  177. package/dist/tools/write-receipt.js.map +1 -0
  178. package/package.json +4 -4
  179. package/scripts/build-required-schemas.ts +7 -1
  180. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"required-schemas.generated.js","sourceRoot":"","sources":["../../src/resources/required-schemas.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"required-schemas.generated.js","sourceRoot":"","sources":["../../src/resources/required-schemas.generated.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"required-schemas.source.d.ts","sourceRoot":"","sources":["../../src/resources/required-schemas.source.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1D,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAsnBxE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAEjC,KAAK,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"required-schemas.source.d.ts","sourceRoot":"","sources":["../../src/resources/required-schemas.source.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1D,eAAe,EAAE,uBAAuB,EAAE,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CA8nBxE,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAEjC,KAAK,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC"}
@@ -200,6 +200,12 @@ export const REQUIRED_SCHEMAS_SOURCE = {
200
200
  table: "enrichment_proposals",
201
201
  columns: ["status", "entity_type", "proposal_action"],
202
202
  },
203
+ // The values a file-type question's answer may take
204
+ // (pica_enrichment_proposal_apply `file_type`).
205
+ {
206
+ table: "audio_files",
207
+ columns: ["file_type"],
208
+ },
203
209
  ],
204
210
  companion_calls: [
205
211
  {
@@ -224,8 +230,9 @@ export const REQUIRED_SCHEMAS_SOURCE = {
224
230
  },
225
231
  {
226
232
  tool: "pica_enrichment_proposal_apply",
227
- when: "Commit a reviewed proposal. Drift detection runs first on update proposals — pass force=true only after the user has reviewed any conflicts from a prior drift_detected response.",
233
+ when: "Commit a reviewed proposal. Drift detection runs first on update proposals — pass force=true only after the user has reviewed any conflicts from a prior drift_detected response. For a file-type question (entity_type audio_file) pass the user's chosen file_type (and, for a stem, an optional stem_label); ask them about each file, never pick for them.",
228
234
  required: ["proposal_id"],
235
+ constraint: "file_type ∈ audio_files.file_type and only on entity_type audio_file; stem_label only with file_type stem, max 60 characters; a refused answer is INVALID_FILE_TYPE_ANSWER and writes nothing",
229
236
  },
230
237
  {
231
238
  tool: "pica_enrichment_proposal_reject",
@@ -1 +1 @@
1
- {"version":3,"file":"required-schemas.source.js","sourceRoot":"","sources":["../../src/resources/required-schemas.source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"required-schemas.source.js","sourceRoot":"","sources":["../../src/resources/required-schemas.source.ts"],"names":[],"mappings":"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"}
@@ -19,7 +19,7 @@
19
19
  * Block playbook: "document the high level of your server"
20
20
  * Lowin: "instructions are context — design them as context"
21
21
  */
22
- export declare const SERVER_INSTRUCTIONS = "withPICA manages music catalog metadata \u2014 works, recordings, people, credits, agreements, rights. Tools are pica_<domain>_<verb>, 300+ of them, from npm as @withpica/mcp-server. Distinct from @picahq/mcp (picaos.com) \u2014 same short name, unrelated.\n\nFirst-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt \u2014 your identity is already on file. Declaration is valid 24h per credential.\n\nOn the first user message of a session \u2014 unless it names a single concrete action (e.g. \"register work X\") \u2014 call pica_skill_get(\"first-session\") and follow it.\n\nStart here:\n- pica_dashboard_briefing \u2014 daily summary of what needs attention\n- pica_search_all \u2014 find any entity by name, ISWC, ISRC, or IPI\n- pica_works_query / pica_people_query \u2014 browse the catalog\n- pica_subscription_status \u2014 \"what's my plan / am I paying?\"; pica_billing_pay \u2014 a pay link for residency or a tab. On a connector call them through pica_execute {tool: \"<name>\", args: {...}}\n\nThe catalog is ALWAYS accessible via the tools above \u2014 zero setup, no integration required. Peer-service data (Gmail, Drive, etc.) is reached via cross-MCP composition in the user's AI client, not via PICA \u2014 call pica_works_query directly for catalog content.\n\nSpotify/YouTube URLs: call pica_import_streaming_link (Spotify/Deezer) or pica_import_youtube_link directly.\n\nAfter 3-5 catalog mutations or major state changes, call pica_dashboard_briefing and surface the delta to the user.\n\nKey patterns:\n- Read tools are safe to call freely (readOnlyHint=true)\n- many _inspect tools take a \"sections\" argument (e.g., pica_works_inspect sections: [\"health\", \"completeness\"]) \u2014 check the tool's schema\n- Write tools confirm what changed \u2014 share https://withpica.com/inspect/<feature>/<id> so the user can review (feature: works, people, recordings, releases, agreements; for audio files link the parent work). Destructive tools (delete/merge) need two-step confirmation with a token\n- Errors include \"suggestion\" and \"next_tool\" for recovery\n- Enrichment: use pica_resolve_work / pica_resolve_person / pica_resolve_recording \u2014 fan out over Spotify, MusicBrainz, MLC, ISNI, Discogs, YouTube\n\nRoyalty/streaming statements (PDF/image/xlsx): use pica_statements_pending \u2192 pica_documents_inspect \u2192 pica_statement_ingest_document (imports after owner approval). CSV statements go through pica_import_analyze / pica_import_execute instead.\n\nMost query tools accept \"limit\"; defaults vary \u2014 read the tool's schema. IDs are UUIDs \u2014 use a _query tool first when unsure.\n\nSkills: pica_skill_list discovers methodologies (catalog-audit, register-my-works, prepare-for-sync). pica_skill_get(name) loads one. Trigger phrases like \"audit my catalog\" map directly. Bodies load lazily \u2014 not at handshake.\n\nPeer MCPs (mail, drive, notes, calendar, DAW): when PICA shows gaps, check peers before asking the user; cite via pica_enrichment_propose sources[].url (URI shapes: pica_skill_get(\"enrich-from-peer-mcps\")). Citations persist verbatim and propagate to applied entities.";
22
+ export declare const SERVER_INSTRUCTIONS = "withPICA helps people look after their songs, and everything that comes with them (people, splits, codes, recordings, agreements, files), on their own terms: the user holds the record and decides; PICA remembers and shows what's missing. Asked what PICA is, say that plainly, in their words. Tools are pica_<domain>_<verb>, 300+, from npm as @withpica/mcp-server (not @picahq/mcp, unrelated).\n\nFirst-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt \u2014 your identity is already on file. Declaration is valid 24h per credential.\n\nOn the first user message of a session \u2014 unless it names a single concrete action (e.g. \"register work X\") \u2014 call pica_skill_get(\"first-session\") and follow it.\n\nStart here:\n- pica_dashboard_briefing \u2014 daily summary of what needs attention\n- pica_search_all \u2014 find any entity by name, ISWC, ISRC, or IPI\n- pica_works_query / pica_people_query \u2014 browse the catalog\n- pica_subscription_status \u2014 \"what's my plan / am I paying?\"; pica_billing_pay \u2014 a pay link for residency or a tab. On a connector call them through pica_execute {tool: \"<name>\", args: {...}}\n\nThe catalog is ALWAYS accessible via the tools above \u2014 zero setup, no integration required. Peer-service data (Gmail, Drive, etc.) is reached via cross-MCP composition in the user's AI client, not via PICA \u2014 call pica_works_query directly for catalog content.\n\nSpotify/YouTube URLs: call pica_import_streaming_link (Spotify/Deezer) or pica_import_youtube_link directly.\n\nAfter 3-5 catalog mutations or major state changes, call pica_dashboard_briefing and surface the delta to the user.\n\nKey patterns:\n- Read tools are safe to call freely (readOnlyHint=true)\n- many _inspect tools take a \"sections\" argument (e.g., pica_works_inspect sections: [\"health\", \"completeness\"]) \u2014 check the tool's schema\n- Write tools confirm what changed \u2014 share https://withpica.com/inspect/<feature>/<id> so the user can review (feature: works, people, recordings, releases, agreements; for audio files link the parent work). Destructive tools (delete/merge) need two-step confirmation with a token\n- Errors include \"suggestion\" and \"next_tool\" for recovery\n- Enrichment: use pica_resolve_work / pica_resolve_person / pica_resolve_recording \u2014 fan out over Spotify, MusicBrainz, MLC, ISNI, Discogs, YouTube\n\nRoyalty/streaming statements (PDF/image/xlsx): use pica_statements_pending \u2192 pica_documents_inspect \u2192 pica_statement_ingest_document (imports after owner approval). CSV statements go through pica_import_analyze / pica_import_execute instead.\n\nMost query tools accept \"limit\"; defaults vary \u2014 read the tool's schema. IDs are UUIDs \u2014 use a _query tool first when unsure.\n\nSkills: pica_skill_list discovers methodologies (catalog-audit, register-my-works, prepare-for-sync). pica_skill_get(name) loads one. Trigger phrases like \"audit my catalog\" map directly. Bodies load lazily \u2014 not at handshake.\n\nPeer MCPs (mail, drive, notes, calendar, DAW): when PICA shows gaps, check peers before asking the user; cite via pica_enrichment_propose sources[].url (URI shapes: pica_skill_get(\"enrich-from-peer-mcps\")). Citations persist verbatim and propagate to applied entities.";
23
23
  /** Alias for the authenticated default — names the variant explicitly when paired with the unauthenticated one. */
24
24
  /**
25
25
  * How many leading characters of SERVER_INSTRUCTIONS a client was observed to
@@ -31,7 +31,7 @@ export declare const SERVER_INSTRUCTIONS = "withPICA manages music catalog metad
31
31
  * server-instructions.test.ts pins that it does.
32
32
  */
33
33
  export declare const INSTRUCTIONS_OBSERVED_VISIBLE_CHARS = 2000;
34
- export declare const SERVER_INSTRUCTIONS_AUTHENTICATED = "withPICA manages music catalog metadata \u2014 works, recordings, people, credits, agreements, rights. Tools are pica_<domain>_<verb>, 300+ of them, from npm as @withpica/mcp-server. Distinct from @picahq/mcp (picaos.com) \u2014 same short name, unrelated.\n\nFirst-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt \u2014 your identity is already on file. Declaration is valid 24h per credential.\n\nOn the first user message of a session \u2014 unless it names a single concrete action (e.g. \"register work X\") \u2014 call pica_skill_get(\"first-session\") and follow it.\n\nStart here:\n- pica_dashboard_briefing \u2014 daily summary of what needs attention\n- pica_search_all \u2014 find any entity by name, ISWC, ISRC, or IPI\n- pica_works_query / pica_people_query \u2014 browse the catalog\n- pica_subscription_status \u2014 \"what's my plan / am I paying?\"; pica_billing_pay \u2014 a pay link for residency or a tab. On a connector call them through pica_execute {tool: \"<name>\", args: {...}}\n\nThe catalog is ALWAYS accessible via the tools above \u2014 zero setup, no integration required. Peer-service data (Gmail, Drive, etc.) is reached via cross-MCP composition in the user's AI client, not via PICA \u2014 call pica_works_query directly for catalog content.\n\nSpotify/YouTube URLs: call pica_import_streaming_link (Spotify/Deezer) or pica_import_youtube_link directly.\n\nAfter 3-5 catalog mutations or major state changes, call pica_dashboard_briefing and surface the delta to the user.\n\nKey patterns:\n- Read tools are safe to call freely (readOnlyHint=true)\n- many _inspect tools take a \"sections\" argument (e.g., pica_works_inspect sections: [\"health\", \"completeness\"]) \u2014 check the tool's schema\n- Write tools confirm what changed \u2014 share https://withpica.com/inspect/<feature>/<id> so the user can review (feature: works, people, recordings, releases, agreements; for audio files link the parent work). Destructive tools (delete/merge) need two-step confirmation with a token\n- Errors include \"suggestion\" and \"next_tool\" for recovery\n- Enrichment: use pica_resolve_work / pica_resolve_person / pica_resolve_recording \u2014 fan out over Spotify, MusicBrainz, MLC, ISNI, Discogs, YouTube\n\nRoyalty/streaming statements (PDF/image/xlsx): use pica_statements_pending \u2192 pica_documents_inspect \u2192 pica_statement_ingest_document (imports after owner approval). CSV statements go through pica_import_analyze / pica_import_execute instead.\n\nMost query tools accept \"limit\"; defaults vary \u2014 read the tool's schema. IDs are UUIDs \u2014 use a _query tool first when unsure.\n\nSkills: pica_skill_list discovers methodologies (catalog-audit, register-my-works, prepare-for-sync). pica_skill_get(name) loads one. Trigger phrases like \"audit my catalog\" map directly. Bodies load lazily \u2014 not at handshake.\n\nPeer MCPs (mail, drive, notes, calendar, DAW): when PICA shows gaps, check peers before asking the user; cite via pica_enrichment_propose sources[].url (URI shapes: pica_skill_get(\"enrich-from-peer-mcps\")). Citations persist verbatim and propagate to applied entities.";
34
+ export declare const SERVER_INSTRUCTIONS_AUTHENTICATED = "withPICA helps people look after their songs, and everything that comes with them (people, splits, codes, recordings, agreements, files), on their own terms: the user holds the record and decides; PICA remembers and shows what's missing. Asked what PICA is, say that plainly, in their words. Tools are pica_<domain>_<verb>, 300+, from npm as @withpica/mcp-server (not @picahq/mcp, unrelated).\n\nFirst-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt \u2014 your identity is already on file. Declaration is valid 24h per credential.\n\nOn the first user message of a session \u2014 unless it names a single concrete action (e.g. \"register work X\") \u2014 call pica_skill_get(\"first-session\") and follow it.\n\nStart here:\n- pica_dashboard_briefing \u2014 daily summary of what needs attention\n- pica_search_all \u2014 find any entity by name, ISWC, ISRC, or IPI\n- pica_works_query / pica_people_query \u2014 browse the catalog\n- pica_subscription_status \u2014 \"what's my plan / am I paying?\"; pica_billing_pay \u2014 a pay link for residency or a tab. On a connector call them through pica_execute {tool: \"<name>\", args: {...}}\n\nThe catalog is ALWAYS accessible via the tools above \u2014 zero setup, no integration required. Peer-service data (Gmail, Drive, etc.) is reached via cross-MCP composition in the user's AI client, not via PICA \u2014 call pica_works_query directly for catalog content.\n\nSpotify/YouTube URLs: call pica_import_streaming_link (Spotify/Deezer) or pica_import_youtube_link directly.\n\nAfter 3-5 catalog mutations or major state changes, call pica_dashboard_briefing and surface the delta to the user.\n\nKey patterns:\n- Read tools are safe to call freely (readOnlyHint=true)\n- many _inspect tools take a \"sections\" argument (e.g., pica_works_inspect sections: [\"health\", \"completeness\"]) \u2014 check the tool's schema\n- Write tools confirm what changed \u2014 share https://withpica.com/inspect/<feature>/<id> so the user can review (feature: works, people, recordings, releases, agreements; for audio files link the parent work). Destructive tools (delete/merge) need two-step confirmation with a token\n- Errors include \"suggestion\" and \"next_tool\" for recovery\n- Enrichment: use pica_resolve_work / pica_resolve_person / pica_resolve_recording \u2014 fan out over Spotify, MusicBrainz, MLC, ISNI, Discogs, YouTube\n\nRoyalty/streaming statements (PDF/image/xlsx): use pica_statements_pending \u2192 pica_documents_inspect \u2192 pica_statement_ingest_document (imports after owner approval). CSV statements go through pica_import_analyze / pica_import_execute instead.\n\nMost query tools accept \"limit\"; defaults vary \u2014 read the tool's schema. IDs are UUIDs \u2014 use a _query tool first when unsure.\n\nSkills: pica_skill_list discovers methodologies (catalog-audit, register-my-works, prepare-for-sync). pica_skill_get(name) loads one. Trigger phrases like \"audit my catalog\" map directly. Bodies load lazily \u2014 not at handshake.\n\nPeer MCPs (mail, drive, notes, calendar, DAW): when PICA shows gaps, check peers before asking the user; cite via pica_enrichment_propose sources[].url (URI shapes: pica_skill_get(\"enrich-from-peer-mcps\")). Citations persist verbatim and propagate to applied entities.";
35
35
  /**
36
36
  * Returns the authenticated handshake instructions.
37
37
  *
@@ -1 +1 @@
1
- {"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,mBAAmB,s4GA+B6O,CAAC;AAE9Q,mHAAmH;AACnH;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,OAAO,CAAC;AAExD,eAAO,MAAM,iCAAiC,s4GAAsB,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mCAAmC,iwBAM2M,CAAC"}
1
+ {"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,mBAAmB,8gHA+B6O,CAAC;AAE9Q,mHAAmH;AACnH;;;;;;;;GAQG;AACH,eAAO,MAAM,mCAAmC,OAAO,CAAC;AAExD,eAAO,MAAM,iCAAiC,8gHAAsB,CAAC;AAErE;;;;;;;;;GASG;AACH,wBAAgB,4BAA4B,IAAI,MAAM,CAErD;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mCAAmC,iwBAM2M,CAAC"}
@@ -20,7 +20,7 @@
20
20
  * Block playbook: "document the high level of your server"
21
21
  * Lowin: "instructions are context — design them as context"
22
22
  */
23
- export const SERVER_INSTRUCTIONS = `withPICA manages music catalog metadata — works, recordings, people, credits, agreements, rights. Tools are pica_<domain>_<verb>, 300+ of them, from npm as @withpica/mcp-server. Distinct from @picahq/mcp (picaos.com) — same short name, unrelated.
23
+ export const SERVER_INSTRUCTIONS = `withPICA helps people look after their songs, and everything that comes with them (people, splits, codes, recordings, agreements, files), on their own terms: the user holds the record and decides; PICA remembers and shows what's missing. Asked what PICA is, say that plainly, in their words. Tools are pica_<domain>_<verb>, 300+, from npm as @withpica/mcp-server (not @picahq/mcp, unrelated).
24
24
 
25
25
  First-call identity: If your auth is a Bearer API key (not a cookie session and not a pica_grant_* token), call pica_introduce_self FIRST with agent_name + optional agent_role / on_behalf_of / model_hint. PICA stamps the declaration onto every audit row that follows so the user can later reconstruct what their agent did. Cookie and pica_grant_* callers are exempt — your identity is already on file. Declaration is valid 24h per credential.
26
26
 
@@ -16,18 +16,18 @@ export const SKILLS = {
16
16
  audience: "manager / label / artist",
17
17
  tools_required: ["pica_dashboard_briefing", "pica_works_inspect", "pica_works_query", "pica_catalog_stats", "pica_find_duplicates"],
18
18
  output: "Plain-language health summary (suitable for a non-technical stakeholder) + top 3 highest-impact improvements with specific steps + post-fix score estimate + any urgent issues.",
19
- body: "# catalog-audit\n\nAudit a music catalog for completeness, quality, and registration readiness. Use this when a user asks \"how's my catalog doing,\" \"what needs fixing,\" or wants a health check before a release / sync push / sale.\n\n## Step 1 — Orient\n\nCall `pica_dashboard_briefing` first. The briefing returns a single compressed snapshot of catalog state (counts, recent activity, upcoming deadlines, top priorities). This is the cheapest first call and sets the routing decision for everything that follows.\n\n## Step 2 — Pull the PICA Score\n\nCall `pica_works_inspect` with `sections: [\"score\"]` on a representative work, or read the `catalog://health` resource. The score is a 0-100 composite across four pillars (income, ownership, asset, verification). The pillar with the lowest score is the audit's primary subject.\n\nDo NOT speculate about how the score is calculated beyond what the tool returns. Treat it as a black box that reports a number and pillar breakdown.\n\n## Step 3 — Sample for quality\n\nCall `pica_works_query` with `health_filter: \"low_completeness\"` and pull up to 20 works. For a sample of those, call `pica_works_inspect` with `sections: [\"completeness\"]` to see per-work gaps.\n\nCommon patterns to look for (publishing side — writer credits on works):\n- Works with no credits at all\n- Works where writer splits don't total 100%\n- Works with no recordings\n- Recordings with no ISRC\n- People credited on works but missing IPI or ISNI\n\n**Recording-side / master-ownership health** (artist / producer / label splits) is a separate domain handled per-recording by `set-recording-splits` — not surfaced by the score pillars at present. If the user mentions producer points, label splits, or master royalties, flag that this audit doesn't cover them and point to `set-recording-splits` per-recording.\n\n## Step 4 — Duplicate sweep\n\nCall `pica_find_duplicates`. A clean catalog has zero or near-zero duplicate signals. High duplicate counts indicate an import that needs reconciliation before further work.\n\n## Step 5 — Report\n\nProduce three things, in this order:\n\n1. **One-paragraph plain-language summary.** Suitable for a non-technical stakeholder. Lead with \"your catalog has X works and is healthy / has gaps / needs attention\" — not raw numbers.\n2. **Top 3 improvements, prioritised by effort vs impact.** Each with the specific tool call that would address it (e.g. \"add IPI numbers to 12 writers — call `pica_people_query` filtered by `has_ipi: false`, then `pica_people_update` for each\").\n3. **Score forecast.** \"After those fixes, the score would likely rise from X to Y.\"\n\nIf urgent issues exist (e.g. missing ownership data on a work with active royalties, unverified works being licensed) flag them at the top.\n\n## What not to do\n\n- Don't run all sub-workflows at once. The audit is read-only — improvements are a separate user decision.\n- Don't recommend `pica_works_delete` or any destructive operation. The audit's job is to describe, not to mutate.\n- Don't quote raw `pica_works_query` results back at the user verbatim. Summarise.\n\n## Follow-on skills\n\nAfter the audit, the natural next skills are:\n- `catalog-modelling` if the audit surfaces duplicate-title works or blank-ISWC variants that should be recordings under one work\n- `register-my-works` if registration coverage is low\n- `prepare-for-sync` if sync-readiness is the user's goal\n- `close-the-loop` (prompt) if the user wants to fix specific works one at a time\n",
19
+ body: "# catalog-audit\n\nAudit a music catalog for completeness, quality, and registration readiness. Use this when a user asks \"how's my catalog doing,\" \"what needs fixing,\" or wants a health check before a release / sync push / sale.\n\n## Step 1 — Orient\n\nCall `pica_dashboard_briefing` first. The briefing returns a single compressed snapshot of catalog state (counts, recent activity, upcoming deadlines, top priorities). This is the cheapest first call and sets the routing decision for everything that follows.\n\n## Step 2 — Pull the PICA Score\n\nCall `pica_works_inspect` with `sections: [\"score\"]` on a representative work, or read the `catalog://health` resource. The score is a 0-100 composite across four pillars (income, ownership, asset, verification). The pillar with the lowest score is the audit's primary subject.\n\nDo NOT speculate about how the score is calculated beyond what the tool returns. Treat it as a black box that reports a number and pillar breakdown.\n\n## Step 3 — Sample for quality\n\nCall `pica_works_query` with `health_filter: \"low_completeness\"` and pull up to 20 works. For a sample of those, call `pica_works_inspect` with `sections: [\"completeness\"]` to see per-work gaps.\n\nCommon patterns to look for (publishing side — writer credits on works):\n- Works with no credits at all\n- Works where writer splits don't total 100%\n- Works with no recordings\n- Recordings with no ISRC\n- People credited on works but missing IPI or ISNI\n\n**Recording-side / master-ownership health** (artist / producer / label splits) is a separate domain handled per-recording by `set-recording-splits` — not surfaced by the score pillars at present. If the user mentions producer points, label splits, or master royalties, flag that this audit doesn't cover them and point to `set-recording-splits` per-recording.\n\n## Step 4 — Duplicate sweep\n\nCall `pica_find_duplicates`. A clean catalog has zero or near-zero duplicate signals. High duplicate counts indicate an import that needs reconciliation before further work.\n\n## Step 5 — Report\n\nProduce three things, in this order:\n\n1. **One-paragraph plain-language summary.** Suitable for a non-technical stakeholder. Lead with \"your catalog has X works and is healthy / has gaps / needs attention\" — not raw numbers.\n2. **Top 3 improvements, prioritised by effort vs impact.** Each with the specific tool call that would address it (e.g. \"add IPI numbers to 12 writers — call `pica_people_query` filtered by `has_ipi: false`, then `pica_people_update` for each\").\n3. **Score forecast.** \"After those fixes, the score would likely rise from X to Y.\"\n\nIf urgent issues exist (e.g. missing ownership data on a work with active royalties, works being licensed whose ownership splits no holder has confirmed) flag them at the top.\n\n## What not to do\n\n- Don't run all sub-workflows at once. The audit is read-only — improvements are a separate user decision.\n- Don't recommend `pica_works_delete` or any destructive operation. The audit's job is to describe, not to mutate.\n- Don't quote raw `pica_works_query` results back at the user verbatim. Summarise.\n\n## Follow-on skills\n\nAfter the audit, the natural next skills are:\n- `catalog-modelling` if the audit surfaces duplicate-title works or blank-ISWC variants that should be recordings under one work\n- `register-my-works` if registration coverage is low\n- `prepare-for-sync` if sync-readiness is the user's goal\n- `close-the-loop` (prompt) if the user wants to fix specific works one at a time\n",
20
20
  },
21
21
  "catalog-modelling": {
22
22
  name: "catalog-modelling",
23
23
  description: "The data model for a music catalog — how to decide whether something is a work, a recording, or a release, and how to model song variants (instrumental, acoustic, live, remix) correctly. Front-load this before creating or restructuring catalog entities.",
24
- triggers: ["how should I model this", "is this a work or a recording", "instrumental version", "acoustic version", "should this be a separate work", "restructure my catalog", "consolidate works"],
24
+ triggers: ["how should I model this", "is this a work or a recording", "instrumental version", "acoustic version", "should this be a separate work", "is this remix a new song", "modified version", "restructure my catalog", "consolidate works"],
25
25
  audience: "manager / label / artist",
26
- tools_required: ["pica_works_create", "pica_recordings_create", "pica_recordings_update", "pica_works_delete", "pica_catalog_health"],
26
+ tools_required: ["pica_works_create", "pica_works_update", "pica_recordings_create", "pica_recordings_update", "pica_works_delete", "pica_catalog_health", "pica_find_duplicates"],
27
27
  output: "A modelling decision (work vs recording vs release) with the exact tool calls to create or restructure the entities, and — when consolidating — a safe repoint-then-relink-then-delete plan that never orphans a release track.",
28
- definition_of_done: "Each composition is ONE work with ONE ISWC; every variant is a recording under that work with the correct version_type; remixes are separate works; no blank-ISWC duplicate works sharing a title stem; release tracks resolve to the right work and recording.",
29
- when_not_to_use: "When the thing genuinely IS a separate composition — a remix or flip with new authorship, or a distinct song that merely shares a title stem. Those are their own works, not recordings under an existing one.",
30
- body: "# catalog-modelling\n\nUse this before creating or restructuring catalog entities. It answers the\nquestion agents get wrong most often: \"this instrumental / acoustic / live /\nremix version — is it a new work, a recording, or a release?\" Getting it wrong\nsplinters one song into many half-blank works and breaks every downstream\nreport. Getting it right is mechanical once you know the three grains.\n\n## The three grains\n\nPICA separates a song into three distinct entities, each with its own identity\neach answering a different question:\n\n- **work** = the composition, the song as written. carries the **ISWC** (`works.iswc`)\n and the composition credits. one work has many recordings.\n- **recording** = a specific master / sound recording of that work. carries the\n **ISRC** (`recordings.isrc`), the audio, and a `version_type`. it points at its\n work via `recordings.work_id`. a recording has no ISWC of its own — its\n composition identity is the work it hangs off. one recording appears on many\n releases.\n- **release** = a commercial product (single, album, compilation) that bundles\n recordings via `release_tracks`. carries the **UPC** and catalog number.\n\nThe rule the whole model rests on: **a fact lives on exactly one entity, at the\nright grain.** ISWC is a composition fact (work). ISRC is a master fact\n(recording). UPC is a product fact (release). Never put a master or release fact\non a work.\n\n## The decision rule\n\nWhen something new shows up that looks like `<existing work> - <variant>`\n(e.g. \"confetti heart - instrumental\", \"midnight - acoustic\", \"the song - live\nat koko\"):\n\n> it is a **recording under that existing work**, created or repointed with the\n> right `version_type` — **UNLESS** it is a remix or a flip with new authorship,\n> in which case it is a **separate work**.\n\nSo:\n\n- **same composition, different rendering** (instrumental, acoustic, live_performance, demo,\n edit, backing_track, edit, alternate) → one more **recording** under\n the existing work. set `work_id` to the existing work and `version_type` to the\n variant. do NOT mint a second work.\n- **new composition built on the old one** (a remix, a flip, a sample-based\n derivative, a re-write) → a **separate work** with its **own ISWC**, created via\n `pica_works_create`. it is its own composition because someone added new\n authorship.\n\n### the version_type values\n\n`version_type` is the canonical way to label a variant recording. the live\n`recordings_version_type_check` constraint (and `VALID_VERSION_TYPES` in\n`lib/services/recordings.ts`) accepts exactly these thirteen values:\n\n`demo`, `master`, `alternate_master`, `music_video`, `lyric_video`,\n`live_performance`, `acoustic`, `remix`, `cover`, `alternate`, `instrumental`,\n`backing_track`, `edit`.\n\na fresh master defaults to `master`. pick the most precise value — prefer\n`instrumental` / `backing_track` / `edit` over the lossy `alternate` catch-all.\nnote `remix` and `cover` exist as recording version_types too, but a remix that\nadds new authorship is better modelled as a separate work (see below); the\n`remix` recording value is for the case where you are cataloguing the remix as a\nmaster without a distinct composition entry.\n\n## how a remix / derivative links to its parent\n\nBe honest about what the agent-facing tools can do here. PICA's internal schema\ndoes have a `work_versions` table that records parent→child derivative\nrelationships (`parent_work_id` → `child_work_id`, with a `version_type` that\nincludes `remix`, `cover`, `sample`), managed by\n`lib/services/work-versions.ts`. **But there is no MCP tool today that writes a\n`work_versions` link, and the `works` table itself has no parent/derivative FK\ncolumn.** So through the MCP surface:\n\n> a remix or derivative is a **separate work with its own ISWC**, created via\n> `pica_works_create`. there is no MCP step to formally link it back to the\n> original — do not invent one. model it as its own composition and move on.\n\nDo not tell the user you have \"linked the remix to the original\" — you cannot,\nvia these tools. Create the separate work; that is the correct and complete\naction.\n\n## composition splits vs master splits\n\nWhen you model a variant, the splits follow the grain (per\n`.claude/rules/business-logic.md`, Credit & Split Tables):\n\n- **composition splits / writer credits** live on the **work**, in\n `work_collaborators` (writer, composer, lyricist, arranger, publisher, with\n `split_percentage`). every recording under that work inherits the same\n composition — you do not re-enter writer splits per variant.\n- **master ownership splits** live on the **recording**, in `recording_splits`\n (`split_type`: master, mechanical, performance, sync); master attribution\n (producer, performer, etc.) lives in `recording_credits`. these are\n per-recording — an instrumental master can have different master ownership\n from the vocal master.\n\nSo an acoustic recording added under an existing work inherits that work's\nwriter splits automatically and only needs its own master splits if the\nownership differs.\n\n## worked example — confetti heart\n\nTake a song \"confetti heart\" with an instrumental, an acoustic, and a remix.\n\n- **confetti heart** → ONE **work** with its ISWC. its writer splits live here in\n `work_collaborators`.\n- **confetti heart (the released master)** → a **recording** under that work,\n `version_type: master`, with its ISRC.\n- **confetti heart (instrumental)** → another **recording** under the SAME work,\n `version_type: instrumental`. same ISWC (inherited via the work), its own ISRC.\n do not create a second \"confetti heart instrumental\" work.\n- **confetti heart (acoustic)** → another **recording** under the same work,\n `version_type: acoustic`.\n- **confetti heart (PRY remix)** → a **separate work** with its **own ISWC**\n (PRY added new authorship). created via `pica_works_create`. it then gets its\n own recording with `version_type: master` (or `remix`) and its own ISRC. no MCP\n link back to the original — it stands as its own composition.\n\nThe wrong model — four separate works all titled some variant of \"confetti\nheart\", three of them with blank ISWCs — is exactly what\n`pica_catalog_health` flags as duplicate works sharing a title stem.\n\n## safe consolidation procedure\n\nWhen a catalog already has the wrong shape — e.g. \"confetti heart\",\n\"confetti heart instrumental\", \"confetti heart acoustic\" as three separate works,\ntwo with blank ISWCs — consolidate them under the one real work. Do it in this\norder, and not any other, because deleting a work too early orphans or destroys\nthe release tracks that reference it.\n\n1. **Pick the canonical work** — the one with the real ISWC. this is the keeper.\n2. **Repoint each variant's recording onto the keeper.** for every recording\n hanging off a duplicate work, call `pica_recordings_update` with\n `work_id: <keeper work id>` and the correct `version_type` (e.g.\n `instrumental`, `acoustic`). the recording now belongs to the canonical work\n and keeps its ISRC and master splits.\n3. **Relink any affected release tracks to the keeper.** a `release_tracks` row\n references **both** `work_id` and `recording_id` (the table has\n `CHECK (recording_id IS NOT NULL OR work_id IS NOT NULL)`). any track that\n still points at a soon-to-be-deleted work via `work_id` must be repointed to\n the keeper work first.\n4. **Only now delete the now-empty duplicate work** with `pica_works_delete`.\n\n**Why relink the release tracks before the delete, not after.** Per the deletion\ncontract (`.claude/rules/business-logic.md`), deleting a work auto-detaches its\n`release_tracks` membership by nulling `release_tracks.work_id`. for a track that\nalso carries a recording, nulling the work id is harmless — it keeps its\nrecording. but a **work-only** track (no recording) cannot have its `work_id`\nnulled without violating the CHECK, so the deletion policy **deletes that whole\ntrack** instead (its `deleteWhenOrphanColumns` is `[\"recording_id\"]`). that would\nsilently drop the track from its release. and if the duplicate work still has\nrecordings attached, the delete **archives** the work rather than removing it —\nso you must repoint the recordings (step 2) to actually empty it. relinking the\ntracks first means every track keeps a valid work reference and the final delete\nis a clean no-dependents removal.\n\n## what not to do\n\n- don't mint a new work for an instrumental, acoustic, live_performance, demo, edit, or\n backing_track version. that is a recording under the existing work.\n- don't put an ISWC on a recording or a UPC on a work. facts live at their grain.\n- don't claim you \"linked\" a remix to its original — there is no MCP tool for\n that link. create the separate work and say so plainly.\n- don't delete a duplicate work before repointing its recordings and relinking\n its release tracks. order matters; a premature delete orphans or destroys\n tracks.\n- don't re-enter writer splits per variant. composition splits live once, on the\n work; recordings inherit the composition.\n\n## follow-on skills\n\n- `set-recording-splits` — once variants are correctly modelled as recordings,\n set the per-recording master ownership.\n- `catalog-audit` — to sweep the whole catalog for remaining duplicate-title\n works and blank ISWCs.\n- `register-my-works` — registered works pair with cleanly-modelled recordings.\n",
28
+ definition_of_done: "Each composition is ONE work with ONE ISWC; every variant — including a remix with no new writers — is a recording under that work with the correct version_type; a remix that added writers is its own work linked to the original with original_work_id; no blank-ISWC duplicate works sharing a title stem; release tracks resolve to the right work and recording.",
29
+ when_not_to_use: "When the thing genuinely IS a separate composition — a remix that added writers (a modified version, which you link rather than fold), or a distinct song that merely shares a title stem.",
30
+ body: "# catalog-modelling\n\nUse this before creating or restructuring catalog entities. It answers the\nquestion agents get wrong most often: \"this instrumental / acoustic / live /\nremix version — is it a new work, a recording, or a release?\" Getting it wrong\nsplinters one song into many half-blank works and breaks every downstream\nreport. Getting it right is mechanical once you know the three grains.\n\n## The three grains\n\nPICA separates a song into three distinct entities, each with its own identity\neach answering a different question:\n\n- **work** = the composition, the song as written. carries the **ISWC** (`works.iswc`)\n and the composition credits. one work has many recordings.\n- **recording** = a specific master / sound recording of that work. carries the\n **ISRC** (`recordings.isrc`), the audio, and a `version_type`. it points at its\n work via `recordings.work_id`. a recording has no ISWC of its own — its\n composition identity is the work it hangs off. one recording appears on many\n releases.\n- **release** = a commercial product (single, album, compilation) that bundles\n recordings via `release_tracks`. carries the **UPC** and catalog number.\n\nThe rule the whole model rests on: **a fact lives on exactly one entity, at the\nright grain.** ISWC is a composition fact (work). ISRC is a master fact\n(recording). UPC is a product fact (release). Never put a master or release fact\non a work.\n\n## The decision rule\n\nWhen something new shows up that looks like `<existing work> - <variant>`\n(e.g. \"confetti heart - instrumental\", \"midnight - acoustic\", \"the song - live\nat koko\"):\n\n> it is a **recording under that existing work**, created or repointed with the\n> right `version_type` — **UNLESS** someone added new writing to it, in which\n> case it is a **modified version**: its own work, linked to the original.\n\nSo:\n\n- **same composition, different rendering** (instrumental, acoustic, live_performance, demo,\n edit, backing_track, alternate) → one more **recording** under\n the existing work. set `work_id` to the existing work and `version_type` to the\n variant. do NOT mint a second work.\n- **a remix (or rmx, flip, bootleg, VIP) with no new writers** → also a\n **recording** under the existing work: its own ISRC, the same work, the same\n ISWC, the same writers. `version_type: remix`. the remixer is credited on the\n **recording** (`recording_credits` role `Remixer`), **not** as a writer.\n- **a remix that added writers** (new lyrics, a new melody, a new section) →\n a **modified version** (CWR calls it `MOD`): a separate work with its own\n ISWC and its own writer shares, **linked to the original** with\n `pica_works_update {id, original_work_id: <original work id>}` (or\n `original_work_id` on `pica_works_create`).\n\n**The deciding signal is the writers.** Compare the remix's writers to the\noriginal's: the same people, fewer of them, or none recorded → a recording.\nAnyone the original does not have → a modified version. If you do not know\nwhether writers were added, ask the user — do not guess, and do not assume a\nremix is a new song.\n\n### the version_type values\n\n`version_type` is the canonical way to label a variant recording. the live\n`recordings_version_type_check` constraint (and `VALID_VERSION_TYPES` in\n`lib/services/recordings.ts`) accepts exactly these thirteen values:\n\n`demo`, `master`, `alternate_master`, `music_video`, `lyric_video`,\n`live_performance`, `acoustic`, `remix`, `cover`, `alternate`, `instrumental`,\n`backing_track`, `edit`.\n\na fresh master defaults to `master`. pick the most precise value — prefer\n`instrumental` / `backing_track` / `edit` over the lossy `alternate` catch-all.\n`remix` is the value for a remix recording under the original work (the normal\ncase, above).\n\n## how a modified version links to its original\n\n`works.original_work_id` records it: set it on the modified version to the id\nof the work it modifies, with `pica_works_update` (or on `pica_works_create`).\nIt must name a work in the same catalogue, and a work cannot be a modified\nversion of itself. `null` clears it. The original's page then lists its\nmodified versions, and the modified version says which song it came from.\n\nLinking changes nothing else: both works keep their own writers, shares and\nISWC. It is only for a remix that **added writers** — a remix with the same\nwriters is not linked, it is a recording under the original.\n\n`pica_find_duplicates` (works) pairs each remix-titled work with its original\nand says which case it is: `match_kind: \"remix_recording\"` (move its\nrecordings under the original) or `\"remix_modified_version\"` (link it). Its\n`remix` block names the recordings, any added writers, and a remixer name read\nfrom the title — a name to check against the catalogue, never a person to\ncreate. Never answer a remix pair with `pica_merge_duplicates`: a merge would\nfold the remix's writers into the original's shares.\n\n## composition splits vs master splits\n\nWhen you model a variant, the splits follow the grain (per\n`.claude/rules/business-logic.md`, Credit & Split Tables):\n\n- **composition splits / writer credits** live on the **work**, in\n `work_collaborators` (writer, composer, lyricist, arranger, publisher, with\n `split_percentage`). every recording under that work inherits the same\n composition — you do not re-enter writer splits per variant.\n- **master ownership splits** live on the **recording**, in `recording_splits`\n (`split_type`: master, mechanical, performance, sync); master attribution\n (producer, performer, etc.) lives in `recording_credits`. these are\n per-recording — an instrumental master can have different master ownership\n from the vocal master.\n\nSo an acoustic recording added under an existing work inherits that work's\nwriter splits automatically and only needs its own master splits if the\nownership differs.\n\n## worked example — confetti heart\n\nTake a song \"confetti heart\" with an instrumental, an acoustic, and a remix.\n\n- **confetti heart** → ONE **work** with its ISWC. its writer splits live here in\n `work_collaborators`.\n- **confetti heart (the released master)** → a **recording** under that work,\n `version_type: master`, with its ISRC.\n- **confetti heart (instrumental)** → another **recording** under the SAME work,\n `version_type: instrumental`. same ISWC (inherited via the work), its own ISRC.\n do not create a second \"confetti heart instrumental\" work.\n- **confetti heart (acoustic)** → another **recording** under the same work,\n `version_type: acoustic`.\n- **confetti heart (Féz remix)** with the same writers → another **recording**\n under the SAME work, `version_type: remix`, its own ISRC, with Féz credited on\n the recording as `Remixer`. no second work.\n- **confetti heart (Féz remix)** where Féz wrote a new verse → a **modified\n version**: its own work with its own ISWC and writer shares (the original\n writers plus Féz), linked with `original_work_id` to confetti heart.\n\nThe wrong model — four separate works all titled some variant of \"confetti\nheart\", three of them with blank ISWCs — is exactly what\n`pica_catalog_health` flags as duplicate works sharing a title stem.\n\n## safe consolidation procedure\n\nWhen a catalog already has the wrong shape — e.g. \"confetti heart\",\n\"confetti heart instrumental\", \"confetti heart acoustic\" as three separate works,\ntwo with blank ISWCs — consolidate them under the one real work. Do it in this\norder, and not any other, because deleting a work too early orphans or destroys\nthe release tracks that reference it.\n\n1. **Pick the canonical work** — the one with the real ISWC. this is the keeper.\n2. **Repoint each variant's recording onto the keeper.** for every recording\n hanging off a duplicate work, call `pica_recordings_update` with\n `work_id: <keeper work id>` and the correct `version_type` (e.g.\n `instrumental`, `acoustic`). the recording now belongs to the canonical work\n and keeps its ISRC and master splits.\n3. **Relink any affected release tracks to the keeper.** a `release_tracks` row\n references **both** `work_id` and `recording_id` (the table has\n `CHECK (recording_id IS NOT NULL OR work_id IS NOT NULL)`). any track that\n still points at a soon-to-be-deleted work via `work_id` must be repointed to\n the keeper work first.\n4. **Only now delete the now-empty duplicate work** with `pica_works_delete`.\n\n**Why relink the release tracks before the delete, not after.** Per the deletion\ncontract (`.claude/rules/business-logic.md`), deleting a work auto-detaches its\n`release_tracks` membership by nulling `release_tracks.work_id`. for a track that\nalso carries a recording, nulling the work id is harmless — it keeps its\nrecording. but a **work-only** track (no recording) cannot have its `work_id`\nnulled without violating the CHECK, so the deletion policy **deletes that whole\ntrack** instead (its `deleteWhenOrphanColumns` is `[\"recording_id\"]`). that would\nsilently drop the track from its release. and if the duplicate work still has\nrecordings attached, the delete **archives** the work rather than removing it —\nso you must repoint the recordings (step 2) to actually empty it. relinking the\ntracks first means every track keeps a valid work reference and the final delete\nis a clean no-dependents removal.\n\n## what not to do\n\n- don't mint a new work for an instrumental, acoustic, live_performance, demo, edit, or\n backing_track version. that is a recording under the existing work.\n- don't put an ISWC on a recording or a UPC on a work. facts live at their grain.\n- don't mint a new work for a remix unless it added writers. a remix with the\n same writers is a recording under the original, with the remixer credited on\n the recording — never as a writer.\n- don't merge a remix work into its original with `pica_merge_duplicates` —\n move its recordings (`pica_recordings_update`) or, if it added writers, link\n it (`original_work_id`).\n- don't delete a duplicate work before repointing its recordings and relinking\n its release tracks. order matters; a premature delete orphans or destroys\n tracks.\n- don't re-enter writer splits per variant. composition splits live once, on the\n work; recordings inherit the composition.\n\n## follow-on skills\n\n- `set-recording-splits` — once variants are correctly modelled as recordings,\n set the per-recording master ownership.\n- `catalog-audit` — to sweep the whole catalog for remaining duplicate-title\n works and blank ISWCs.\n- `register-my-works` — registered works pair with cleanly-modelled recordings.\n",
31
31
  },
32
32
  "clean-up-artists": {
33
33
  name: "clean-up-artists",
@@ -49,12 +49,12 @@ export const SKILLS = {
49
49
  },
50
50
  "enrich-from-peer-mcps": {
51
51
  name: "enrich-from-peer-mcps",
52
- description: "Fill PICA catalog gaps by composing across the user's other connected MCPs (Gmail, Drive, Notion, Telegram, calendar, DAW). The cross-MCP integration workflow — PICA doesn't manage peer connections, but enrichment can consume sources cited from them via pica_enrichment_propose.",
53
- triggers: ["fill the gaps from my email", "check my drive for missing info", "enrich from my notes", "cross-reference with my other tools", "use my other MCPs to fill in PICA", "find emails for my people from my gmail", "fill in missing contact emails for collaborators", "back-fill emails for needs_email people"],
52
+ description: "Fill PICA catalog gaps by composing across the user's other connected MCPs (Gmail, Drive, Notion, Telegram, calendar, DAW) and public registries on the web (ISWC Net, the MLC public search, society repertoire searches, Discogs / MusicBrainz credits). The cross-MCP integration workflow — PICA doesn't manage peer connections, but enrichment can consume sources cited from them via pica_enrichment_propose.",
53
+ triggers: ["fill the gaps from my email", "check my drive for missing info", "enrich from my notes", "cross-reference with my other tools", "use my other MCPs to fill in PICA", "find emails for my people from my gmail", "fill in missing contact emails for collaborators", "back-fill emails for needs_email people", "look up my missing ISWCs", "find the credits for this song online"],
54
54
  audience: "power user with multiple MCPs connected / agency / multi-artist manager",
55
55
  tools_required: ["pica_works_inspect", "pica_works_query", "pica_people_query", "pica_enrichment_propose", "pica_enrichment_proposals_list"],
56
56
  output: "pica_enrichment_proposals rows created with sources[].url citations from peer MCPs, ready for the user to review and apply via the existing enrichment-proposals workflow.",
57
- body: "# enrich-from-peer-mcps\n\nFill PICA catalog gaps by composing across the user's other connected MCPs. This is the cross-MCP integration story for PICA — the user has Gmail or Drive or Notion connected in their AI client, the agent queries those tools when PICA shows missing data, and the resulting information lands in PICA as cited enrichment proposals.\n\n**Important framing:** PICA does NOT manage these connections. The user wires Gmail (etc.) into their AI client separately. PICA's role is to (1) signal what's missing, (2) accept enrichment proposals with `sources[].url` citations using the peer-MCP URI schemes, and (3) let the user review proposals before applying.\n\n## Pre-flight\n\nRead `pica://schemas/enrichment-resolve-required` for the canonical proposal shape, including the URI scheme convention for source citations. The scheme list:\n\n| Scheme | What it cites |\n|---|---|\n| `gmail://` | An email or thread in the user's Gmail |\n| `gdrive://` | A document or file in the user's Google Drive |\n| `notion://` | A page in the user's Notion workspace |\n| `file://` | A local file on the user's machine |\n| `telegram://` | A message or thread in the user's Telegram |\n| `calendar://` | An event in the user's calendar |\n| `daw://` | A DAW session file (Ableton, Logic, Pro Tools, etc.) |\n| `user://` | The user told you directly (no external source) |\n| `web://` | A public web page |\n\nEach citation is opaque to PICA — PICA doesn't fetch the URI. It just records it as provenance so the user knows where the enrichment came from.\n\n## Step 1 — Identify the gap\n\nTwo entry paths:\n\n- **User-named work** — they said \"fill the gaps on track X from my email.\" Use `pica_works_inspect` with `sections: [\"completeness\", \"enrichment\"]` to see what's missing.\n- **Gap class across catalog** — they said \"what's missing across my catalog?\" Use `pica_works_query` with `health_filter: \"low_completeness\"` to find candidates, then `pica_works_inspect` per work.\n\nDon't try to query peer MCPs proactively for every gap. Start narrow — one work, or one gap class (e.g. \"all works missing ISWC\").\n\n## Step 2 — Map the gap to a peer MCP\n\nFor each gap, suggest the peer MCP that's likely to have the answer:\n\n| Gap | Likely peer MCP | What to look for |\n|---|---|---|\n| Missing splits | Gmail / Drive | Split sheets, email threads agreeing on percentages |\n| Missing ISWC | Gmail / Drive | PRO registration confirmation emails, MLC submissions |\n| Missing co-writer | Calendar / Gmail / DAW | Session calendar invites, email chains with collaborators, DAW project metadata |\n| Missing recording details | Gmail / DAW | Mixer/engineer emails, DAW session names |\n| Missing release date | Gmail / Drive | Distributor confirmations, release plan docs |\n| Missing publisher contact | Notion / Drive | Contact rolodex, publishing agreement PDFs |\n| Missing person email (`needs_email` people) | Gmail | Two-way correspondence where the address belongs to the person — see the email-backfill rules below |\n\nThis is a routing guide, not a prescription. The user knows their workflow — defer to them about which MCP to check.\n\n### Person email backfill (a common, footgun-prone case)\n\nFilling missing emails for `needs_email` people is the same propose-only flow — `email` is a first-class enrichable field, so a Gmail-sourced address lands via `pica_enrichment_propose` (entity_type `person`) with a `gmail://` source citation, then the user reviews. Two extra rules, because a wrong email on a rights-holder is worse than a blank one:\n\n- **Score the address, don't take the first hit.** Strongest: the address literally contains the person's name AND they are a direct sender/recipient in two-way correspondence. Weaker: name-inferred address, or a role address (`info@`/`team@`). Reject: the name only appears in the body, the sender is a third party (management, box office, a newsletter), or it's a recurring unrelated distribution thread (a reliable \"no real hit\" tell).\n- **Check for a collision first.** Before proposing, call `pica_people_query` for the candidate address — if it already sits on another person, do NOT assign it; flag the conflict for the user. (This dedup-collision check is the one thing the agent can't eyeball from Gmail alone.)\n\nNever auto-write — propose, the user confirms.\n\n## Step 3 — Ask the agent to check the relevant peer MCP\n\nThe agent connected to PICA is the same agent connected to (e.g.) Gmail. Ask the agent to run a targeted query in the peer MCP:\n\n- \"Search the user's Gmail for emails about [song title] from [approximate date range]\"\n- \"Look in the user's Drive for documents with [song title] or [collaborator name]\"\n- \"Check the user's calendar for sessions on [date range] tagged [project name]\"\n\nThe peer-MCP query is the agent's job, not PICA's. PICA waits for the agent to return with what it found.\n\n## Step 4 — Cite the source via pica_enrichment_propose\n\nOnce the agent has the missing data, call `pica_enrichment_propose` with:\n\n- The entity ID being enriched (work_id, recording_id, person_id)\n- The proposed value(s)\n- A `sources` array, each entry with a `url` field using the appropriate URI scheme\n\nExample shape:\n\n```json\n{\n \"entity_type\": \"work\",\n \"entity_id\": \"uuid\",\n \"proposed\": { \"iswc\": \"T-123.456.789-0\" },\n \"sources\": [\n { \"url\": \"gmail://thread/abc123\", \"context\": \"PRS registration confirmation email, March 2025\" }\n ]\n}\n```\n\nThe URI is opaque to PICA. The `context` field gives the user a human-readable hint about what the source is.\n\n## Step 5 — Review proposals\n\nCall `pica_enrichment_proposals_list` to show the user what's been queued. They review, apply (or reject), per the existing enrichment-proposals workflow. **Do not auto-apply** — enrichment from external sources always needs explicit user review.\n\n## Step 6 — Loop or close\n\nAsk the user:\n- \"Apply the proposal?\" — they confirm; the enrichment lands\n- \"Move on to the next gap?\" — continue\n- \"Done for now?\" — stop, summarise what was proposed\n\n## What not to do\n\n- Don't try to connect peer MCPs to PICA. PICA doesn't have that surface any more. The connection lives in the user's AI client.\n- Don't fabricate URIs. If the agent didn't actually find the source, don't pretend it did — record the enrichment with `user://` (told to me directly) instead.\n- Don't auto-apply proposals. Even when the source seems definitive, the user reviews.\n- Don't query peer MCPs proactively for unrelated gaps. The user named one gap; the skill works one gap at a time.\n- Don't try to enrich from `lib/services/*` paths or internal cascade endpoints. Those aren't peer MCPs and aren't in scope.\n\n## Follow-on skills\n\n- `close-the-loop` — once gaps are enriched, walk through the remaining (non-peer-MCP) gaps on the same work\n- `audit-credits` — periodic catalog-wide credit sweep\n- `register-my-works` — once IPI / ISWC are filled, registration is unblocked\n",
57
+ body: "# enrich-from-peer-mcps\n\nFill PICA catalog gaps by composing across the user's other connected MCPs. This is the cross-MCP integration story for PICA — the user has Gmail or Drive or Notion connected in their AI client, the agent queries those tools when PICA shows missing data, and the resulting information lands in PICA as cited enrichment proposals.\n\n**Important framing:** PICA does NOT manage these connections. The user wires Gmail (etc.) into their AI client separately. PICA's role is to (1) signal what's missing, (2) accept enrichment proposals with `sources[].url` citations using the peer-MCP URI schemes, and (3) let the user review proposals before applying.\n\n## Pre-flight\n\nRead `pica://schemas/enrichment-resolve-required` for the canonical proposal shape, including the URI scheme convention for source citations. The scheme list:\n\n| Scheme | What it cites |\n|---|---|\n| `gmail://` | An email or thread in the user's Gmail |\n| `gdrive://` | A document or file in the user's Google Drive |\n| `notion://` | A page in the user's Notion workspace |\n| `file://` | A local file on the user's machine |\n| `telegram://` | A message or thread in the user's Telegram |\n| `calendar://` | An event in the user's calendar |\n| `daw://` | A DAW session file (Ableton, Logic, Pro Tools, etc.) |\n| `user://` | The user told you directly (no external source) |\n| `web://` | A public web page (or cite the page's plain `https://` URL) |\n\nEach citation is opaque to PICA — PICA doesn't fetch the URI. It just records it as provenance so the user knows where the enrichment came from.\n\n## Step 1 — Identify the gap\n\nTwo entry paths:\n\n- **User-named work** — they said \"fill the gaps on track X from my email.\" Use `pica_works_inspect` with `sections: [\"completeness\", \"enrichment\"]` to see what's missing.\n- **Gap class across catalog** — they said \"what's missing across my catalog?\" Use `pica_works_query` with `health_filter: \"low_completeness\"` to find candidates, then `pica_works_inspect` per work.\n\nFor a missing ISWC, read `completeness.iswc_gap.status` first. `likely_exists_unmatched` means a society registration or work code is on file, so an ISWC almost certainly exists and only needs finding — the public-web route below is the quickest. `not_found` means PICA has no ISWC and no registration on file; it does NOT mean the work is unregistered, so check before telling the user it needs registering.\n\nDon't try to query peer MCPs proactively for every gap. Start narrow — one work, or one gap class (e.g. \"all works missing ISWC\").\n\n## Step 2 — Map the gap to a peer MCP\n\nFor each gap, suggest the peer MCP that's likely to have the answer:\n\n| Gap | Likely peer MCP | What to look for |\n|---|---|---|\n| Missing splits | Gmail / Drive | Split sheets, email threads agreeing on percentages |\n| Missing ISWC | Gmail / Drive | PRO registration confirmation emails, MLC submissions |\n| Missing co-writer | Calendar / Gmail / DAW | Session calendar invites, email chains with collaborators, DAW project metadata |\n| Missing recording details | Gmail / DAW | Mixer/engineer emails, DAW session names |\n| Missing release date | Gmail / Drive | Distributor confirmations, release plan docs |\n| Missing publisher contact | Notion / Drive | Contact rolodex, publishing agreement PDFs |\n| Missing person email (`needs_email` people) | Gmail | Two-way correspondence where the address belongs to the person — see the email-backfill rules below |\n| Missing ISWC (esp. `iswc_gap.status: likely_exists_unmatched`), writer IPI, or credits | Public web (the agent's own web search / fetch) | ISWC Net, the MLC public search, the registering society's public repertoire search, Discogs / MusicBrainz credits, the label's release page, liner notes — see the public-web rules below |\n\nThis is a routing guide, not a prescription. The user knows their workflow — defer to them about which MCP to check.\n\n### Person email backfill (a common, footgun-prone case)\n\nFilling missing emails for `needs_email` people is the same propose-only flow — `email` is a first-class enrichable field, so a Gmail-sourced address lands via `pica_enrichment_propose` (entity_type `person`) with a `gmail://` source citation, then the user reviews. Two extra rules, because a wrong email on a rights-holder is worse than a blank one:\n\n- **Score the address, don't take the first hit.** Strongest: the address literally contains the person's name AND they are a direct sender/recipient in two-way correspondence. Weaker: name-inferred address, or a role address (`info@`/`team@`). Reject: the name only appears in the body, the sender is a third party (management, box office, a newsletter), or it's a recurring unrelated distribution thread (a reliable \"no real hit\" tell).\n- **Check for a collision first.** Before proposing, call `pica_people_query` for the candidate address — if it already sits on another person, do NOT assign it; flag the conflict for the user. (This dedup-collision check is the one thing the agent can't eyeball from Gmail alone.)\n\nNever auto-write — propose, the user confirms.\n\n### Public-web research (ISWC, IPI, credits)\n\nOnly when the user has asked for enrichment — \"look up my ISWCs\", \"fill the gaps on track X\". A gap on its own is not a request to go searching.\n\n- **Where to look.** ISWC Net (the ISWC agency network's public search) and the MLC public search list ISWCs and writers; a society's public repertoire search lists the works it administers; Discogs and MusicBrainz carry credits; label release pages and liner notes carry both.\n- **Match before you propose.** Propose a value only when the page shows it for THIS work: the title matches AND at least one writer on file matches. A title-only hit is a question for the user, not a proposal — common titles collide.\n- **Cite the page itself.** `sources[].url` is the exact page (`https://…` or `web://https://…`), with `accessed_at` set to when you read it. Never cite a search engine results page, and never cite a page you did not open.\n- **Nothing found is not a finding.** If the search comes back empty, say you didn't find it — don't record \"not registered\", and don't guess a value.\n- **File via `pica_enrichment_propose`**, one work at a time; the user reviews and applies.\n\n## Step 3 — Ask the agent to check the relevant peer MCP\n\nThe agent connected to PICA is the same agent connected to (e.g.) Gmail. Ask the agent to run a targeted query in the peer MCP:\n\n- \"Search the user's Gmail for emails about [song title] from [approximate date range]\"\n- \"Look in the user's Drive for documents with [song title] or [collaborator name]\"\n- \"Check the user's calendar for sessions on [date range] tagged [project name]\"\n\nThe peer-MCP query is the agent's job, not PICA's. PICA waits for the agent to return with what it found.\n\n## Step 4 — Cite the source via pica_enrichment_propose\n\nOnce the agent has the missing data, call `pica_enrichment_propose` with:\n\n- `entity_type` and `entity_id` — the work, recording or person being enriched\n- `proposed_fields` — the proposed value(s)\n- `sources` — each entry a `url` (using the appropriate URI scheme), the `fields` it sources, and `accessed_at` (ISO 8601). Every key in `proposed_fields` must be named by at least one source.\n\nExample shape:\n\n```json\n{\n \"entity_type\": \"work\",\n \"entity_id\": \"uuid\",\n \"proposed_fields\": { \"iswc\": \"T-123.456.789-0\" },\n \"sources\": [\n {\n \"url\": \"gmail://thread/abc123\",\n \"fields\": [\"iswc\"],\n \"accessed_at\": \"2026-09-25T10:00:00Z\"\n }\n ]\n}\n```\n\nThe URI is opaque to PICA — it is recorded as provenance so the user can see where the value came from.\n\n## Step 5 — Review proposals\n\nCall `pica_enrichment_proposals_list` to show the user what's been queued. They review, apply (or reject), per the existing enrichment-proposals workflow. **Do not auto-apply** — enrichment from external sources always needs explicit user review.\n\n## Step 6 — Loop or close\n\nAsk the user:\n- \"Apply the proposal?\" — they confirm; the enrichment lands\n- \"Move on to the next gap?\" — continue\n- \"Done for now?\" — stop, summarise what was proposed\n\n## What not to do\n\n- Don't try to connect peer MCPs to PICA. PICA doesn't have that surface any more. The connection lives in the user's AI client.\n- Don't fabricate URIs. If the agent didn't actually find the source, don't pretend it did — record the enrichment with `user://` (told to me directly) instead.\n- Don't auto-apply proposals. Even when the source seems definitive, the user reviews.\n- Don't query peer MCPs proactively for unrelated gaps. The user named one gap; the skill works one gap at a time.\n- Don't try to enrich from `lib/services/*` paths or internal cascade endpoints. Those aren't peer MCPs and aren't in scope.\n\n## Follow-on skills\n\n- `close-the-loop` — once gaps are enriched, walk through the remaining (non-peer-MCP) gaps on the same work\n- `audit-credits` — periodic catalog-wide credit sweep\n- `register-my-works` — once IPI / ISWC are filled, registration is unblocked\n",
58
58
  },
59
59
  "first-session": {
60
60
  name: "first-session",
@@ -63,7 +63,7 @@ export const SKILLS = {
63
63
  audience: "any agent connecting to PICA via MCP, especially on the first message of a session",
64
64
  tools_required: ["pica_get_agent_activity", "pica_dashboard_briefing", "pica_dashboard_attention", "pica_skill_list", "pica_report_issue", "pica_memory_list", "pica_memory_save", "pica_import_streaming_link", "pica_import_youtube_link"],
65
65
  output: "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.",
66
- body: "# 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\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",
66
+ body: "# 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",
67
67
  },
68
68
  "import-my-catalog": {
69
69
  name: "import-my-catalog",
@@ -138,7 +138,7 @@ export const SKILLS = {
138
138
  audience: "producer / artist / label / manager",
139
139
  tools_required: ["pica_recording_splits_list", "pica_recording_splits_create", "pica_recording_splits_verify", "pica_recordings_query", "pica_people_query", "pica_collaborators_invite", "pica_split_sheet_generate", "pica_split_sheet_send"],
140
140
  output: "Confirmed + verified recording_splits rows totalling 100%, with the option to generate and send a split sheet PDF for signatures.",
141
- body: "# set-recording-splits\n\nHelp the user set master ownership splits on a recording. These are master-side royalty shares — distinct from publishing splits, which are credits on a work. Splits flow into payments, so the skill prioritises accuracy over speed: propose → dry-run → confirm → commit → verify.\n\n## Pre-flight\n\nRead `pica://schemas/recording-splits-required` before any write. The canonical shape is `recording_id`, `person_id`, `percentage`, `split_type`, `role`. **Active shares for one `split_type` + territory may not pass 100%, and a person holds at most one share there** — the database refuses anything else (`RECORDING_SPLIT_TOTAL_EXCEEDED` / `RECORDING_SPLIT_EXISTS`).\n\n## Step 1 — Pick the recording\n\nIf the user names a recording or gives an ID, use it. Otherwise, call `pica_recordings_query` and let the user pick from recent recordings.\n\n## Step 2 — Show current state\n\nCall `pica_recording_splits_list` for the recording. Three states:\n\n- **Empty** — no splits set yet. Proceed to step 3.\n- **Partial** — some splits exist but don't total 100%. Ask the user whether they want to add the missing shares.\n- **Complete** — splits total 100%. Ask whether the user wants to verify (mark agreed-upon) what's there.\n\n`pica_recording_splits_create` only adds. It cannot replace or change a share already recorded — it refuses a second share for the same person with `RECORDING_SPLIT_EXISTS`, and there is no MCP tool that edits one. If the user wants a recorded share changed or ended, say so plainly: they can do it on the recording's page in /inspect.\n\nAlways summarise the current state plainly: \"right now this recording has [N] splits totalling [X]%, with [A] holding [P]%...\"\n\n## Step 3 — Capture proposed splits\n\nFor each split row, capture:\n\n- **Who owns this share?** — `person_id` from `pica_people_query`. If the person isn't on PICA yet, offer `pica_collaborators_invite` to bring them in before writing the split.\n- **What percentage?** — together with the shares already recorded, at most 100% for that `split_type` + territory.\n- **What kind?** — `split_type` is one of `master`, `mechanical`, `performance`, `sync` (master ownership is `master`); `role` is one of `owner`, `performer`, `producer`, `engineer`, `mixer`, `masterer`, `label`, `other`.\n\nSum the percentages out loud as you go. If they're not totalling 100% when the user finishes describing them, stop and ask them to adjust before proceeding.\n\n## Step 4 — Dry-run preview\n\nCall `pica_recording_splits_create` with `dry_run: true` for each proposed row. It writes nothing and returns the row that would land, the shares already recorded (`existing_shares`, `active_total`) and `likely_refusal`. Surface that to the user.\n\n- **If `likely_refusal` is set, stop** and tell the user what it says — the write would be refused.\n- **If `existing_shares_checked` is false**, the preview could not read the recorded shares and predicts nothing — say so; do not present it as a clean preview.\n- Each dry run checks one row against what is already recorded, not against the other rows you are proposing — sum the proposed rows yourself. **If they would pass 100% with what is recorded, stop.** Do not proceed to commit.\n\n## Step 5 — Explicit confirmation\n\nSay something like:\n\n> \"I'm about to set [N] splits on this recording totalling 100%:\n> - [A] — [P]% ([type])\n> - [B] — [Q]% ([type])\n> Reply 'yes' to commit, or tell me what to change.\"\n\nWait for the user's explicit \"yes\" (or equivalent). Don't write on ambiguous signals.\n\n## Step 6 — Commit\n\nFor each split, call `pica_recording_splits_create` (this time without `dry_run`). Report each row back as it lands. If any write fails, stop the loop — don't partially commit.\n\n## Step 7 — Verify\n\nFor each newly created split, call `pica_recording_splits_verify` with the `split_id`. Verification marks the split as agreed-upon — a separate state from \"exists in the database.\"\n\n## Step 8 — Offer next moves\n\n- \"Want me to generate a split sheet PDF for signatures?\" → `pica_split_sheet_generate`\n- \"Want me to send the split sheet to the parties?\" → `pica_split_sheet_send`\n- \"Want me to set splits on another recording?\"\n\n## What not to do\n\n- Don't write splits without an explicit \"yes\" from the user\n- Don't proceed if the totals don't equal 100% — re-prompt instead\n- Don't auto-skip the verify step. Verification is a deliberate user moment.\n- Don't speculate about typical splits by genre or scene — if the user doesn't know what % someone deserves, that's a business conversation outside this skill\n- Don't conflate with writer splits — those are credits on a work, set via `pica_credits_update`. Different table, different semantics.\n\n## Follow-on skills\n\n- `close-the-loop` — recording splits are usually one gap among several on a work; close-the-loop fits the others\n- `register-my-works` — registered works pair with recordings that have clear ownership chains\n- `audit-credits` — splits health-check across the whole catalog\n",
141
+ body: "# set-recording-splits\n\nHelp the user set master ownership splits on a recording. These are master-side royalty shares — distinct from publishing splits, which are credits on a work. Splits flow into payments, so the skill prioritises accuracy over speed: propose → dry-run → confirm → commit → verify.\n\n## Pre-flight\n\nRead `pica://schemas/recording-splits-required` before any write. The canonical shape is `recording_id`, `person_id`, `percentage`, `split_type`, `role`. **Active shares for one `split_type` + territory may not pass 100%, and a person holds at most one share there** — the database refuses anything else (`RECORDING_SPLIT_TOTAL_EXCEEDED` / `RECORDING_SPLIT_EXISTS`).\n\n## Step 1 — Pick the recording\n\nIf the user names a recording or gives an ID, use it. Otherwise, call `pica_recordings_query` and let the user pick from recent recordings.\n\n## Step 2 — Show current state\n\nCall `pica_recording_splits_list` for the recording. Three states:\n\n- **Empty** — no splits set yet. Proceed to step 3.\n- **Partial** — some splits exist but don't total 100%. Ask the user whether they want to add the missing shares.\n- **Complete** — splits total 100%. Ask whether the user wants to verify (mark agreed-upon) what's there.\n\n`pica_recording_splits_create` only adds. It cannot replace or change a share already recorded — it refuses a second share for the same person with `RECORDING_SPLIT_EXISTS`, and there is no MCP tool that edits one. If the user wants a recorded share changed or ended, say so plainly: they can do it on the recording's page in /inspect.\n\nAlways summarise the current state plainly: \"right now this recording has [N] splits totalling [X]%, with [A] holding [P]%...\"\n\n## Step 3 — Capture proposed splits\n\nFor each split row, capture:\n\n- **Who owns this share?** — `person_id` from `pica_people_query`. If the person isn't on PICA yet, offer `pica_collaborators_invite` to bring them in before writing the split.\n- **What percentage?** — together with the shares already recorded, at most 100% for that `split_type` + territory.\n- **What kind?** — `split_type` is one of `master`, `mechanical`, `performance`, `sync` (master ownership is `master`); `role` is one of `owner`, `performer`, `producer`, `engineer`, `mixer`, `masterer`, `label`, `other`.\n\nSum the percentages out loud as you go. If they're not totalling 100% when the user finishes describing them, stop and ask them to adjust before proceeding.\n\n## Step 4 — Dry-run preview\n\nCall `pica_recording_splits_create` with `dry_run: true` for each proposed row. It writes nothing and returns the row that would land, the shares already recorded (`existing_shares`, `active_total`) and `likely_refusal`. Surface that to the user.\n\n- **If `likely_refusal` is set, stop** and tell the user what it says — the write would be refused.\n- **If `existing_shares_checked` is false**, the preview could not read the recorded shares and predicts nothing — say so; do not present it as a clean preview.\n- Each dry run checks one row against what is already recorded, not against the other rows you are proposing — sum the proposed rows yourself. **If they would pass 100% with what is recorded, stop.** Do not proceed to commit.\n\n## Step 5 — Explicit confirmation\n\nSay something like:\n\n> \"I'm about to set [N] splits on this recording totalling 100%:\n> - [A] — [P]% ([type])\n> - [B] — [Q]% ([type])\n> Reply 'yes' to commit, or tell me what to change.\"\n\nWait for the user's explicit \"yes\" (or equivalent). Don't write on ambiguous signals.\n\n## Step 6 — Commit\n\nFor each split, call `pica_recording_splits_create` (this time without `dry_run`). Report each row back as it lands. If any write fails, stop the loop — don't partially commit.\n\n## Step 7 — Verify\n\nVerification marks a split as agreed-upon — a separate state from \"exists in the database.\" It records WHICH PERSON agreed, so it is the split holder's own act: `pica_recording_splits_verify` refuses an agent (`VERIFICATION_REQUIRES_HUMAN_SESSION`) and you cannot do it for them. Tell each holder where to do it: signed in, \"confirm my share\" under ownership splits on the recording's page, `/inspect/recordings/<recording_id>#ownership-splits`. If a holder is someone other than the user, `pica_notify_person` with the `recording_id` sends them a link to that page.\n\n## Step 8 — Offer next moves\n\n- \"Want me to generate a split sheet PDF for signatures?\" → `pica_split_sheet_generate`\n- \"Want me to send the split sheet to the parties?\" → `pica_split_sheet_send`\n- \"Want me to set splits on another recording?\"\n\n## What not to do\n\n- Don't write splits without an explicit \"yes\" from the user\n- Don't proceed if the totals don't equal 100% — re-prompt instead\n- Don't skip telling holders how to verify, and don't retry `pica_recording_splits_verify` after it refuses. Verification is a deliberate moment for the holder, not for you.\n- Don't speculate about typical splits by genre or scene — if the user doesn't know what % someone deserves, that's a business conversation outside this skill\n- Don't conflate with writer splits — those are credits on a work, set via `pica_credits_update`. Different table, different semantics.\n\n## Follow-on skills\n\n- `close-the-loop` — recording splits are usually one gap among several on a work; close-the-loop fits the others\n- `register-my-works` — registered works pair with recordings that have clear ownership chains\n- `audit-credits` — splits health-check across the whole catalog\n",
142
142
  },
143
143
  "set-up-workspace": {
144
144
  name: "set-up-workspace",
@@ -1 +1 @@
1
- {"version":3,"file":"skills.generated.js","sourceRoot":"","sources":["../../src/skills/skills.generated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skills.generated.js","sourceRoot":"","sources":["../../src/skills/skills.generated.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"agreement-types.d.ts","sourceRoot":"","sources":["../../src/tools/agreement-types.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAetE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,QAAQ;IAWhB,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAoR3D,KAAK;YAML,OAAO;YAMP,MAAM;YA8CN,MAAM;YAON,MAAM;YASN,cAAc;YAMd,iBAAiB;YAOjB,kBAAkB;CAMjC"}
1
+ {"version":3,"file":"agreement-types.d.ts","sourceRoot":"","sources":["../../src/tools/agreement-types.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAetE,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,IAAI,CAAa;gBAEb,IAAI,EAAE,UAAU;IAI5B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,QAAQ;IAWhB,QAAQ,IAAI,KAAK,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;YAsR3D,KAAK;YAML,OAAO;YAMP,MAAM;YA8CN,MAAM;YAON,MAAM;YASN,cAAc;YAMd,iBAAiB;YAOjB,kBAAkB;CAMjC"}
@@ -69,6 +69,7 @@ export class AgreementTypesTools {
69
69
  audiences: ["stdio", "http", "public"],
70
70
  tier: "read",
71
71
  description: "Get a specific agreement by type and ID — full details including body, terms, and metadata. " +
72
+ "Producer and work-for-hire agreements are money: without the org's finance access the body, fee, advance and points are withheld and the row carries finance_access_required: true. " +
72
73
  "To browse every agreement of a type, use " +
73
74
  "pica_agreement_types_query; this one needs the id.",
74
75
  workflows: "infrastructure",
@@ -106,6 +107,7 @@ export class AgreementTypesTools {
106
107
  "template (needs name + category + templateText), " +
107
108
  "producer (needs producer_id + royalty_points + deliverables + work_id|recording_id), " +
108
109
  "work_for_hire (needs contractor_id + contractor_role + fee_amount + services_description + work_id|recording_id). " +
110
+ "Creating a producer or work-for-hire agreement needs the org's finance access (refused with FINANCE_ACCESS_REQUIRED otherwise). " +
109
111
  "Prefer pica_agreement_templates_duplicate when the user wants a copy of an existing template.",
110
112
  workflows: "infrastructure",
111
113
  vernacular_kind: "specialist",
@@ -127,7 +129,7 @@ export class AgreementTypesTools {
127
129
  description: "Update an existing agreement by type and ID. " +
128
130
  "Note: PATCH on producer_agreements and work_for_hire_agreements is action-only " +
129
131
  "(send_for_signature / countersign / mark_advance_paid / mark_paid / record_recoupment / " +
130
- "calculate_royalty), not generic field-level. Template branch accepts field updates. " +
132
+ "calculate_royalty), not generic field-level; every action except send_for_signature needs the org's finance access. Template branch accepts field updates. " +
131
133
  "Prefer pica_agreement_templates_set_default when the change is " +
132
134
  "just making a template the default for its type.",
133
135
  workflows: "infrastructure",