Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions skills/recoup-platform-api-access/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,20 @@ If neither var is set, ask the user to authenticate — don't retry blindly.
`account_id` + row `id`.
- **D — add an artist** → use recoup-roster-add-artist.

**Roster discovery:** `GET /accounts/id` → `GET /artists` (your roster; `org_id`
optional — orgs are often empty, so don't stop when `organizations` is `[]`).
**Skip discovery when the run gives you the artist.** If your context/system
prompt provides an `artist_account_id` (scheduled tasks and headless runs pass

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P3: Placeholder {that id} is conversational and doesn't match the variable name artist_account_id introduced in the same sentence. An agent reading call /api/artists/{that id}/* may not resolve what value to substitute. Use {artist_account_id} for consistency with the rest of the skill's named-placeholder convention.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At skills/recoup-platform-api-access/SKILL.md, line 34:

<comment>Placeholder `{that id}` is conversational and doesn't match the variable name `artist_account_id` introduced in the same sentence. An agent reading `call /api/artists/{that id}/*` may not resolve what value to substitute. Use `{artist_account_id}` for consistency with the rest of the skill's named-placeholder convention.</comment>

<file context>
@@ -30,8 +30,20 @@ If neither var is set, ask the user to authenticate — don't retry blindly.
-**Roster discovery:** `GET /accounts/id` → `GET /artists` (your roster; `org_id`
-optional — orgs are often empty, so don't stop when `organizations` is `[]`).
+**Skip discovery when the run gives you the artist.** If your context/system
+prompt provides an `artist_account_id` (scheduled tasks and headless runs pass
+one), **use it directly** — call `/api/artists/{that id}/*` and get to work. Do
+not search the roster to "confirm" an artist you were already given.
</file context>

one), **use it directly** — call `/api/artists/{that id}/*` and get to work. Do
not search the roster to "confirm" an artist you were already given.

**Roster discovery (only when no artist context exists):** `GET /accounts/id` →
`GET /artists` (your **personal** roster; `org_id` optional — orgs are often
empty, so don't stop when `organizations` is `[]`).

> ⚠️ **`GET /artists?org_id=…` returns the ORG's roster, not yours** — often a
> different, tiny list. Never conclude an artist "doesn't exist" from the
> org-scoped list alone: check the plain personal `GET /api/artists` first. (Real
> failure: an agent resolved `$RECOUP_ORG_ID` → a 1-artist org list and declared
> a 59-artist personal roster's artist missing.)

> **Use `account_id`, not the list `id`, for every `/artists/{id}/*` sub-resource**
> (socials/posts/fans key on `account_id`; the list's top-level `id` 404s). And
Expand Down
Loading