@postman/postman-plugin 0.3.0 → 0.4.1-rc.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.
- package/README.md +46 -9
- package/dist/hosts/antigravity.js +47 -0
- package/dist/hosts/codex-hooks.js +68 -0
- package/dist/hosts/codex.js +87 -8
- package/dist/hosts/copilot.js +60 -0
- package/dist/hosts/index.js +3 -1
- package/dist/json-rpc.js +113 -0
- package/dist/system.js +40 -3
- package/mcp.pi.json +2 -2
- package/package.json +1 -1
- package/skills/ai-readiness/SKILL.md +40 -44
- package/skills/api-discovery/SKILL.md +64 -145
- package/skills/api-discovery/reference/orbit.md +17 -5
- package/skills/api-documentation/SKILL.md +41 -46
- package/skills/api-engineer/SKILL.md +78 -23
- package/skills/api-mocking/SKILL.md +117 -163
- package/skills/api-monitoring/SKILL.md +52 -129
- package/skills/api-simulation/SKILL.md +130 -178
- package/skills/api-simulation/reference/sim_yaml_schema.md +41 -103
- package/skills/api-testing/SKILL.md +48 -95
- package/skills/bootstrap/SKILL.md +123 -224
- package/skills/ci-integration/SKILL.md +53 -113
- package/skills/collection-schema-v3/SKILL.md +43 -204
- package/skills/collection-schema-v3/reference/http.md +150 -0
- package/skills/datasets/SKILL.md +89 -315
- package/skills/datasets/reference/spreadsheets.md +25 -0
- package/skills/flows/SKILL.md +57 -206
- package/skills/flows/reference/flow_cli_flags.md +3 -2
- package/skills/performance-testing/SKILL.md +46 -62
- package/skills/performance-testing/references/jmeter-import/README.md +82 -0
- package/skills/performance-testing/references/jmeter-import/import-report.md +52 -0
- package/skills/performance-testing/references/jmeter-import/mapping-table.md +95 -0
- package/skills/performance-testing/references/jmeter-import/postman-perf-capabilities.md +56 -0
- package/skills/performance-testing/references/jmeter-import/script-translation.md +97 -0
- package/skills/postman-mcp-server/SKILL.md +53 -59
- package/skills/postman-mcp-server/references/docs.md +0 -1
- package/skills/postman-mcp-server/references/learn.md +10 -9
- package/skills/postman-mcp-server/references/mock.md +0 -1
- package/skills/postman-mcp-server/references/search.md +0 -1
- package/skills/postman-mcp-server/references/security.md +0 -1
- package/skills/postman-mcp-server/references/setup.md +0 -1
- package/skills/postman-mcp-server/references/sync.md +0 -1
- package/skills/postman-mcp-server/references/test.md +0 -1
- package/skills/variables/SKILL.md +44 -87
- package/skills/webhook-testing/SKILL.md +103 -0
- package/skills/webhook-testing/reference/forwarding.md +10 -0
- package/skills/webhook-testing/reference/outbound_webhooks.md +25 -0
- package/skills/webhook-testing/reference/webhook_scripts.md +163 -0
|
@@ -1,50 +1,46 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ai-readiness
|
|
3
|
-
description:
|
|
3
|
+
description: Use when assessing or improving how well AI agents can discover, call, and recover from errors with an API. Scores an existing Postman collection or OpenAPI spec and turns measured gaps into contract improvements; supports a separate CI readiness threshold. Use for requests such as "is this API ready for agents".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# AI Readiness
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
- `collection-schema-v3` skill — what saved examples and descriptions look
|
|
48
|
-
like in the git-synced format this command reads.
|
|
49
|
-
- `ci-integration` skill — where `--min-score` fits as a pipeline gate
|
|
50
|
-
alongside `spec lint`/`collection lint`/`workspace lint`.
|
|
8
|
+
An agent must choose an operation, supply valid inputs, and interpret failures
|
|
9
|
+
from the contract it can see. Postman's readiness check exposes gaps in that
|
|
10
|
+
context—such as missing examples or ambiguous parameters—so improvements live
|
|
11
|
+
in the shared contract instead of being rediscovered in each agent session.
|
|
12
|
+
|
|
13
|
+
Skip scoring for a typo fix, a one-off endpoint check, or a task that changes
|
|
14
|
+
neither the contract nor agent usability; inspect the relevant fields or use
|
|
15
|
+
**api-testing** instead. Score when prioritizing consumability improvements,
|
|
16
|
+
checking their effect, or enforcing an agreed readiness gate.
|
|
17
|
+
|
|
18
|
+
1. Score the artifact consumers actually use. `postman collection ai-readiness
|
|
19
|
+
<path-or-id>` reads a collection, including a local v3 directory;
|
|
20
|
+
`postman spec ai-readiness <path-or-id>` reads an OpenAPI spec directly.
|
|
21
|
+
Generating a collection solely to score a spec adds a second artifact
|
|
22
|
+
without improving the evidence. Use the installed command's `-h` for options.
|
|
23
|
+
2. Use the reported `readiness` score and bucket (Limited, Fair, Good,
|
|
24
|
+
Excellent). Keep `confidence` separate: low confidence means signals could
|
|
25
|
+
not be measured, so even a high score may leave consequential unknowns.
|
|
26
|
+
Report low documentation coverage when flagged; it modifies the score
|
|
27
|
+
rather than acting as an independent pass/fail gate.
|
|
28
|
+
3. Prioritize gaps that would change a caller's behavior: unclear required
|
|
29
|
+
inputs, missing auth instructions, or errors with no recovery guidance.
|
|
30
|
+
Establish the actual behavior before adding descriptions or examples;
|
|
31
|
+
invented certainty can raise apparent completeness while misleading agents.
|
|
32
|
+
See **api-documentation** for improving the authoritative contract and
|
|
33
|
+
**collection-schema-v3** for saved examples.
|
|
34
|
+
4. Re-run against the edited artifact to show which measured gaps closed.
|
|
35
|
+
A readiness score measures consumability, not live correctness; use
|
|
36
|
+
**api-testing** when the claim also depends on API behavior.
|
|
37
|
+
5. A `--min-score` gate is useful when the team wants to prevent readiness
|
|
38
|
+
regressions. Choose the threshold from its baseline and expectations;
|
|
39
|
+
keep it separate from tests and lint through **ci-integration** so a failure
|
|
40
|
+
identifies the kind of regression.
|
|
41
|
+
|
|
42
|
+
## Verification
|
|
43
|
+
|
|
44
|
+
Report the target, collection/spec mode, actual score, bucket, confidence,
|
|
45
|
+
and remaining gaps. If a threshold ran, include its exit code; a successful
|
|
46
|
+
scan alone does not establish that the threshold passed.
|
|
@@ -1,151 +1,70 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api-discovery
|
|
3
|
-
description:
|
|
3
|
+
description: Use when finding an API or owner, integrating a public provider, locating Postman resources, or investigating consumers and change impact across services. Turns discovered contracts and mocks into reusable dependencies and identifies evidence outside the current checkout. Use for requests such as "who consumes this endpoint".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# API Discovery
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
`
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
`--ownership` and `--filter`, and add `-o json` for the enriched payload. An
|
|
72
|
-
empty default-scope result is not proof nothing exists — retry with
|
|
73
|
-
`--ownership all` before reporting that.
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
postman search requests "where do we validate a user's email?"
|
|
77
|
-
postman search collections "payments" --ownership external --filter "visibility=public"
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Use `postman search <type> -h` for more details — ownership modes, the
|
|
81
|
-
`--filter` / `--filter-json` syntax, filter fields per type, and the exact
|
|
82
|
-
installed-version flags.
|
|
83
|
-
|
|
84
|
-
## `context-graph`
|
|
85
|
-
|
|
86
|
-
The Context Graph is a private, authenticated map of an API ecosystem. It
|
|
87
|
-
reconciles Postman specifications, collections, monitors, and mocks; GitHub
|
|
88
|
-
repositories, definitions, and call sites; and New Relic deployments, traffic,
|
|
89
|
-
and telemetry. These become typed entities joined by sourced relationships such
|
|
90
|
-
as `calls`, `depends_on`, `owned_by`, and `monitored_by`.
|
|
91
|
-
|
|
92
|
-
Use it before a cross-service or potentially breaking change. Name the endpoint,
|
|
93
|
-
schema, service, database, deployment, or shared module being changed; the graph
|
|
94
|
-
discovers the surrounding scope, including runtime callers and repositories not
|
|
95
|
-
checked out locally:
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
postman context-graph ask "What depends on billing-api?" --wait
|
|
99
|
-
postman context-graph ask "What is the likely blast radius of changing this schema?" --wait
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Treat the result as a lead, not proof. For consequential work, verify candidates
|
|
103
|
-
against source, API definitions, deployment configuration, or telemetry and
|
|
104
|
-
cite that evidence. Sources are connected through Postman's Agent Context UI
|
|
105
|
-
and refresh nightly; an unconnected or not-yet-ingested source makes absence
|
|
106
|
-
inconclusive.
|
|
107
|
-
|
|
108
|
-
`--wait` polls the asynchronous API and prints the answer. Without it, `ask`
|
|
109
|
-
returns an ID for `postman context-graph status <askId>`. Use `--json` for the
|
|
110
|
-
structured record; `--timeout`, `--interval`, and `--max-steps` control waiting
|
|
111
|
-
and reasoning.
|
|
112
|
-
|
|
113
|
-
The query runs against the team derived from the API key; there is no workspace
|
|
114
|
-
or team selector. Authentication uses `--api-key`, `POSTMAN_API_KEY`, or the
|
|
115
|
-
current `postman login` session, in that order.
|
|
116
|
-
|
|
117
|
-
## After discovery: reusing what was found
|
|
118
|
-
|
|
119
|
-
Finding another service's workspace does not make it the workspace for the
|
|
120
|
-
current repository. `workspace pull` is for working on the service that owns
|
|
121
|
-
that workspace, from that service's repository. If the service is only a
|
|
122
|
-
dependency, or the user only wants to inspect one of its resources, keep the
|
|
123
|
-
current repository connected to its own workspace and use the dependency
|
|
124
|
-
feature instead.
|
|
125
|
-
|
|
126
|
-
Use `postman dependency add <type> <name-or-id>` to declare and download the
|
|
127
|
-
selected resource rather than copying it by hand or pulling the other
|
|
128
|
-
service's entire workspace. Supported types are `collection`, `environment`,
|
|
129
|
-
and `mock`. Pass the entity ID returned by `search`, or use the entity name;
|
|
130
|
-
when resolving a name in a specific workspace, add `--workspace
|
|
131
|
-
<workspace-id>`. If the Context Graph identifies only a service or API, locate
|
|
132
|
-
the concrete entity with `search` first.
|
|
133
|
-
|
|
134
|
-
Dependencies are recorded in `.postman/resources.yaml` and downloaded under
|
|
135
|
-
`postman/.dependencies/`, so the copy works locally straight away. Use
|
|
136
|
-
`postman dependency list` to inspect declarations, `postman dependency
|
|
137
|
-
install` to download declared dependencies after a clone or in CI, `postman
|
|
138
|
-
dependency update` to refresh them from Postman, and `postman dependency
|
|
139
|
-
remove <name-or-id>` to delete a declaration and its downloaded files. The
|
|
140
|
-
`list`, `install`, `update`, and `remove` commands accept `--type <type>`;
|
|
141
|
-
`install` and `update` can also target one declared dependency by name.
|
|
142
|
-
|
|
143
|
-
## Reference
|
|
144
|
-
|
|
145
|
-
- [Orbit](reference/orbit.md) — public API discovery: the search/integrate
|
|
146
|
-
REST endpoints, request/response shape, `taskBrief` fields, and error
|
|
147
|
-
handling. (Docs at `https://www.buildwithorbit.ai`, REST at
|
|
148
|
-
`https://api.buildwithorbit.ai`.)
|
|
149
|
-
|
|
150
|
-
For `postman search`, run `postman search <type> -h` — the CLI's own help is
|
|
151
|
-
per-type, complete, and always matches your installed version.
|
|
8
|
+
Existing contracts and owners' mocks reduce the assumptions an integration
|
|
9
|
+
must invent. Relationship context broadens investigation beyond the checkout:
|
|
10
|
+
passing this service's own tests does not establish that its consumers can
|
|
11
|
+
still use a changed interface.
|
|
12
|
+
|
|
13
|
+
1. Choose the source by the question:
|
|
14
|
+
|
|
15
|
+
| Need | Use |
|
|
16
|
+
| --- | --- |
|
|
17
|
+
| Public provider endpoints and integration details | Orbit search, then integrate |
|
|
18
|
+
| A concrete Postman collection, request, spec, mock, or workspace | `postman search <type> <query>` |
|
|
19
|
+
| Consumers, ownership, dependencies, or likely change impact | `postman context-graph ask` |
|
|
20
|
+
|
|
21
|
+
These sources answer different questions. A miss in one does not establish
|
|
22
|
+
absence in the others; combine entity search and relationship context when
|
|
23
|
+
both the resource and its impact matter.
|
|
24
|
+
2. For public APIs, Orbit narrows discovery to task-relevant endpoints and
|
|
25
|
+
returns integration guidance instead of requiring a whole vendor spec in
|
|
26
|
+
context. Use it even when the provider is chosen: endpoint details and
|
|
27
|
+
capability limits still determine whether the integration fits the task.
|
|
28
|
+
`POST https://api.buildwithorbit.ai/v1/search` accepts a task in
|
|
29
|
+
`q`; pass the chosen results' `id` and `resourceType` unchanged to
|
|
30
|
+
`/v1/integrate`. Evaluate fit and limitations before choosing a provider,
|
|
31
|
+
then use the returned auth, base URL, steps, and gotchas to implement.
|
|
32
|
+
Read [Orbit's request schemas](reference/orbit.md) for the actual payloads
|
|
33
|
+
and error handling. Orbit access does not supply a provider's credentials.
|
|
34
|
+
3. For Postman resources, narrow by entity type, ownership, and workspace.
|
|
35
|
+
Read `postman search <type> -h` for supported filters. An empty result in
|
|
36
|
+
the default ownership scope is incomplete evidence; consider
|
|
37
|
+
`--ownership all` or a relevant narrower scope before declaring absence.
|
|
38
|
+
Inspect the selected resource's owner and content rather than trusting a
|
|
39
|
+
similar name.
|
|
40
|
+
4. For cross-service changes, ask the Context Graph a concrete question about
|
|
41
|
+
the endpoint, schema, or service. `--wait` waits for an answer; without it,
|
|
42
|
+
use the returned ID with `postman context-graph status <askId>`. The graph
|
|
43
|
+
can connect Postman definitions, repository call sites, and runtime
|
|
44
|
+
telemetry beyond the current checkout. Its coverage depends on connected
|
|
45
|
+
and ingested sources, so verify consequential leads against definitions,
|
|
46
|
+
source, or telemetry before treating them as facts. A newly added call may
|
|
47
|
+
not be present yet. The query uses the authenticated API key's team, not
|
|
48
|
+
the repository's workspace binding; changing that binding cannot fix a
|
|
49
|
+
query against the wrong organization's context.
|
|
50
|
+
5. Use **bootstrap**'s "Owning workspace versus dependency" distinction
|
|
51
|
+
before importing. For a dependency, `postman dependency add
|
|
52
|
+
<collection|environment|mock> <name-or-id>` declares and downloads the
|
|
53
|
+
selected resource without rebinding the repository. Prefer the discovered
|
|
54
|
+
ID; `--workspace <id>` disambiguates names. If the graph only identified a
|
|
55
|
+
service, search for its concrete resource first.
|
|
56
|
+
6. Dependency declarations live in `.postman/resources.yaml`, with downloads
|
|
57
|
+
in `postman/.dependencies/`. `dependency install` restores them after a
|
|
58
|
+
clone or in CI; `dependency update` refreshes them. Review refreshes when
|
|
59
|
+
they can change test expectations. Copy a dependency into owned files to
|
|
60
|
+
customize it, because updating dependencies overwrites downloaded edits.
|
|
61
|
+
Use `dependency list` and command-specific help for targeted operations.
|
|
62
|
+
|
|
63
|
+
Use **api-simulation** to exercise the real service against discovered mocks,
|
|
64
|
+
and **ci-integration** to keep the resulting contract checks repeatable in PRs.
|
|
65
|
+
|
|
66
|
+
## Verification
|
|
67
|
+
|
|
68
|
+
Report which source answered the question, the resource IDs or evidence it
|
|
69
|
+
returned, what was reused, and any coverage gaps. A list of candidates alone
|
|
70
|
+
is neither an integration nor proof of compatibility.
|
|
@@ -10,18 +10,21 @@ signup and no API key, and works entirely against publicly available APIs.
|
|
|
10
10
|
## Implementation
|
|
11
11
|
|
|
12
12
|
Two REST calls, both `POST`, both read-only (safe to retry). No auth header —
|
|
13
|
-
send `Content-Type: application/json` and a JSON body.
|
|
14
|
-
|
|
13
|
+
send `Content-Type: application/json` and a JSON body. Optionally identify your
|
|
14
|
+
client with `Orbit-Client-Name` (see below). Run search first, surface
|
|
15
|
+
candidates, then integrate the chosen ids.
|
|
15
16
|
|
|
16
17
|
```bash
|
|
17
18
|
# Step 1 — search
|
|
18
|
-
curl -sS https://api.buildwithorbit.ai/v1/search \
|
|
19
|
+
curl -sS 'https://api.buildwithorbit.ai/v1/search?limit=10' \
|
|
19
20
|
-H 'Content-Type: application/json' \
|
|
20
|
-
-
|
|
21
|
+
-H 'Orbit-Client-Name: claude/opus-4.8' \
|
|
22
|
+
-d '{ "q": "send email via SMTP" }'
|
|
21
23
|
|
|
22
24
|
# Step 2 — integrate (ids come from the search response, verbatim)
|
|
23
25
|
curl -sS https://api.buildwithorbit.ai/v1/integrate \
|
|
24
26
|
-H 'Content-Type: application/json' \
|
|
27
|
+
-H 'Orbit-Client-Name: claude/opus-4.8' \
|
|
25
28
|
-d '{
|
|
26
29
|
"task": "Send a welcome email when a user signs up",
|
|
27
30
|
"resources": [{ "id": "urn:orbit:endpoint:v1:...", "type": "endpoint" }]
|
|
@@ -37,12 +40,22 @@ Implementation notes:
|
|
|
37
40
|
than making one call per endpoint.
|
|
38
41
|
- Auth, request bodies, `Threading`, and `GOTCHAS` come from live public API
|
|
39
42
|
schemas, so take them from the brief rather than from memory.
|
|
43
|
+
- `Orbit-Client-Name` is an optional request header (both endpoints, max 128
|
|
44
|
+
chars) that names the calling client/agent for Orbit's anonymous usage
|
|
45
|
+
analytics. The convention is `client/model`, slash-separated —
|
|
46
|
+
e.g. `claude/opus-4.8`, `cursor/composer-2.5`, `codex/gpt-5.6-sol` — or a bare
|
|
47
|
+
client name like `vscode`. Set it to the host agent and model running this
|
|
48
|
+
plugin. It never affects results and can be omitted.
|
|
40
49
|
|
|
41
50
|
## Step 1 — Search (`POST /v1/search`)
|
|
42
51
|
|
|
43
52
|
Describe the task, not a provider name. Good: `"send an invoice to a customer"`.
|
|
44
53
|
Worse: `"PayPal"`. Provider name is fine to include when it is fixed.
|
|
45
54
|
|
|
55
|
+
Request body (JSON):
|
|
56
|
+
|
|
57
|
+
- `q` — the query; max 512 characters.
|
|
58
|
+
|
|
46
59
|
```json
|
|
47
60
|
{ "q": "send email via SMTP" }
|
|
48
61
|
```
|
|
@@ -51,7 +64,6 @@ Query params:
|
|
|
51
64
|
|
|
52
65
|
- `limit` — default 10, max 25.
|
|
53
66
|
- `cursor` — from `meta.nextCursor`; pagination stops at 40 results.
|
|
54
|
-
- `q` — max 512 characters.
|
|
55
67
|
|
|
56
68
|
Returns `data[]`. Each item has:
|
|
57
69
|
|
|
@@ -1,52 +1,47 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api-documentation
|
|
3
|
-
description:
|
|
3
|
+
description: Use when defining or improving an API contract, generating documentation from a collection or OpenAPI spec, publishing API docs, or sharing a documentation link. Makes auth, inputs, responses, and examples reusable by callers, tests, and mocks. Use for requests such as "publish API docs".
|
|
4
4
|
---
|
|
5
|
-
The bootstrap skill is a precursor to this one — it scaffolds the project with the directories documentation is stored in.
|
|
6
5
|
|
|
7
6
|
# API Documentation
|
|
8
|
-
When working on any API task, the first step is to establish and capture the contract.
|
|
9
|
-
API documentation can be done in two predominant ways:
|
|
10
|
-
1. through a Postman collection,
|
|
11
|
-
2. with an OpenAPI spec
|
|
12
7
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
8
|
+
A maintained contract gives callers enough information to integrate without
|
|
9
|
+
reading the implementation. Keeping descriptions and examples beside the API
|
|
10
|
+
artifacts lets the same knowledge support documentation, tests, and mocks,
|
|
11
|
+
with changes reviewable alongside code.
|
|
12
|
+
|
|
13
|
+
1. Start from the existing source of truth. An OpenAPI spec describes the
|
|
14
|
+
interface for tooling; a Postman collection adds runnable requests,
|
|
15
|
+
examples, and assertions. Maintain both when both uses matter, with an
|
|
16
|
+
explicit direction of generation or synchronization so they do not become
|
|
17
|
+
competing definitions. Local edits need **bootstrap** only when setup or
|
|
18
|
+
bindings are unresolved.
|
|
19
|
+
2. When the spec is authoritative, reuse its operations with
|
|
20
|
+
`postman spec generate collection <spec-path-or-id> -n "<collection-name>"`.
|
|
21
|
+
Inspect the generated result before replacing an existing collection:
|
|
22
|
+
maintained scripts and examples carry knowledge beyond endpoint shapes.
|
|
23
|
+
3. Describe what changes a caller's decision: required versus optional inputs,
|
|
24
|
+
auth and scopes, response guarantees, pagination, retryable failures, and
|
|
25
|
+
side effects. Derive guarantees from the agreed contract or verified
|
|
26
|
+
behavior; label unresolved design choices instead of inventing them.
|
|
27
|
+
Use [REST design guidance](reference/rest-api-best-practices.md) when a
|
|
28
|
+
design choice affects usability or compatibility, not to redesign an
|
|
29
|
+
unrelated interface while filling a documentation gap.
|
|
30
|
+
4. Save examples that clarify consequential cases, including relevant errors.
|
|
31
|
+
Examples become inputs for mocks as well as explanations for readers;
|
|
32
|
+
a success-only example can hide the failure path callers must handle.
|
|
33
|
+
Use **collection-schema-v3** for local collection edits and **variables**
|
|
34
|
+
to keep credentials out of reusable requests and examples.
|
|
35
|
+
5. Choose delivery by audience. Local artifacts support Git review;
|
|
36
|
+
publishing to the bound workspace makes them available to teammates with
|
|
37
|
+
access (see **bootstrap**). A workspace push does not itself publish a
|
|
38
|
+
public docs page or change permissions. For a public documentation link,
|
|
39
|
+
use **postman-mcp-server**'s documentation workflow and the available
|
|
40
|
+
publishing tool; establish the intended audience before public exposure.
|
|
41
|
+
|
|
42
|
+
## Verification
|
|
43
|
+
|
|
44
|
+
Check that the edited artifact parses and its examples agree with the
|
|
45
|
+
contract. For a publication, inspect the resulting page and report its actual
|
|
46
|
+
link and visibility; a successful upload alone does not show readers usable
|
|
47
|
+
documentation. State any behavior that remains undocumented or unverified.
|
|
@@ -1,29 +1,84 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: api-engineer
|
|
3
|
-
description:
|
|
3
|
+
description: Use when designing, implementing, mocking, testing, monitoring, documenting, or deploying an API. Guides decisions using reusable local API contracts, tests, and mocks, plus organization-wide dependency context, and routes to the relevant Postman skills. Use for requests such as "implement this endpoint".
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# API Engineer
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
8
|
+
Postman makes API knowledge reusable across implementation, tests, mocks, and
|
|
9
|
+
teammates. Local files let you inspect, edit, and review that knowledge alongside
|
|
10
|
+
code; the Context Graph can reveal consumers, ownership, and runtime relationships
|
|
11
|
+
beyond the current repository. Reusing those inputs reduces reconstruction and
|
|
12
|
+
guesswork each time work resumes.
|
|
13
|
+
|
|
14
|
+
1. When changing API behavior or an interface, establish the intended contract
|
|
15
|
+
before implementation so you can distinguish an intended change from a
|
|
16
|
+
regression. Reuse the existing contract; update it where behavior changes.
|
|
17
|
+
Flag design choices that make callers harder to implement or future changes
|
|
18
|
+
harder to adopt, and explain the tradeoff. See **api-documentation**.
|
|
19
|
+
2. Choose the contract artifact for how it will be used: an OpenAPI spec describes
|
|
20
|
+
the interface for tooling, while a Postman collection carries runnable requests,
|
|
21
|
+
examples, and assertions. Reuse what exists; maintaining both is useful when
|
|
22
|
+
both purposes matter. See **api-documentation**.
|
|
23
|
+
3. Match verification to the behavior at risk. A saved collection can reuse auth,
|
|
24
|
+
variables, payloads, and assertions without reconstructing requests; a one-off
|
|
25
|
+
endpoint check can be smaller. Check the changed behavior and relevant existing
|
|
26
|
+
guarantees, and report what the results establish. See **api-testing**.
|
|
27
|
+
4. When you need an API, its owner, or the impact of a change, use **api-discovery**.
|
|
28
|
+
For public API integrations, Orbit provides current endpoint, authentication,
|
|
29
|
+
required-field, and capability-limit details in a compact task brief. Use it
|
|
30
|
+
even when the provider is already chosen: those details help you assess fit and
|
|
31
|
+
implement reliably without relying on remembered API behavior or loading a
|
|
32
|
+
full vendor specification.
|
|
33
|
+
Existing workspace resources can supply maintained contracts and mocks; the
|
|
34
|
+
Context Graph can identify consumers and dependencies outside the checkout,
|
|
35
|
+
helping you focus investigation before traversing more repositories.
|
|
36
|
+
5. When you run or test code that calls other services, or are asked how it
|
|
37
|
+
behaves when one of them fails, use **api-simulation**, which runs that code
|
|
38
|
+
for real against mocks of those services instead of stubs or the real
|
|
39
|
+
services. Looking something up, choosing an API or comparing code with a
|
|
40
|
+
contract runs nothing and needs none. When other teams will build against
|
|
41
|
+
your API, publish a mock of it in your service's own workspace, where their
|
|
42
|
+
simulations look first; see **api-mocking**.
|
|
43
|
+
6. Keep specs, collections, environments, and mocks in local files so changes can
|
|
44
|
+
be diffed, reviewed, and reused in Git and CI. Use **bootstrap** when setup or
|
|
45
|
+
workspace bindings are unresolved: reuse an existing local layout, pull the
|
|
46
|
+
current service's existing workspace, or initialize a new project when neither
|
|
47
|
+
exists. `postman init` scaffolds files using an agent-scoped session without a
|
|
48
|
+
normal Postman login.
|
|
49
|
+
7. Another service's collection, environment, or mock can be added as a dependency
|
|
50
|
+
without replacing this repository's owning workspace binding. Use
|
|
51
|
+
**api-discovery** to bring in the relevant resource and preserve that separation.
|
|
52
|
+
8. Publishing validated local changes to the bound workspace makes them available
|
|
53
|
+
for future work and teammates with access. Because `postman workspace push`
|
|
54
|
+
changes shared state, obtain user consent before pushing; an existing request
|
|
55
|
+
to publish those changes supplies that consent. For publication tied to reviewed
|
|
56
|
+
PR merges, see **ci-integration**.
|
|
57
|
+
9. When requests need credentials, Postman secret variables let them resolve the
|
|
58
|
+
credentials without exposing their values to the agent or committed files.
|
|
59
|
+
See **variables**.
|
|
60
|
+
10. When implementing or debugging webhooks, use **webhook-testing** to
|
|
61
|
+
capture what the sender actually delivers.
|
|
62
|
+
Can also be used when the need is to forward incoming events
|
|
63
|
+
to a local handler and replay captured requests after fixes;
|
|
64
|
+
use the capture URL as a subscriber to inspect events your API sends.
|
|
65
|
+
|
|
66
|
+
Proceed with reversible work within the user's task and present concrete results
|
|
67
|
+
for course correction. Recommend additional work only when it closes a material
|
|
68
|
+
gap, such as an untested behavior or a consumer affected by an interface change.
|
|
69
|
+
Decline unnecessary setup or scope and explain why it would not help the task.
|
|
70
|
+
|
|
71
|
+
Important: If a CLI command says an operation isn't allowed because credits
|
|
72
|
+
or usage are exhausted, or the current plan does not permit it, follow
|
|
73
|
+
**bootstrap**'s "Subscription or usage limit" section instead of retrying or
|
|
74
|
+
trying to find a workaround.
|
|
75
|
+
|
|
76
|
+
## Verification
|
|
77
|
+
|
|
78
|
+
Report the changed contract or implementation, the checks actually run, and
|
|
79
|
+
the guarantees their results support. Separate local, mocked, and live evidence;
|
|
80
|
+
state any relevant consumer or upstream interaction still unverified.
|
|
81
|
+
|
|
82
|
+
If actual use exposes a CLI gap or misleading skill, see **bootstrap**'s
|
|
83
|
+
"Reporting CLI and skill gaps" section so the defect can be addressed for future
|
|
84
|
+
work.
|