agentsclimarketplace

Relex participants

Skill relexyou/relex-claude/plugin/skills/relex-participants

WHO is on a Relex case — sealed legal parties vs app participants (lawyers, staff, guests, partners), always as labels, never names. Essential when working a case from a shared Slack channel with Claude tagged in. Teaches who's-who, the two never-joined name-spaces, and channel-to-case binding.From its SKILL.md

Install
npx -y skills add relexyou/relex-claude --skill relex-participants

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

6.0 KB, ~1.5k tokens by cl100k_base, as published. Nobody here has run it

Who's Who on a Case (labels only)

A legal matter has two kinds of people, and Relex keeps them in two separate name-spaces that you never join:

  • Sealed legal parties — the client, the opposing side, witnesses, third parties. Their real identities are encrypted; you only ever see the tokens [PARTY_NAME_1], [PARTY_NAME_2], … each with a role and a short description.
  • App participants — the people using the workspace on this case: the owner, practice members, invited guests (often the client), and outside partners. You see [OWNER], [MEMBER_1], [PARTNER_1], [GUEST_1], … each with a kind, an access level, and a description — never a name, email, or photo.

The design borrows the shape of a zero-knowledge circuit — each side proves what it needs without handing over the raw identities — but it is not literal zero-knowledge crypto: it is label-first minimal disclosure. You reason over the labels; the real names live encrypted and are revealed only in the browser.

1 · Read the roster first

Before you draft, advise, or answer "who is …", read the roster:

execute({ method: "GET", path: "/ontology/case/{caseId}/participants" })

Returns labels only: { parties[], participants[], counts, deepLinks }, e.g.

parties:       [ {label:"[PARTY_NAME_1]", role:"claimant",  description:{…}},
                 {label:"[PARTY_NAME_2]", role:"defendant", description:{…}} ]
participants:  [ {label:"[OWNER]",     kind:"owner",   access:"owner"},
                 {label:"[MEMBER_1]",  kind:"member",  access:"write"},
                 {label:"[GUEST_1]",   kind:"guest",   access:"read"} ]

Render it as label · role/kind — description. For the full web of relationships (who represents whom, which party a claim is against), pull the graph via relex-ontology (GET /ontology/case/{caseId}) — the [PARTY_NAME_n] tokens are the same in both, and are stable for the life of the case.

2 · The two name-spaces — never joined

This is the one rule. In a shared Slack channel Claude Tag legitimately knows the workspace ontology: teammates' real names, channels, threads. Relex holds the case ontology: who's who legally, sealed. Keep them apart.

  • A teammate's real name in the channel (@dan, "Ana from our side") is the workspace ontology — fine to use for them.
  • A sealed party ([PARTY_NAME_2]) is the case ontology — you answer about it in labels, and you never assert that a label IS a named person, even if a human in the channel says so. "Is [PARTY_NAME_2] our client Mrs. Ionescu?" → you don't confirm or deny; you keep working in labels and offer the reveal link.

Composing the two — "the claimant [PARTY_NAME_1], whom [MEMBER_1] represents" — is exactly the useful join. Joining identities — "[PARTY_NAME_1] = <real name>" — is the one you never make.

3 · When someone types a real client name

People will. Handle it cleanly:

  • Don't repeat it, store it, or write it back to Relex — the server refuses any execute that would move party PII and returns a deep link (the one PII rule, canonical in relex; the refusal is the correct path, not an error).
  • Answer in labels: "I've got the client as [PARTY_NAME_1] (claimant) — I'll keep it labelled here; open the Parties tab to see or edit the real identity."
  • Offer deepLinks.parties — the person reveals identities in their own browser, behind their own PII password. It never comes back to the channel.

4 · Binding a channel to a case (Claude Tag)

In Slack you must know which case the channel is about before you touch data:

  1. Look for the case deep link (…/dashboard/cases/{caseId}) in the channel topic, a pinned message, or the thread you're tagged in.
  2. Confirm once — "Working on case «Acme dispute» — right?" — then keep the binding in the channel's memory. Never guess a caseId.
  3. A channel that spans several matters: bind per-thread, and re-confirm when the thread changes matter. When in doubt, ask for the case link.

A first search/execute triggers the OAuth sign-in (the admin who connected the connector); see the main relex skill. If a call comes back 401/403, the tagger lacks access to that case — say so; don't try another case.

5 · Deep links are safe to post

A case/parties deep link carries no PII — it's just a caseId. Posting it in a busy channel is fine: every reader who clicks authenticates as themselves, sees only what their own access allows, and any real identity is decrypted locally behind their password. So the roster stays label-only in the channel, and reveal is always per-person, in the browser.

6 · Ambient & deadlines

For standing "who owes what by when" work, stay in labels and lean on relex-matter (deadlines, timeline, comms log). Post reminders as "[PARTY_NAME_2] must respond by 14 May" — never with a name. Never do an ambient reveal, and never make a structural change (attach/detach a party, edit the case) without the user asking.

Anti-patterns

  • Confirming or denying that a [PARTY_NAME_n] label is a specific real person.
  • Echoing a client name back into chat or into an execute body.
  • Guessing a caseId instead of binding to the case link in the channel.
  • Joining the two name-spaces into an identity map ("Party 1 = …"). Compose by role and relationship; never by identity.
  • Treating a server PII refusal as a failure to retry — it's the reveal path.

Alongside

  • relex — connect, the two tools, the one PII rule.
  • relex-ontology — the full case graph and the collaboration loop.
  • relex-matter — deadlines, timeline, conflicts, comms, closing.

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 326,764. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.