Skip to content

History / Claude Code Skills

Revisions

  • docs: update the wiki for v1.33.0 pro setup --scope standard withholds the privileges that grant privileges or logins. import-profile keeps the profile as installed and takes over where it can; --convert replaces --legacy. pro bulk moves to classic-policies enable/disable and group add-members/remove-members; send-command refuses ten of twelve commands. Device actions exit 7 on a partial failure and --from-file lists take UDIDs, management IDs and names. MCP run_command refuses the writes that change who can log in. Gateway refusals drop from 59 to 53 (restart, shutdown, remote desktop now routed). Generated Pro writes take --from-file; Classic profile writes edit the element the server reads; gateway uploads go out chunked; -vv traces wire headers and -v works for Protect, School and Security Cloud. make sync-specs is retired; the skill and hook name real spec files. Wire-checked against v1.33.0 on platform-nmjspp. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Oct 9, 2026
  • docs: update the wiki for v1.31.0 v1.31.0 adds two leaves (1,764 -> 1,766) and one flag, all serving the new cross-product HTML fleet report: - New page Fleet Dashboard, covering `dashboard`: the two collection tiers and their costs, `--include-profile`'s different-product rule, why the destination is `--out-file` rather than a redirect, the four global flags it does not honour, and the exit-code table. - MCP Server: `generate_report` is a third tool, so "two generic tools" and the leaf count were both stale. Also corrects the security model, which claimed `run_command` rejects "five" flags matched exactly. It now matches seven by prefix and blocks eight command paths outright, `dashboard` among them. - Configuration & Profiles: `config set-report-dir` and the global `report-dir` key, including the world-writable refusal. - Setup Guide, Error Handling, Claude Code Skills, Home and the sidebar pick up `--report-dir`, dashboard's exit 7, and the new page. Verified against a v1.31.0 build: every command and flag exists in `commands -o json`, and `dashboard` was run live against an environment-scoped platform profile to confirm a product the credential cannot reach is omitted with exit 0 rather than failed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Sep 18, 2026
  • docs: update the wiki for v1.30.0 The breaking change is the Classic `scope` subcommands. They took the resource name as a bare positional through v1.29.0 and now take `[<id>]` with `--name` as the alternative, refused together, so every scope example on Jamf Pro Commands and Pro Workflows was an exit 2. The single flag/section table went with it: each command registers only its own resource's categories now, so a cross-family flag no longer exists on it and one table for nine resources was wrong on seven. Replaced with a per-resource matrix read off the catalog, plus the section validity each category carries. `--ibeacon`, `--class` and restricted-software `--user` are documented as newly writable, and `--class` gets the two-request mechanism, since an operator counting requests needs it. `classic-user-groups` is gone from the scopeable list. It has never carried `scope` in any release; checked against both the v1.29.0 and v1.30.0 catalogs. `open` is new in all four product namespaces and is documented on each product page, with the cross-product pattern on CLI Patterns: the print- instead-of-launch triggers, `--field url`, and the per-product URL ladders, which differ. `pro open` takes one of 139 named sections and is the only one that can send a request. The section list is not pasted anywhere; `pro open --list` is the source. Also: the published Classic API caught up to 11.32.0, so the "which trails the Pro API's version" caveat is gone from the binary and from the four pages quoting it, and `pro classic-computer-configs` is now recorded as dead rather than unpublished. `preview` is a new catalog key on the thirteen AI Governance commands. `pro sso-settings oidc-broker-config` and `pro jamf-pro-notifications delete --all` are documented, the latter with the v1.29.0 defect where `-n` sent a live tenant-wide DELETE. The platform SDK's move to the jamf org is on Architecture & Development, with jamfprotect-go-sdk called out as staying put. Every invocation on every page was resolved against `commands -o json` from the v1.30.0 binary and every long flag checked against that command's own flag set; two pre-existing `security ztna-gateways create --file` examples were stale since v1.29.0 and are now `--from-file`. Quoted CLI output was captured from the binary against a live instance and a gateway profile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Sep 16, 2026
  • docs: rewrite the wiki as instructions, and run stop-slop over it Every page read as an essay. Each section now answers what you type, what happens, and what to watch out for when that changes what you type. Deleted throughout: the meta sections about the pages themselves ("Do I need this page?", "What this page is not", "The five ways this can break you", "Why the names changed"), the design rationale, the history of what the CLI used to send, and the postmortem narration that belongs in the repo's docs/solutions. Prose drops from 59,853 words to 47,515, and no page grew. Stop-slop pass over all 27 pages: | marker | before | after | |---|---|---| | em dashes in prose | 180 | 0 | | banned adverbs | 332 | 0 | | binary contrasts ("not X, it's Y") | 30 | 0 | | sentences opening on a Wh- word | 25 | 0 | | throat-clearing phrases | 1 | 0 | The 139 remaining adverb matches are `also`, `still`, `already` and `exactly`, none of them on the skill's list, and `still` is load-bearing here: an endpoint that still answers is the case the refusal wording exists for. The 165 remaining universal claims are counted or precise ("prepended to every call", "never in a flag value"), which the rule permits. Six fabricated transcripts corrected against the binary: - Ten blocks showed a `message:` label the CLI never prints. On a terminal it prints the message unlabelled then `hint: `; under `-o json` it prints the error envelope. Both forms now appear where each applies. - `jamf-cli pro icons list` was the example for "the retired name warns, then runs". `pro icon` ships no `list`, so it warned and then exited 2, which is the opposite of the point. Replaced with `pro icons get 1`. - The 401, 404 and 429 hints quoted three strings that are not in `internal/client/client.go`. Replaced with what it emits. - The payload-verification warning showed one comma-joined line with a parenthetical. `formatStoredPayloadWarning` emits a header plus one indented `- path: reason` line per finding, capped at three. Verbatim CLI output inside code blocks keeps its em dashes and its wording. Five remain on that basis, two of them in the `pro setup` credential-source menu, which the CLI itself prints with an em dash. Structural checks: code fences balanced, no table column mismatches, every in-page and cross-page anchor resolves after 24 heading renames, and no command, flag, table row or endpoint lost. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Sep 11, 2026
  • docs: update wiki for v1.29.0 — the pro command rename v1.29.0 derives every `jamf-cli pro` resource name from the Jamf Pro API's own OpenAPI tags and URL paths instead of from the filename each resource's paths were split into. 163 resources became 135, and 100 former names resolve with a warning until 2027-03-09. New page, `Pro Command Renames`, is the migration reference: the full 96-name table, the four aliases that redirect two tokens deep, the three withdrawn names, the 48 invocations an alias cannot cover, the three former leaves that now print help at exit 0 where they returned data, the nine sub-path command groups, the 19 write operations that were being deleted at generate time, and a script-tree migration recipe. Linked from Home and the sidebar. Every page naming a `pro` command is updated to the new names — 100 occurrences across seven pages — and the retired spellings now appear only where the page is explaining them. Corrections found while verifying against the v1.29.0 binary and two live tenants: - The gateway refused-command list was 75 and is 59. The Classic patch family and `pro policy-properties` are served again; `pro static-computer-groups` no longer exists as a name, so the successor transcript it illustrated is dead and the curated successor table is empty. - An organization-scoped credential on `platform audit` answers `REQUEST_CONTEXT_NOT_PROVIDED`, not `INVALID_REQUEST_CONTEXT_TYPE`; the `'tenant'` in that second message means a tenant header really was sent. - AI Governance is environment-scoped, not organization-scoped. Its spec declares `environment` alone and the wire agrees. - Security Cloud device groups: `update` is the v2 PUT and answers 204 with no body; only the implicit "Default Group" comes back without an `id`, not the whole collection. - `platform setup` checks the scope ID and reports declared scope levels; it no longer returns a Security Cloud entitlement verdict. - `config add-profile` verifies credentials before writing and gained `--no-verify`; `pro setup` gained `--credentials existing|create`. - Classic `--scaffold`/`--set` coverage is 114 of 117, not 111. - `pro backup --resources` does not reject an unknown token alongside a recognised one — documented as it behaves. - The MCP catalog carries `scopes`, and `run_command` returns combined stdout+stderr, so a retired-name warning breaks JSON parsing downstream. - `pro policies` in the MCP page's examples does not exist; it is `pro classic-policies`. Adds the v1.29.0 behaviour changes throughout: every command prints through one output formatter, `--select`/`--compact` narrow rows for every column format, a cobra usage error exits 2, a stray positional is refused on every leaf that documents none, `--scaffold` reaches the commands that take positionals, name lookups accumulate matches across pages and report an unaddressable match, `apply` on the six gateway resources, and a destructive `x-action` sending its own HTTP method. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Sep 11, 2026
  • docs: rewrite the wiki prose for voice and first-party register Two passes over all 26 pages, prose only. No command, flag, path, exit code, privilege slug, count or version string changed; code blocks are byte-identical to the previous revision apart from one hand-written shell comment. Voice pass: - Removed every prose em dash (1050 of them). Fenced output and the one not-applicable table placeholder keep theirs. - Cut the marketing register: the "See It in Action" heading, "instant snapshot", "unlocks", "and more", "comprehensive", and the "no scripting, no Postman, no guesswork" negative triple on the front page. - Cut filler adverbs where they carried no technical load, and kept the ones that do: "silently" means no error is raised, "legitimately" marks a valid tenant state, "deliberately" marks a design choice rather than an oversight. - Named the actor where the passive voice hid it: the CLI appends the hint, root.go picks the provider, backup writes the documents, you create the integration. - Renamed nine version-suffixed headings to the parenthetical style already used elsewhere, updating every inbound wiki link in the same pass. First-party pass, since this wiki is published by Jamf and read as though an outside integrator wrote it: - Jamf-as-external-actor now names the system that acts: "before the gateway sees them", "Jamf Protect publishes analytics centrally", "the recommended level for new integrations", "Public-beta credentials stopped working at GA". - "report it to Jamf" is now "report it to Jamf Support". - Product names, Jamf PI-827, the repository URLs, and Jamf-managed / Jamf-published as object classes are untouched; the Protect API returns jamf: true, so that vocabulary is the product's own. - No first-person plural introduced. Two blocks still quote the CLI's edgeBlockedNote verbatim, which says "not Jamf and not your API privileges" and "report it to Jamf". Those stay until the string changes in internal/client/client.go. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Sep 4, 2026
  • docs: update wiki for v1.19.0 - Output Formats: TTY-aware default format (table on terminal, json on pipe), single-object detail view, semantic --compact - Error Handling: exit code 7 (partial_failure) + --allow-partial-failure, JSON envelope hint/exitCodeName/details fields, usage-error suggestions - Claude Code Skills: correct marketplace install (/plugin marketplace add + /plugin install jamf-cli-skills@jamf-cli) - Jamf Pro Commands: app-installer-global-settings (11.29.0) - CLI Patterns: --all auto-pagination on all paginated GETs - CI/CD: handling partial batch failures in pipelines - Secrets & Keychain: keychain write-failure guidance - Configuration: clarify TTY-aware default-output Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Jun 19, 2026
  • docs: add Claude Code Skills wiki page Covers plugin installation, available skills, how the agent works, agentic usage tips (Platform device groups, positional IDs, apply vs create, spec-check behaviour), and troubleshooting. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

    @neilmartin83 neilmartin83 committed Jun 15, 2026