@probo/skills 0.3.1 → 0.4.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "probo",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Open-source compliance workflows powered by Probo MCP (Claude Code, Codex, OpenCode)",
5
5
  "author": {
6
6
  "name": "Probo Inc",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "probo",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Open-source compliance workflows powered by Probo MCP (Codex, OpenCode, Claude Code)",
5
5
  "author": {
6
6
  "name": "Probo Inc",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@probo/skills",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "Multi-agent compliance skills for open-source GRC (Claude Code, Codex, OpenCode) powered by Probo MCP",
5
5
  "private": false,
6
6
  "scripts": {
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "license": "MIT",
40
40
  "devDependencies": {
41
- "js-yaml": "^4.3.1"
41
+ "js-yaml": "^5.4.1"
42
42
  },
43
43
  "repository": {
44
44
  "type": "git",
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "probo",
4
- "version": "0.3.1",
4
+ "version": "0.4.0",
5
5
  "description": "Open-source compliance workflows powered by the Probo MCP API",
6
6
  "author": {
7
7
  "name": "Probo Inc",
@@ -11,7 +11,7 @@ for non-`APPROVED` decisions.
11
11
  | --- | --- | --- |
12
12
  | `TERMINATED_USER` flag | `REVOKE` | Terminated user — access no longer required |
13
13
  | `CONTRACTOR_EXPIRED` flag | `REVOKE` | Contractor engagement ended |
14
- | `active === false` and no `NEW` tag | `REVOKE` | Account inactive at source |
14
+ | `active === false` | `REVOKE` | Account inactive at the source |
15
15
  | `ORPHANED` flag and `active === false` | `REVOKE` | Orphaned inactive account |
16
16
  | `ORPHANED` flag only, `active !== false` | `ESCALATE` | Orphaned account still active — needs owner |
17
17
  | `SHARED_ACCOUNT` flag | `ESCALATE` | Shared account — assign individual owner |
@@ -19,7 +19,7 @@ for non-`APPROVED` decisions.
19
19
  | `PRIVILEGED_ACCESS` or `ROLE_CREEP` flag | `ESCALATE` | Privileged access requires explicit approval |
20
20
  | `is_admin === true` and (`DORMANT` flag or last_login very stale) | `ESCALATE` | Admin access dormant — confirm business need |
21
21
  | `account_type === SERVICE_ACCOUNT`, active, no danger flags | `APPROVED` | Service account with expected access |
22
- | Active user, no flags (or only `NONE`), not admin, `incremental_tag !== NEW` | `APPROVED` | Routine access reaffirmed |
22
+ | Active user, no flags (or only `NONE`), not admin | `APPROVED` | Routine access reaffirmed |
23
23
 
24
24
  "Very stale" last_login: no login in 90+ days when `last_login` is present.
25
25
 
@@ -27,7 +27,6 @@ for non-`APPROVED` decisions.
27
27
 
28
28
  | Condition | Suggested default | Why ambiguous |
29
29
  | --- | --- | --- |
30
- | `incremental_tag === NEW` | `ESCALATE` | New access since last campaign |
31
30
  | `NO_BUSINESS_JUSTIFICATION` flag | `ESCALATE` or `REVOKE` | Needs human judgment |
32
31
  | `OUT_OF_DEPARTMENT` flag | `ESCALATE` | Role/department mismatch |
33
32
  | `EXCESSIVE` or `ROLE_MISMATCH` flag | `ESCALATE` | Role change needs context |
@@ -22,6 +22,10 @@ required input, so it serves two distinct purposes:
22
22
  Either way the organization must be resolved before `listAccessReviewCampaigns`,
23
23
  which requires `organization_id`.
24
24
 
25
+ Each organization includes `name` (operating name) and `legal_name` (registered
26
+ legal name, null when unset). Match the organization the user named against
27
+ `name`. Use `legal_name` when a note or report must name the legal entity.
28
+
25
29
  ## Read
26
30
 
27
31
  ### `listAccessReviewCampaigns`
@@ -40,7 +44,6 @@ List entries for a campaign. Primary data source for this command.
40
44
  | `campaign_id` | Campaign GID |
41
45
  | `filter.decision` | Use `PENDING` for review batches |
42
46
  | `filter.flag` | Optional — focus on a flag (e.g. `TERMINATED_USER`) |
43
- | `filter.incremental_tag` | Optional — `NEW`, `REMOVED`, `UNCHANGED` |
44
47
  | `filter.is_admin` | Optional boolean |
45
48
  | `filter.active` | Optional boolean |
46
49
  | `size` | Page size; use `50` per batch |
@@ -54,8 +57,8 @@ infer the tool from account IDs, roles, email patterns, or other entry data.
54
57
 
55
58
  Required: `campaign_id`
56
59
 
57
- Returns `statistics` with `total_count`, `decision_counts`, `flag_counts`,
58
- `incremental_tag_counts`. Call at the start of each run and after large batches.
60
+ Returns `statistics` with `total_count`, `decision_counts`, `flag_counts`.
61
+ Call at the start of each run and after large batches.
59
62
 
60
63
  ## Write (semi-auto command)
61
64
 
@@ -102,7 +105,6 @@ Do not call unless the user explicitly asks for campaign setup:
102
105
  | `auth_method` | `SSO`, `PASSWORD`, `API_KEY`, `OAUTH2`, `SSH`, `SERVICE_ACCOUNT` context |
103
106
  | `account_type` | `SERVICE_ACCOUNT` vs `USER` |
104
107
  | `last_login` | Dormancy signal |
105
- | `incremental_tag` | `NEW` needs extra scrutiny |
106
108
  | `flags`, `flag_reasons` | Primary risk signals |
107
109
  | `decision` | Target `PENDING` entries only |
108
110
 
@@ -50,7 +50,9 @@ Commitments must trace to controls the company genuinely has. The source of trut
50
50
  1. **Find the Probo MCP and the organization.** This environment may expose more than one Probo MCP
51
51
  server (the plugin ships hosted `probo-us` and `probo-eu`, and self-hosted instances add their own).
52
52
  Call `listOrganizations` on each until you find the one that returns the target company, and use that
53
- server for every later call. Match the organization the user named and capture its `id`.
53
+ server for every later call. Match the organization the user named on `name` (the operating name) and
54
+ capture its `id`. `legal_name` is the registered legal name when set. The public group title still uses
55
+ the operating name. Use `legal_name` only when a commitment must name the legal entity.
54
56
  2. **List the published policies.** Call `listDocuments` with `document_types: ["POLICY"]`. Policies with
55
57
  a `current_published_major` are published.
56
58
  3. **Read the actual content.** `getDocument` returns metadata only. To get the text, call
@@ -8,7 +8,9 @@ server configured in the agent). Read each tool schema before calling.
8
8
  ### `listOrganizations`
9
9
 
10
10
  List organizations the caller can access. Use to resolve `$ARGUMENTS` when the
11
- user provides a name instead of a GID.
11
+ user provides a name instead of a GID. Match on `name` (operating name).
12
+ `legal_name` is the registered legal name when set; use it in the report title
13
+ when the document should name the legal entity, and `name` otherwise.
12
14
 
13
15
  ### `listUsers`
14
16
 
@@ -17,7 +17,10 @@ first.
17
17
  `claude mcp login probo-us` to complete the OAuth 2.0 sign-in.
18
18
  2. Identify the target organization. List organizations if the user did not
19
19
  provide one, and when several servers are connected use the one that returns
20
- the target organization.
20
+ the target organization. `listOrganizations` returns `name` (the operating
21
+ name) and `legal_name` (the registered legal name, null when unset). Match
22
+ the organization on `name`. When a policy, contract, or other legal document
23
+ must name the company, use `legal_name` when it is set and `name` otherwise.
21
24
  3. Prefer MCP tools over manual API calls. The Probo MCP API mirrors the
22
25
  platform's GraphQL surface.
23
26