This repository was archived by the owner on Sep 30, 2026. It is now read-only.
Repository navigation
Conversation
Author
|
Carries the same changes as postmanlabs/postman-plugin#22 and #23. Each verified against CLI 1.56.1:
This repo has no |
…drops The synced collection-schema-v3 skill covers postman/collections/ and postman/environments/. Everything else an agent writes on disk — datasets, local mock servers, workspace globals, specs, documents, SDKs and .postman/resources.yaml — is undocumented, and none of those use $kind. Each has its own discriminator (type: dataset, version: 1, name + values), so an agent generalising from the collection format produces a file that is silently wrong. Unrecognised keys are dropped rather than rejected, and `postman collection lint` does not run the unrecognised-field rules at all: a request containing `metod:`, `event:` or `dataMode:` returns errorCount 0 and warningCount 0, then runs with no method override and no scripts while reporting green. `postman workspace lint` reports each as FMT206 (FMT208 in definition.yaml), and environment/globals lint report their own as ENV007. Adds: - a SKILL.md addendum covering every non-collection entity, the filename suffixes the CLI enforces, per-kind settings blocks, the type traps, and how to verify - reference/other_entities.md with complete field lists per entity and per request kind - a widened skill description so the skill also triggers for datasets, mocks, globals, specs and documents Corrects: - reference/other_protocols.md documented `type` on userPrompts and systemPrompts items; the field is `contentType`, and `type` lints clean before being stripped - bootstrap step 3.1 read resources.yaml for `localResources`, a key that exists nowhere, and branched on the bindings rather than on `workspace.id`; since `postman init` writes only the `workspace` stanza, an initialised repo that has not pushed yet has no `cloudResources` and was being sent back through init Measured over 157 one-shot authoring prompts scored by the CLI's own validators: the current skill alone fails 46.5% of the exotic subset, this text fails 0 of 157. Co-Authored-By: Claude <noreply@anthropic.com>
jonico
force-pushed
the
docs/v3-git-sync-corrections
branch
from
September 23, 2026 10:45
46b056e to
9e837df
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
collection-schema-v3coverspostman/collections/andpostman/environments/. Everything else an agent writes on disk is undocumented: datasets, local mock servers, workspace globals, specs, documents, SDKs and.postman/resources.yaml. None of those use$kind— a dataset usestype: dataset, a mock usesversion: 1, an environment usesname+values— so an agent generalising from the collection format produces a file that is silently wrong.The failures are quiet rather than loud:
metod:,event:ordataMode:runs with no method override and no scripts, and reports green with 0 assertions.postman collection lintdoes not run the unrecognised-field rules at all — it returnserrorCount: 0, warningCount: 0for all of the above, and-f warningdoes not change that.postman workspace lintreports each one asFMT206(FMT208indefinition.yaml), andenvironment lint/globals lintreport their own asENV007.So the guidance tells agents to finish with
workspace lint, notcollection lint.What this changes
skills/collection-schema-v3/SKILL.mdsettingsblocks, the type traps, and how to verifyskills/collection-schema-v3/reference/other_entities.mdskills/collection-schema-v3/reference/other_protocols.mddescriptionThe existing SKILL.md body is unchanged. Everything is additive except the correction.
The one correction to existing text
reference/other_protocols.mddocumentstypeonuserPrompts/systemPromptsitems:The defined field is
contentType. Both spellings lint clean, so nothing warns you —typeis unrecognised, so it is accepted, stripped, and the content type is lost.Measured
153 one-shot authoring prompts across every entity type and request kind, plus 4 covering script
language, exotic LLM settings and identifier format. One subagent per batch, no linting, no iteration, no reading any existing collection. Scored by the CLI's own validators (collection|environment|globals|spec lint,workspace lint,dataset get) plus semantic checks for the defects lint strips. Guidance SHA-256 verified unchanged at both ends of the run.0 failures in 157 bounds the true rate under 1.91% at 95% confidence (rule of three). The on-demand
other_entities.mdis a further ~4,370 tokens, paid only when read.The token cost is deliberate. A half-size variant containing every one of the same rules scored 3.0%, because rules compressed into dense multi-clause sentences got missed. The extra tokens buy prominence, not content, which is why the text uses callouts and one rule per paragraph.
Design notes, corpus, oracle and results: https://gist.github.com/jonico/be778cafdec3966c2ee84543734c31db
Line-by-line comparison against the current text: https://gist.github.com/jonico/d1d105b0f8a1609399697b7c7ba0ae89
Notes on the content
.postman/resources.yamlis deliberately not specified.postman initwrites it andworkspace push/mock pushmaintain it, so the guidance says not to hand-author it and gives only what is needed to read or repair one.Also documented, undocumented until now
FMT209is symmetric: a url carrying?a=1with noqueryParamswarns, and aqueryParamsblock whose url has no query string warns. It is a warning, so a cleanerrorCounthides it.postman spec lintreports governance findings at ERROR severity — a valid spec with nosecurityblock fails with Security field is not defined, issue typeGovernance. A non-zero error count there does not mean the spec is malformed.postman collection runneeds no login; pass--no-report-eventsso the CLI does not attempt the post-run report upload, which is the only part that reaches the cloud.Relationship to
postmanlabs/postman-pluginThese skills arrived here via #23 (
sync/skills-hooks-from-postman-plugin), andskills/collection-schema-v3/is byte-identical to the upstream copy. The same change is filed upstream as postmanlabs/postman-plugin#22; whichever lands first, the next sync reconciles them.This PR also folds in the
bootstrap/SKILL.mdfix filed upstream as postmanlabs/postman-plugin#23: step 3.1 read.postman/resources.yamlforlocalResources, a key that exists nowhere, and branched on the bindings rather than onworkspace.id. Sincepostman initwrites only theworkspacestanza, an initialised repo that has not pushed yet has nocloudResourcesand was being sent back through init.This repo has no
manifest.json, so that part of the upstream change does not apply. All sevenPlugin Checksjobs pass.