@probo/skills 0.4.0 → 0.5.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.
@@ -6,7 +6,7 @@
6
6
  "plugins": [
7
7
  {
8
8
  "name": "probo",
9
- "description": "Open-source compliance workflows powered by Probo MCP",
9
+ "description": "Open-source compliance workflows for the Probo MCP API, plus the using-prb CLI skill",
10
10
  "source": {
11
11
  "source": "local",
12
12
  "path": "./"
@@ -8,7 +8,7 @@
8
8
  "plugins": [
9
9
  {
10
10
  "name": "probo",
11
- "description": "Open-source compliance workflows powered by Probo MCP",
11
+ "description": "Open-source compliance workflows for the Probo MCP API, plus the using-prb CLI skill",
12
12
  "source": {
13
13
  "source": "npm",
14
14
  "package": "@probo/skills"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "probo",
3
- "version": "0.4.0",
4
- "description": "Open-source compliance workflows powered by Probo MCP (Claude Code, Codex, OpenCode)",
3
+ "version": "0.5.0",
4
+ "description": "Open-source compliance workflows and the using-prb CLI skill (Claude Code, Codex, OpenCode)",
5
5
  "author": {
6
6
  "name": "Probo Inc",
7
7
  "email": "hello@probo.com"
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "probo",
3
- "version": "0.4.0",
4
- "description": "Open-source compliance workflows powered by Probo MCP (Codex, OpenCode, Claude Code)",
3
+ "version": "0.5.0",
4
+ "description": "Open-source compliance workflows and the using-prb CLI skill (Codex, OpenCode, Claude Code)",
5
5
  "author": {
6
6
  "name": "Probo Inc",
7
7
  "email": "hello@probo.com"
package/COMPATIBILITY.md CHANGED
@@ -40,6 +40,16 @@ Both documents declare
40
40
  `https://agent-plugins.org/schemas/1.0.0/{plugin,mcp}.schema.json`, and the
41
41
  spec requires the two versions to match.
42
42
 
43
+ `using-prb` is a skill in that same `skills/` directory. It describes the
44
+ `prb` CLI and does not use the MCP servers. Install it from the repository
45
+ pinned to the `@probo/skills` tag matching the installed CLI (see
46
+ `CHANGELOG.md` for the version):
47
+
48
+ ```bash
49
+ gh skill install getprobo/probo using-prb --pin @probo/skills/vX.Y.Z
50
+ npx skills add "getprobo/probo#@probo/skills/vX.Y.Z" --skill using-prb
51
+ ```
52
+
43
53
  Commands, marketplace catalogs, and the client manifests are outside the v1
44
54
  format — Agent Plugins v1 standardizes only skills and MCP servers. Clients
45
55
  ignore the extra files.
package/README.md CHANGED
@@ -1,10 +1,10 @@
1
1
  # @probo/skills
2
2
 
3
- Multi-agent compliance skills for open-source GRC workflows. Ships an
3
+ Multi-agent skills for open-source GRC workflows and the `prb` CLI. Ships an
4
4
  [Agent Plugins 1.0.0](https://agent-plugins.org/) package: Agent
5
5
  Skills–compatible instructions plus portable MCP wiring to the [Probo MCP
6
6
  API](https://github.com/getprobo/probo/tree/main/pkg/server/api/mcp/v1) over
7
- OAuth 2.0.
7
+ OAuth 2.0. `using-prb` is the CLI skill and does not use MCP.
8
8
 
9
9
  **Supported agents:** any Agent Plugins client, plus Claude Code, Codex,
10
10
  OpenCode, and Cursor through their own plugin or MCP configuration.
@@ -70,16 +70,28 @@ claude plugin install probo@probo
70
70
  claude --plugin-dir ./packages/skills
71
71
  ```
72
72
 
73
+ ### prb CLI
74
+
75
+ `using-prb` lives in `skills/` next to the MCP workflows. It covers sign-in,
76
+ organization choice, and record changes. Install it from the repository
77
+ pinned to the `@probo/skills` tag that matches the installed `prb` (see
78
+ `CHANGELOG.md` for the version). The binary does not embed a copy.
79
+
80
+ ```bash
81
+ gh skill install getprobo/probo using-prb --pin @probo/skills/vX.Y.Z
82
+ npx skills add "getprobo/probo#@probo/skills/vX.Y.Z" --skill using-prb
83
+ ```
84
+
73
85
  ## What's included
74
86
 
75
87
  | Component | Location | Purpose |
76
88
  | --- | --- | --- |
77
89
  | Manifest | `plugin.json` | Agent Plugins 1.0.0 plugin identity |
78
90
  | MCP | `mcp.json` | Portable hosted Probo servers |
79
- | Skills | `skills/` | Compliance workflows |
91
+ | Skills | `skills/` | MCP compliance workflows, plus `using-prb` for the CLI |
80
92
  | Commands | `commands/` | `access-review`, `missing-signatures` — semi-auto workflows (Claude Code) |
81
93
 
82
- Skills: `/probo:<skill-name>` (e.g. `/probo:open-source-compliance`, `/probo:missing-signatures`).
94
+ MCP skills: `/probo:<skill-name>` (e.g. `/probo:open-source-compliance`, `/probo:missing-signatures`).
83
95
 
84
96
  Commands: `/probo:<command-name>` (e.g. `/probo:access-review`, `/probo:missing-signatures`).
85
97
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@probo/skills",
3
- "version": "0.4.0",
4
- "description": "Multi-agent compliance skills for open-source GRC (Claude Code, Codex, OpenCode) powered by Probo MCP",
3
+ "version": "0.5.0",
4
+ "description": "Multi-agent skills for open-source GRC and the prb CLI (Claude Code, Codex, OpenCode, Cursor)",
5
5
  "private": false,
6
6
  "scripts": {
7
7
  "validate": "node scripts/validate.mjs",
@@ -38,7 +38,7 @@
38
38
  ],
39
39
  "license": "MIT",
40
40
  "devDependencies": {
41
- "js-yaml": "^5.4.1"
41
+ "js-yaml": "^5.5.0"
42
42
  },
43
43
  "repository": {
44
44
  "type": "git",
package/plugin.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "probo",
4
- "version": "0.4.0",
5
- "description": "Open-source compliance workflows powered by the Probo MCP API",
4
+ "version": "0.5.0",
5
+ "description": "Open-source compliance workflows for the Probo MCP API, plus the using-prb CLI skill",
6
6
  "author": {
7
7
  "name": "Probo Inc",
8
8
  "email": "hello@probo.com",
@@ -35,7 +35,7 @@ first.
35
35
 
36
36
  ### Control and obligation tracking
37
37
 
38
- 1. List controls, measures, or obligations relevant to the user's question.
38
+ 1. List controls, internal controls, or obligations relevant to the user's question.
39
39
  2. Link evidence (documents, audits) where appropriate.
40
40
  3. Report gaps between required and implemented controls.
41
41
 
@@ -0,0 +1,126 @@
1
+ ---
2
+ name: using-prb
3
+ description: Call the prb CLI without inventing flags. Use when an agent runs prb, signs in, chooses an organization, or creates, lists, views, updates, or deletes Probo records such as frameworks, controls, risks, documents, tasks, assets, data, vendors, audits, findings, obligations, processing activities, rights requests, business functions, AI systems, or webhooks.
4
+ compatibility: Requires the prb binary on PATH. Setting PROBO_HOST and PROBO_TOKEN lets every command skip login entirely. Otherwise `prb auth login` runs the device flow; it opens a browser when the session is interactive, and prints a URL and code to approve manually when it is not.
5
+ ---
6
+
7
+ # Use prb
8
+
9
+ `prb` is the Probo CLI. Prefer it over hand-written GraphQL. Command help is
10
+ the source of truth for flags. This skill is the source of truth for how to
11
+ call the CLI.
12
+
13
+ Before the first call to a command in this session, read its help:
14
+
15
+ ```sh
16
+ prb <command> --help
17
+ prb <command> <verb> --help
18
+ ```
19
+
20
+ Pass only flags that appear there. Copy enum values from the help text.
21
+ Read `references/commands.md` in this skill for the command groups. Required
22
+ create flags are listed in `references/create.md`. Flag help wins when it
23
+ disagrees with a reference.
24
+
25
+ ## Call shape
26
+
27
+ 1. Export `PROBO_NO_INTERACTIVE=1` so prb does not prompt. In that mode every
28
+ required flag must be present.
29
+ 2. Results go to stdout. Errors go to stderr and the process exits non-zero.
30
+ Do not treat stderr warnings as failure when the exit code is 0.
31
+ 3. Request JSON with `--json`. `--output json` and `-o json` are the same
32
+ choice. Combining `--json` with any other `--output` value fails.
33
+ `--json` is registered on list and view commands; a few create and
34
+ update commands have it too. Check `--help` to confirm it exists before
35
+ relying on it elsewhere.
36
+ 4. `list` is also `ls`.
37
+ 5. Command and flag names are kebab-case. The vendor command is
38
+ `prb third-party`. `tp` is its short alias.
39
+ 6. View, update, and delete take the resource id printed by create. That id
40
+ is the first token that parses as a Probo id.
41
+ 7. Update with only the id fails with `at least one field must be specified`.
42
+ Pass the fields that change.
43
+ 8. Delete in non-interactive mode requires `--yes`. Without it, prb exits
44
+ non-zero and deletes nothing.
45
+ 9. `--limit` / `-L` is the maximum number of rows to return; a list with
46
+ fewer matches returns fewer rows. It must be greater than 0.
47
+ stderr prints `Showing N of M` when more rows exist, and
48
+ `Next cursor: <cursor>` when another page exists. Repeat the same
49
+ command and filters with `--after <cursor>`. Do not treat one page as
50
+ the full set. On commands that expose it, `--order-direction` accepts
51
+ `ASC` or `DESC`.
52
+
53
+ ## Sign in
54
+
55
+ Settle the host and the organization before any other `prb` command.
56
+
57
+ 1. Run `prb auth status`.
58
+ 2. An active host prints `(active)` and `Token: set` or `Token: not set`.
59
+ The command never prints the token. Do not ask the user to paste a token
60
+ into the chat when status already says `Token: set`.
61
+ 3. `PROBO_HOST` selects the host for this process. `PROBO_TOKEN` supplies the
62
+ bearer token. A token without a host is an error.
63
+ 4. Hosts without a scheme are HTTPS. A local server needs an explicit
64
+ `http://` URL, for example `http://localhost:8080`.
65
+ 5. When status shows no active host, or an active host with `Token: not
66
+ set`, run `prb auth login`. Pass `--hostname` when the user names a
67
+ region or a self-hosted instance (`eu.probo.com`, `us.probo.com`, or the
68
+ instance host). Pass `--org` when the user already knows the default
69
+ organization id.
70
+
71
+ Then choose the organization:
72
+
73
+ 1. Run `prb org list --json`.
74
+ 2. Use the organization the user named, or the only organization in the list.
75
+ 3. When several organizations match, print the id and name of each and ask
76
+ which one to use.
77
+ 4. Pass that id as `--org` on later commands. `--organization` is the same
78
+ flag. Pass it once to `prb auth login --org` so it becomes the saved
79
+ default.
80
+ 5. A missing organization fails with `organization is required; pass --org or
81
+ --organization, or set a default with 'prb auth login'`.
82
+
83
+ ## Organization
84
+
85
+ Commands that select an organization take `--org`. `--organization` sets the
86
+ same value. Lists of a child record take the parent id instead: `control`
87
+ takes `--framework`, `evidence` takes `--internal-control`, consent records
88
+ and cookie categories take the banner, and access-review entries take the
89
+ campaign.
90
+
91
+ `connector connect --organization` is a boolean. The Probo organization id
92
+ on that command is `--org`.
93
+
94
+ ## Change a record
95
+
96
+ 1. Pass the organization as `--org` or `--organization`. Controls are the
97
+ exception: pass `--framework` and omit both.
98
+ 2. Create with every required flag from `references/create.md`. The new id
99
+ is on stdout.
100
+ 3. `prb <command> view <id> --json` and confirm the field you wrote.
101
+ 4. Update with `prb <command> update <id>` plus at least one changed flag.
102
+ 5. Delete with `prb <command> delete <id> --yes` only after the user asked to
103
+ delete that record.
104
+
105
+ Ids used as inputs:
106
+
107
+ - `--owner` is a profile id from `prb user list --org <org> --json`.
108
+ - `--framework` on audits and controls is a framework id from
109
+ `prb framework create` or `prb framework list --json`.
110
+ - `--third-party-ids` takes vendor ids. The kebab-case flag is the one to
111
+ pass.
112
+
113
+ Document title, type, and classification are fields of the document.
114
+ `prb document view <id> --json` includes `title`.
115
+
116
+ `prb webhook list` requires `--org`. Create takes `--url` and one or more
117
+ `--event` flags. `--help` only shows example event names, not the full set.
118
+ An invalid `--event` value returns an error listing every valid name; use
119
+ that to confirm a name before retrying.
120
+
121
+ ## After writing
122
+
123
+ Confirm the change with `prb <command> view <id> --json` or
124
+ `prb <command> list --org <id> --json`. A deleted id is absent from the list.
125
+ Controls are the exception from "Change a record": verify with
126
+ `prb control list --framework <framework-id> --json`, not `--org`.
@@ -0,0 +1,48 @@
1
+ # prb command groups
2
+
3
+ Run `prb <command> --help` before using a group. This list is the group name
4
+ only.
5
+
6
+ | Group | What it manages |
7
+ | --- | --- |
8
+ | `auth` | Login, logout, and status |
9
+ | `org` | Organizations the caller can access |
10
+ | `user` | People in an organization |
11
+ | `config` | prb's local configuration file |
12
+ | `context` | The organization context saved by `prb auth login` |
13
+ | `framework` | Frameworks |
14
+ | `control` | Controls inside a framework |
15
+ | `internal-control` | Internal controls |
16
+ | `soa` | Statement of applicability |
17
+ | `risk` | Risks |
18
+ | `risk-analysis` | Risk analysis diagrams |
19
+ | `treatment-plan` | Treatment plans |
20
+ | `task` | Tasks |
21
+ | `document` | Documents |
22
+ | `evidence` | Evidence |
23
+ | `audit` | Audits |
24
+ | `finding` | Findings |
25
+ | `asset` | Assets |
26
+ | `datum` | Data |
27
+ | `third-party` | Vendors |
28
+ | `processing-activity` | Processing activities |
29
+ | `obligation` | Obligations |
30
+ | `rights-request` | Data-subject requests |
31
+ | `dpia` | Data protection impact assessments |
32
+ | `tia` | Transfer impact assessments |
33
+ | `business-function` | Business functions |
34
+ | `ai-system` | AI systems |
35
+ | `cookie-banner` | Cookie consent banners |
36
+ | `cookie-category` | Cookie categories on a banner |
37
+ | `consent-record` | Cookie consent records |
38
+ | `tracker-pattern` | Tracker detection patterns |
39
+ | `tracker-resource` | Detected tracker scripts and resources |
40
+ | `resource-alias` | Aliases on compliance portal entries |
41
+ | `webhook` | Webhook subscriptions |
42
+ | `audit-log` | Audit log |
43
+ | `connector` | External connectors |
44
+ | `scim` | SCIM |
45
+ | `device` | Devices |
46
+ | `compliance-portal` | Compliance portal |
47
+ | `employee-portal` | Employee portal |
48
+ | `access-review` | Access reviews |
@@ -0,0 +1,32 @@
1
+ # Required create flags
2
+
3
+ An organization is required on every command in this table except
4
+ `control`. Pass `--org` or `--organization` (the same flag), or rely on the
5
+ default saved by `prb auth login --org`.
6
+ `prb <command> create --help` is authoritative when a row is stale.
7
+
8
+ | Command | Required flags besides `--org` |
9
+ | --- | --- |
10
+ | `framework create` | `--name` |
11
+ | `control create` | `--framework`, `--section-title`, `--name`, `--description` |
12
+ | `task create` | `--name`, `--priority` |
13
+ | `document create` | `--title`, `--document-type`, `--classification` |
14
+ | `asset create` | `--name`, `--asset-type`, `--amount`, `--owner`, `--data-types-stored` |
15
+ | `datum create` | `--name`, `--data-classification`, `--owner` |
16
+ | `risk create` | `--name`, `--category` |
17
+ | `processing-activity create` | `--name`, `--role`, `--lawful-basis`, `--special-or-criminal-data`, `--data-protection-impact-assessment`, `--transfer-impact-assessment` |
18
+ | `obligation create` | `--area`, `--source`, `--status`, `--type`, `--owner` |
19
+ | `rights-request create` | `--data-subject`, `--type`, `--state` |
20
+ | `internal-control create` | `--name`, `--category` |
21
+ | `business-function create` | `--name`, `--classification`, `--mtd-minutes`, `--rto-minutes`, `--rpo-minutes` |
22
+ | `ai-system create` | `--name`, `--status`, `--risk-classification` |
23
+ | `audit create` | `--name`, `--framework` (repeat `--framework` for another framework) |
24
+ | `finding create` | `--kind`, `--status`, `--priority` |
25
+ | `third-party create` | `--name`, `--category` |
26
+ | `webhook create` | `--url`, `--event` (repeat `--event` for another event) |
27
+
28
+ `control list` takes `--framework` and does not take `--org`. Other lists take
29
+ `--org`.
30
+
31
+ `--amount` is an integer of at least 1. Business-function minute flags are
32
+ integers. `--international-transfers` defaults to false and can be omitted.