Adopt generated registries and repo-root Gemini/Kiro emission - #9
Merged
Merged
Conversation
Upgrade to @ai-plugin-marketplace/core@^0.2.0 + cli@^0.1.1 and add aipm.workspace.ts to opt this repo into the toolkit's newer capabilities, so the template demonstrates them end-to-end and stays in sync with what the tooling generates. - Marketplace registries (.claude-plugin/marketplace.json, .cursor-plugin/marketplace.json) are now generated from aipm.workspace.ts plus each plugin's aipm.config.ts, rather than hand-authored. The plugin's description/keywords now live in its aipm.config.ts and flow into the registry entry's description/tags. - Because the marketplace exposes a single plugin, aipm build also emits the repo-root Gemini extension and Kiro power (gemini-extension.json, GEMINI.md, POWER.md, commands/, skills/, steering/, .kiro/, hooks/, mcp.json), tracked in .aipm/generated-root.json, so the repo installs natively into hosts with no marketplace concept. - Drop the plugin's own LICENSE/README.md: the repo-root LICENSE/README are canonical and back the single Gemini/Kiro artifact, and generation refuses to overwrite repo-root state it does not own. The plugin's usage docs are folded into the root README's example section. - Document the workspace-metadata model and the single-plugin Gemini/Kiro constraint in README.md and CONTRIBUTING.md.
There was a problem hiding this comment.
Pull request overview
This PR updates the template to align with newer @ai-plugin-marketplace/* tooling by switching from hand-authored marketplace registries to generated registries driven by workspace metadata, and by committing the repo-root Gemini/Kiro “single-artifact” emission for the single-plugin workspace.
Changes:
- Upgraded
@ai-plugin-marketplace/coreto^0.2.0and@ai-plugin-marketplace/clito^0.1.1, updating lockfile accordingly. - Introduced
aipm.workspace.tsto opt into generated Claude/Cursor marketplace registries and committed the generated outputs. - Adopted/committed repo-root Gemini/Kiro emission artifacts (commands/skills/agents/steering/hooks,
gemini-extension.json,GEMINI.md,POWER.md, etc.) and updated docs to explain the single-plugin constraint and generated-root tracking.
Reviewed changes
Copilot reviewed 22 out of 27 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
steering/evaluation-workflow.md |
Adds repo-root steering doc for the evaluation workflow (root emission). |
skills/evaluate-skill/SKILL.md |
Adds repo-root skill definition for evaluate-skill (root emission). |
README.md |
Updates documentation for generated registries + repo-root Gemini/Kiro emission and removes reliance on plugin README. |
POWER.md |
Adds repo-root Kiro power manifest (root emission). |
pnpm-lock.yaml |
Updates lockfile for the CLI/core version bumps. |
plugins/skill-evaluator/README.md |
Removes plugin-local README to avoid repo-root artifact collisions (per new model). |
plugins/skill-evaluator/LICENSE |
Removes plugin-local LICENSE to avoid repo-root artifact collisions (per new model). |
plugins/skill-evaluator/aipm.config.ts |
Moves plugin marketplace metadata (description/keywords) into config for registry generation. |
package.json |
Bumps @ai-plugin-marketplace/* devDependencies. |
mcp.json |
Adds repo-root MCP configuration (empty) as part of root emission. |
hooks/hooks.json |
Adds repo-root hooks file as part of root emission. |
GEMINI.md |
Adds repo-root Gemini context file (root emission). |
gemini-extension.json |
Adds repo-root Gemini extension manifest (root emission). |
dist/kiro/skill-evaluator/README.md |
Removes standalone bundle README (now relying on repo-root docs). |
dist/kiro/skill-evaluator/LICENSE |
Removes standalone bundle LICENSE (now relying on repo-root LICENSE). |
dist/gemini/skill-evaluator/README.md |
Removes standalone bundle README (now relying on repo-root docs). |
dist/gemini/skill-evaluator/LICENSE |
Removes standalone bundle LICENSE (now relying on repo-root LICENSE). |
CONTRIBUTING.md |
Updates contributor workflow/docs for generated registries and root emission. |
commands/evaluate.toml |
Adds repo-root command definition for /evaluate (root emission). |
aipm.workspace.ts |
Adds workspace-level marketplace metadata to enable generated registries and root emission behavior. |
agents/test-subject.md |
Adds repo-root agent definition (root emission). |
agents/experimenter.md |
Adds repo-root agent definition (root emission). |
.kiro/agents/test-subject.json |
Adds generated Kiro agent JSON for test-subject (root emission). |
.kiro/agents/experimenter.json |
Adds generated Kiro agent JSON for experimenter (root emission). |
.cursor-plugin/marketplace.json |
Updates to generated registry output format/content (metadata version removed; tags formatting). |
.claude-plugin/marketplace.json |
Updates to generated registry output format/content (metadata version removed; tags formatting). |
.aipm/generated-root.json |
Tracks which repo-root paths are toolkit-owned/generated. |
Files not reviewed (1)
- pnpm-lock.yaml: Language not supported
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| "hooks": [ | ||
| { | ||
| "type": "command", | ||
| "command": "if echo \"$TOOL_INPUT\" | grep -q 'evaluation-report'; then echo \"[$(date -u +%Y-%m-%dT%H:%M:%SZ)] Evaluation report written\" >> .evaluation-log.jsonl; fi" |
…t hook
The PostToolUse hook logged a bracketed human-readable string to
.evaluation-log.jsonl, which the .jsonl extension and 'structured log file'
description both imply is JSON Lines — but the line was not valid JSON. Emit a
single JSON object per line ({"timestamp":..,"event":..}) so the log is
parseable as JSONL and matches its description. Regenerated the per-target hook
artifacts and the repo-root emission from the claude.yaml source.
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
Brings the template in sync with the toolkit's newer capabilities by upgrading to
@ai-plugin-marketplace/core@^0.2.0+cli@^0.1.1and adopting them end-to-end,so the template demonstrates what the current tooling generates rather than the
older hand-authored-registry model.
What changed
aipm.workspace.ts(marketplace metadata). Itspresence opts the repo into generated
.claude-plugin/marketplace.jsonand.cursor-plugin/marketplace.jsoninstead of hand-authored JSON. The plugin'sdescription/keywordsnow live inplugins/skill-evaluator/aipm.config.tsandflow into each registry entry's
description/tags.plugin,
aipm buildnow also emits the repo-root Gemini extension and Kiro power(
gemini-extension.json,GEMINI.md,POWER.md,commands/,skills/,steering/,.kiro/,hooks/,mcp.json), tracked in.aipm/generated-root.json. This lets the repo install natively into hosts thathave no marketplace concept.
README.mdandCONTRIBUTING.mdnow describe the workspace-metadatamodel, generated registries, and the single-plugin Gemini/Kiro constraint.
Notable wrinkles (reviewer attention)
LICENSE/README.mdremoved. Root-emission copies the plugin'sLICENSE/README.mdinto the repo-root Gemini/Kiro artifact, which collides withthe repo's own root
LICENSE/README.md(root-artifact-collision, hard).Generation refuses to overwrite repo-root state it does not own, so the plugin no
longer carries its own copies — the repo-root ones are canonical. The plugin's
usage docs were folded into the root README's example section so nothing is lost.
This matches how the toolkit's own dogfood repo is structured.
single-artifact-hostfinding (Gemini/Kiro can host only one artifact per repo);Claude/Cursor marketplace support is unaffected. The README documents this.
metadata.versiondropped from registries.defineWorkspace's marketplacemetadata has no
versionfield, so the generated registries omit the previousmetadata.version: "0.0.1". Minor; flagged as a possible toolkit follow-up..codex-plugin/plugin.jsonper plugin (TOML agents,
AGENTS.mdcontext, codex hooks) — authoring work beyondthis sync, and not demonstrated by the dogfood either. Left as a follow-up.
Verification
aipm build→Built 1 plugin(s), 31 artifact(s). OK — no findings.aipm validate→OK — no findings.pnpm install --frozen-lockfileclean, and theworking tree is clean after
aipm buildagainst the committed state.