Skip to content
This repository was archived by the owner on Sep 30, 2026. It is now read-only.

Sync skills and hooks from postmanlabs/postman-plugin main - #23

Merged
quintonwall merged 2 commits into
mainfrom
sync/skills-hooks-from-postman-plugin
Sep 21, 2026
Merged

quintonwall merged 2 commits into
mainfrom
sync/skills-hooks-from-postman-plugin

Conversation

@garciasdos

Copy link
Copy Markdown
Collaborator

Summary

Ports the parts of postmanlabs/postman-plugin's current main that this repo was missing, same pattern as #22.

  • New skills: api-engineer (default entry point for API engineering work — designing, implementing, mocking, testing, monitoring, documenting, or deploying an API; routes to the other skills) and api-documentation (generates filesystem-first, agent-friendly API docs; bootstrap is its precursor).
  • New hooks/ directory: hooks/hooks.json registers a SessionStart hook (matcher startup|clear|compact) that prints hooks/session-start-context.md into context. This affects every session this plugin is loaded in, not just API-specific ones — it injects an <EXTREMELY_IMPORTANT> block instructing Claude to invoke postman:api-engineer before any non-trivial API engineering task, with postman:bootstrap/api-mocking/api-testing/etc. as direct entry points when intent is already specific. It explicitly defers to user instructions (CLAUDE.md/AGENTS.md/direct requests) and to subagent dispatch. Confirmed hooks/hooks.json at the plugin root is auto-discovered by Claude Code without any plugin.json declaration.
  • Re-synced 3 drifted skills (ai-readiness, api-discovery's search_filters.md reference, bootstrap) to match the source repo — whitespace/heading-level only, no behavior change.
  • CHANGELOG entry under [Unreleased].

Deliberately excluded

  • plugin.json / .mcp.json version bump — left at 2.0.0 per maintainer note (still unpublished).
  • manifest.json, scripts/build-manifest.js — postman-plugin's own build/packaging step (postman init fetches this); devrel-plugin distributes via the Claude Code plugin marketplace and doesn't use this mechanism.
  • AGENTS.md, intent.md — postman-plugin's own repo-maintenance/design-history docs, not applicable here as-is.
  • Did not touch the pre-existing v1→v2 drift in CLAUDE.md/README.md (e.g. CLAUDE.md's Repository Structure section still describes removed commands//agents/ and old skill names) — out of scope for this sync, flagging for a follow-up.

Test plan

  • diff -rq confirms no other skill content diverged beyond the 3 re-synced files
  • Grepped the two new skills for postman-plugin-only references (manifest.json, build-manifest, postman init, intent.md, AGENTS.md, postmanlabs.com, scripts/) — none found
  • Confirmed via Claude Code docs that hooks/hooks.json at plugin root doesn't need a plugin.json declaration
  • Load the plugin locally and confirm the SessionStart hook fires and the two new skills route correctly

Generated with Claude Code

Ports the two skills devrel-plugin was missing (api-engineer as the
default API-engineering entry point, api-documentation for
filesystem-first agent-friendly docs), adds the hooks/ directory with
the SessionStart hook that routes non-trivial API work to
postman:api-engineer, and re-syncs three skills that had drifted
(ai-readiness, api-discovery's search_filters reference, bootstrap)
to match the source repo's current whitespace/heading style.
@garciasdos
garciasdos marked this pull request as ready for review September 21, 2026 18:01
Multiple-blank-lines, missing blank lines around tables, and duplicate
top-level headings, all introduced by copying source files verbatim
from postman-plugin, which doesn't run the same markdownlint config.
@quintonwall
quintonwall merged commit 1e5f49e into main Sep 21, 2026
7 checks passed
jonico added a commit to jonico/postman-claude-code-plugin that referenced this pull request Sep 23, 2026
Mirrors the review fixes from postmanlabs/postman-plugin#22 and Postman-Devrel#23. Each
verified against CLI 1.56.1:

- Script `language` was documented as "default javascript". The field takes
  exactly one value, `text/javascript`; `language: javascript` is a hard
  error. The existing SKILL.md already had this right, so the addendum
  contradicted its own file.

- The LLM `settings` list claimed completeness and omitted three of thirteen
  keys: `streamTools`, `repetitionPenalty` and `contextWindow`.

- `postman collection run` was said to need a signed-in CLI even for a purely
  local collection. It does not. The run is local; without
  `--no-report-events` the CLI uploads a run report afterwards and that
  upload fails when not signed in. Verified: a local v3 collection against a
  local mock exits 0 with 1/1/1 requests, test-scripts and assertions, no
  login. This removes the conflict with this repo's own "local commands need
  no login" rule.

- Dataset and mock `id` placeholders were labelled uuid4 but had wrong
  version and variant nibbles, so a copy-paste failed the requirement the
  same line states. Replaced with real v4s.

- `$kind` was described as the only required field on any request kind,
  contradicting the mcp-request section, which also requires `transport`.

- bootstrap step 3.1 now routes on `workspace.id` rather than on the
  bindings: `postman init` writes only the `workspace` stanza, so an
  initialised repo that has not pushed yet has no `cloudResources` and was
  being sent back through init.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants