docs: wire AppKit plugin CLI into create/audit/review Claude commands#369
Open
MarioCadenas wants to merge 5 commits into
Open
docs: wire AppKit plugin CLI into create/audit/review Claude commands#369MarioCadenas wants to merge 5 commits into
MarioCadenas wants to merge 5 commits into
Conversation
The create-core-plugin, audit-core-plugin, and review-core-plugin commands previously left the CLI as an interactive footnote, so agents hand-edited manifests, hung on stdin, or skipped schema/sync checks entirely. Update them to drive the full `appkit plugin` surface (`create` non-interactively, `validate`, `list`, `sync`, `add-resource`, `promote --dry-run`) and route each result to the matching best-practices category.
pkosiec
reviewed
May 18, 2026
pkosiec
approved these changes
May 18, 2026
…emplate Add an in-source bin shim at packages/appkit/bin/appkit.js so that `npx @databricks/appkit ...` resolves to the real CLI when consuming the workspace symlink (node_modules/@databricks/appkit) inside the monorepo. The shim delegates to packages/shared/bin/appkit.js; tools/dist-appkit.ts still overwrites both files with the bundled CLI when building the published tarball, so end consumers are unaffected. With the bin link now created by pnpm install, the root `sync:template` script can drop the explicit `node packages/shared/bin/appkit.js` path and invoke the bare `appkit` binary that pnpm/npm puts on PATH for run scripts. Behaviour is identical (template/appkit.plugins.json output is byte-identical), the invocation just matches what users would type interactively. Adds `appkit` to knip's ignoreBinaries (same pattern as `tarball`) since knip can't see through the workspace symlink to know the bin resolves to a workspace package, and updates the CI comment above the shared-dist build step to reflect the new invocation chain.
Update the create-core-plugin Claude command's Section 7 to reflect that `npx @databricks/appkit plugin sync ...` now works both inside and outside the monorepo (the new appkit bin shim makes the in-monorepo case work through the workspace symlink). Previously the docs framed `npx` as a "fallback for outside the monorepo"; it's actually equivalent to the `sync:template` wrapper, just with the flags spelled out. Also clarifies the `--plugins-dir` and `--output` flags that the `sync:template` wrapper passes for you, and folds the standalone-`npx` caveat into a single Note paragraph instead of having it split between the script comment and the trailing note.
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
The
/create-core-plugin,/audit-core-plugin, and/review-core-pluginClaude commands previously left theappkit pluginCLI as an interactive footnote. The result was that agents either hung on stdin, hand-editedmanifest.json, or skipped the schema/sync checks the CLI provides.These changes wire the full
appkit pluginsurface into the three commands and route every CLI result to the matching best-practices category:create-core-plugin.md--placement / --path / --name / --display-name / --description / --resources(-json) / --forceinvocation, and 2b (interactive fallback) scoped to thebetastability case (the CLI doesn't accept it as a flag).--resources-jsonat scaffold time andappkit plugin add-resource(with--dry-run,--no-required,--fields-json) for resources discovered later.appkit plugin validate, preferspnpm run sync:templateinside the monorepo (matching whatpromoteitself does), shows--require-pluginsfor forcing inclusion, and addsappkit plugin list --jsonas a verification step.appkit plugin promote {name} --to gawith--dry-runfirst, steering away from hand-editing the manifest + import barrels.audit-core-plugin.mdappkit plugin list --dir … --json(withlsas fallback).plugin validate,plugin list --json, andplugin sync --json, with explicit category/severity routing for any failure or warning.appkit plugin promote --to ga --dry-runas a stability/import-barrel consistency check forbetaplugins.review-core-plugin.mdplugin validatealways,plugin sync --jsonalways (covers the orphaned-resource warning when plugins are removed),plugin promote --to ga --dry-runwhen the diff touchesstabilityor/betaimports, andplugin add-resource --dry-runwhen the diff adds resources — each tagged with the category and severity to use in Step 6.No code changes; documentation only.
Test plan
/create-core-pluginwith a plugin name + description and confirm the agent uses the non-interactiveappkit plugin createinvocation (no stdin hang)./audit-core-plugin <existing-plugin>and confirm the new Step 3.5 CLI checks (validate,list --json,sync --json) are executed and folded into the scorecard./review-core-pluginagainst a branch that touches a plugin manifest and confirm the new Step 5.5 cross-checks run and feed Step 6.