Skip to content

Adopt generated registries and repo-root Gemini/Kiro emission - #9

Merged
mike-north merged 2 commits into
mainfrom
adopt-workspace-features
Jun 4, 2026
Merged

mike-north merged 2 commits into
mainfrom
adopt-workspace-features

Conversation

@mike-north

Copy link
Copy Markdown
Collaborator

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.1 and adopting them end-to-end,
so the template demonstrates what the current tooling generates rather than the
older hand-authored-registry model.

What changed

  • Generated registries. Added aipm.workspace.ts (marketplace metadata). Its
    presence opts the repo into generated .claude-plugin/marketplace.json and
    .cursor-plugin/marketplace.json instead of hand-authored JSON. The plugin's
    description/keywords now live in plugins/skill-evaluator/aipm.config.ts and
    flow into each registry entry's description/tags.
  • Repo-root Gemini/Kiro emission. Because the marketplace exposes a single
    plugin, aipm build now 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 that
    have no marketplace concept.
  • Docs. README.md and CONTRIBUTING.md now describe the workspace-metadata
    model, generated registries, and the single-plugin Gemini/Kiro constraint.

Notable wrinkles (reviewer attention)

  • Plugin LICENSE/README.md removed. Root-emission copies the plugin's
    LICENSE/README.md into the repo-root Gemini/Kiro artifact, which collides with
    the 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-plugin constraint is intentional. Adding a second plugin would trip a
    single-artifact-host finding (Gemini/Kiro can host only one artifact per repo);
    Claude/Cursor marketplace support is unaffected. The README documents this.
  • metadata.version dropped from registries. defineWorkspace's marketplace
    metadata has no version field, so the generated registries omit the previous
    metadata.version: "0.0.1". Minor; flagged as a possible toolkit follow-up.
  • Codex deferred. Codex requires a hand-authored .codex-plugin/plugin.json
    per plugin (TOML agents, AGENTS.md context, codex hooks) — authoring work beyond
    this sync, and not demonstrated by the dogfood either. Left as a follow-up.

Verification

  • aipm buildBuilt 1 plugin(s), 31 artifact(s). OK — no findings.
  • aipm validateOK — no findings.
  • CI freshness simulated locally: pnpm install --frozen-lockfile clean, and the
    working tree is clean after aipm build against the committed state.

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.
Copilot AI review requested due to automatic review settings June 4, 2026 00:45

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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/core to ^0.2.0 and @ai-plugin-marketplace/cli to ^0.1.1, updating lockfile accordingly.
  • Introduced aipm.workspace.ts to 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.

Comment thread hooks/hooks.json Outdated
"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.
@mike-north
mike-north merged commit ee50182 into main Jun 4, 2026
1 check passed
@mike-north
mike-north deleted the adopt-workspace-features branch June 4, 2026 01:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants