Skip to content

Add Claude, Grok, Codex, and Pi plugin marketplaces - #87

Open
MickaelV0 wants to merge 1 commit into
tt-a1i:mainfrom
MickaelV0:feat/host-plugin-marketplaces
Open

Add Claude, Grok, Codex, and Pi plugin marketplaces#87
MickaelV0 wants to merge 1 commit into
tt-a1i:mainfrom
MickaelV0:feat/host-plugin-marketplaces

Conversation

@MickaelV0

@MickaelV0 MickaelV0 commented Aug 18, 2026

Copy link
Copy Markdown

Problem and value

Closes #88.

Archify already ships as a portable Skill (npx skills add) but does not declare a plugin marketplace, so Claude Code, Grok, Codex, and Pi cannot install it the way they install other plugins (see semctx: one runtime, host-specific marketplace indexes).

This PR makes tt-a1i/archify a marketplace source. The renderer, validator, and archify.zip stay the current Skill package.

Scope

  • What changed:
    • .claude-plugin/marketplace.json and .grok-plugin/marketplace.json list one shared plugin at ./archify
    • .agents/plugins/marketplace.json lists the same package for Codex
    • Host manifests: archify/.claude-plugin/plugin.json, archify/plugin.json, archify/.codex-plugin/plugin.json
    • archify/skills/archify/* links back to the Skill so conventional skills/ discovery keeps bin/ / schemas/ next to SKILL.md
    • Codex agents/openai.yaml lives only under skills/archify/agents/ (not a Grok agents/ leaf)
    • Root package.json with pi.skills: ["./archify"] for pi install git:github.com/tt-a1i/archify
    • scripts/build-zip.sh excludes plugin manifests so npx skills add / archify.zip stay byte-identical
    • README install table points Claude Code and Codex at the marketplace (word-budget neutral)
    • Lockstep regression in archify/test/plugin-marketplace.test.mjs
  • What deliberately did not change:
    • Renderer, schemas, validator, viewer, Gallery, start page, archify.zip
    • npx skills add as the 60-second default
    • Package version (2.15.0) and Changelog Unreleased (no identity bump)
    • DeepSeek Harness path
  • No unrelated changes: confirmed

Stability impact

  • Compatibility and migration risk: additive only. Existing Skill installs keep working.
  • Renderer, validator, package, or generated-artifact risk: zip freshness verified (diff -r empty). Plugin files are excluded from the archive.
  • Failure behavior and rollback path: revert this commit. No runtime fallback change.

Tests run

cd archify && npm ci && npm test
# 659 pass, 0 fail
node --test test/plugin-marketplace.test.mjs
grok plugin validate archify
# Plugin manifest is valid. 1 skill dir, 0 command dirs, 0 agent dirs
claude plugin validate ..
# marketplace manifest validation passed
scripts/build-zip.sh /tmp/fresh.zip && diff -r against committed archify.zip
# ZIP_UNCHANGED
scripts/check-release-identity.mjs
# release identity ok: 2.15.0

Visual evidence

Not applicable — install-surface packaging only.

Generated artifacts

None. archify.zip, Gallery, guide, and start page remain fresh because plugin files are zip-excluded and no renderer/template source changed.

Install after merge

# Claude Code
claude plugin marketplace add tt-a1i/archify
claude plugin install archify

# Grok
grok plugin marketplace add tt-a1i/archify
grok plugin install archify --trust
grok plugin enable archify

# Codex
codex plugin marketplace add tt-a1i/archify
codex plugin add archify@archify

# Pi
pi install git:github.com/tt-a1i/archify

The Skill CLI path is unchanged: npx skills add tt-a1i/archify -g.

Checklist

  • I used a minimal focused change and preserved existing typed JSON behavior unless the issue requires a contract change.
  • I ran the relevant targeted tests and npm test in archify/.
  • I added or updated a regression test for behavioral changes.
  • I checked generated artifacts and package freshness when their sources changed.
  • I removed secrets, private repository content, and customer data from fixtures and screenshots.

Ship the existing Skill as installable host plugins without changing
the npx skills add zip. Claude and Grok share one plugin leaf; Codex
keeps its own manifest plus agents/openai.yaml; Pi reads a root
package.json. Plugin files stay out of archify.zip.
@MickaelV0

Copy link
Copy Markdown
Author

Linked to #88 (no existing open issue covered this: #4 was Skills-CLI Codex/OpenCode and is closed; #68 is DSH; #18 is Obsidian).

@tt-a1i

tt-a1i commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Thanks for putting this together — native Claude/Grok/Codex/Pi installation is a valuable distribution surface for Archify, and the manifest structure is headed in the right direction.

I checked the fixed head 3413f38892f8413738d01ed9337baaaa96cec38d in an isolated worktree. The good news:

  • full suite: 659/659 pass
  • marketplace contract: 5/5 pass
  • Claude marketplace validation: pass
  • Grok plugin validation: pass
  • fresh ZIP contents match the committed archify.zip
  • package smoke: pass
  • all four host install commands return success in isolated config homes

There are two reproducible blockers before merge:

  1. Codex reports a successful install, but the discovered Skill payload is incomplete.

    After:

    codex plugin marketplace add <local-pr-checkout> --json
    codex plugin add archify@archify --json

    the installed plugin cache contains only skills/archify/agents/openai.yaml under the configured skills/ root. It is missing skills/archify/SKILL.md, bin/archify.mjs, schemas/, and assets/. The plugin root itself has a working CLI, but that is outside the Skill path declared by .codex-plugin/plugin.json, so Issue Add Claude, Grok, Codex, and Pi plugin marketplaces without changing Skill ZIP distribution #88's “Codex loads the Skill” acceptance item is not met.

  2. The symlink-based payload fails on a symlink-disabled checkout, which matches the common Windows Git shape.

    Reproduction:

    git clone -c core.symlinks=false <pr-checkout> repo
    node repo/archify/skills/archify/bin/archify.mjs doctor

    SKILL.md, bin, schemas, and assets become regular one-line files containing values such as ../../SKILL.md and ../../bin; doctor then fails with MODULE_NOT_FOUND. The current test proves the links resolve on this macOS checkout, but not that the installed payload works across supported hosts.

Could you replace the symlink fan-out with a materialized clean Skill payload (or another host-supported shape), then add black-box acceptance that installs through each host and verifies the installed Skill path contains SKILL.md, bin/archify.mjs, schemas/assets, and passes doctor? A Windows lane or an equivalent symlink-disabled checkout test should be part of that gate.

A few follow-ups to address in the same revision:

  • The new marketplace/plugin content is labeled 2.15.0, but the published v2.15.0 tag does not contain it. Please use the next release identity (or a clearly independent plugin version) so host caches and release provenance remain truthful.
  • Keep the existing manual/Skills CLI install paths as explicit fallbacks rather than replacing them in the README table.
  • Keep the native plugin payload clean: the installed distribution should not need repository-only tests, generators, or dependency metadata.
  • Please localize the new Chinese README cells and record the exact install/doctor receipts in the PR body.
  • GitHub currently reports no CI checks for this head, so the remote gate still needs to run.

The direction is good and the existing archify.zip isolation is preserved; the main remaining work is making the new native path genuinely executable after installation on every advertised host.

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.

Add Claude, Grok, Codex, and Pi plugin marketplaces without changing Skill ZIP distribution

2 participants