feat(skill): preps for 3.4.0#33
Merged
Merged
Conversation
The skill documented the old behaviour as a limitation — "a page's nav entry uses a fixed Blocks icon, the manifest `icon` is not used for nav (only on the Admin/store card)". TREK now resolves the manifest `icon` against the full lucide set everywhere it draws a plugin: navbar, bottom nav, trip-planner tab, dashboard widget header, settings card, Admin row, and the store tile. Also record the parts that bite authors: - Any lucide name works, not the 14 the host used to map. An unknown name falls back to Blocks *silently*, so a typo just looks generic. - `validate` warns on a name lucide doesn't have; registry CI rejects it. This is a CI-only gate — `preflight` does NOT replay it, so the warning is the only local catch. - The store tile reads the registry ENTRY's `icon` (the aggregated index carries no manifests). `entry`/`publish` copy it from the manifest, so unlike requiredAddons there is nothing to hand-add. It is not parity-checked.
…eld list - cli.md: the two-step, all-58 permission wizard ships IN 1.5.0, so the old 18-permission wizard was "SDK <= 1.4.x", not "<= 1.5.x" — the latter overlapped the target version and contradicted manifest.md. - publishing.md: manifest<->entry parity compares trek and operatorEgress (per releaseEntryParity in the SDK), not nativeModules; fix the compared-field list so it no longer reads as if trek isn't checked.
- issue-template contact links and publishing.md fork/PR commands now point at liketrek/* (the koffi example homepage stays mauriceboe/ trek-plugin-koffi — that repo did not move) - plugin.json homepage/repository now point at liketrek/Plugin-Skill - cli.md: the create wizard is a single grouped multiselect (58 grants under 13 area headings), not the rejected two-step areas flow - publishing.md: the entry schema's strictness is unevaluatedProperties: false, and the CI-computed downloadCount exists only in the published index shape, never in a submitted entry
Codex does not read .claude/skills or a top-level skills/ directory; it scans .agents/skills from the working directory up to the repo root, plus $HOME/.agents/skills. Add a directory symlink so a plain clone of this repo works in Codex with no setup, and document the install path in the README. The SKILL.md itself needs no change — its frontmatter is already limited to name + description, which is exactly what Codex requires.
plugin.json declared "license": "MIT" without shipping the license text. marketplace.json had no description, which `claude plugin validate` flags. The CI check is a dependency-free Node script rather than a `claude plugin validate` call, so it needs nothing installed in the runner. It validates manifest shape, SKILL.md frontmatter (name/description, slug form, the 1024-char cap, unquoted-colon breakage), relative link resolution, and that every skill has a matching .agents/skills entry for Codex discovery.
Mirrors the layout OpenAI ships in openai/plugins: .codex-plugin/plugin.json with "skills": "./skills/", plus .agents/plugins/marketplace.json so the repo can be added with `codex plugin marketplace add`. The .agents/skills symlink already covered plain clones; this covers installing it from anywhere. Codex requires an explicit version, so the Codex manifest carries one even though the Claude manifest deliberately omits it. Extends the validator with structural checks for both files — Codex publishes no schema and has no validate CLI, so these are shape checks only.
workflow_dispatch takes a semver string, rewrites the version in .codex-plugin/plugin.json, runs the format validator, commits, and optionally pushes a v<version> tag. The commit is attributed to the actor who dispatched the run rather than to github-actions[bot]. The underlying script runs standalone too: node .github/scripts/set-version.mjs 3.4.1
A v* tag (which the set-version workflow can push) validates the repo, checks the tag against the manifest version, packages the skill, and attaches the archive to a GitHub release. The archive is reproducible — sorted entries, pinned timestamps, executable bits preserved — so the same input always produces the same sha256. It holds trek-plugin-dev/ at the top level with SKILL.md at its root, which is what the Claude Skills API expects on upload and what unzipping into a skills directory should yield. A .skill copy ships alongside the .zip because it was asked for. It is byte-identical; no tool consumes that extension.
fbnlrz
force-pushed
the
feat/preps-for-3.3.1
branch
from
July 18, 2026 20:02
765796e to
49cd6d6
Compare
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.
merge once 3.4.0 is live