mirror of
https://github.com/openprose/prose.git
synced 2026-09-19 05:55:05 +08:00
93e91325d7
OpenProse already installed as a Claude Code plugin via `npx skills add openprose/prose`, but the packaging surface was uneven: missing manifest fields, no native Codex envelope, no plugin-track release process, and a couple of doc/audience inconsistencies. This commit closes those gaps without changing skill behavior. OpenProse now ships from the repo root as a dual-host plugin envelope — `.claude-plugin/` for Claude Code, `.codex-plugin/` plus `.agents/plugins/` for Codex — with `skills/open-prose/` as the shared core and `prose ...` as the only user-facing command surface. Codex envelope: - .codex-plugin/plugin.json with first-class catalog metadata (displayName, developer, descriptions, category, capabilities, defaultPrompt, privacy/terms URLs). - .agents/plugins/marketplace.json local-source catalog, installable by anyone who clones this repo. Claude Code manifest hygiene: - Added license, homepage, and skills: ./skills so the plugin is self-describing. - Added marketplace.json metadata.description, clearing the sole `claude plugin validate` warning. - Deleted the stale .claude-plugin/README.md. Skill metadata: - Added license: MIT to skills/open-prose/SKILL.md frontmatter (no top-level version — Claude Code strips unrecognized top-level frontmatter keys; see anthropics/claude-code#13005). - Fixed an inconsistent parse-table cell pair in skills/open-prose/deps.md. Audience boundaries: - AGENTS.md is now contributor-only per agents.md. - Recommended consumer [agents] Codex config moved to README.md alongside the Quickstart. Release process: - scripts/bump-version.sh + .version-bump.json bump both manifests atomically, with a --check mode for CI. The Claude Code marketplace deduplicates by version, so a forgotten bump silently strands users on cached copies; this gate prevents that. - scripts/extract-changelog.sh pulls a single `## [X.Y.Z]` block out of CHANGELOG.md. - RELEASE.md documents the manual flow. - .github/workflows/release.yml verifies declared versions match on `v*` tag push and publishes a GitHub Release. CI: - New plugin-manifest.yml: every-PR gate validating both plugin.json files, asserting declared skills paths resolve, and running bump-version.sh --check. - cli-skills-smoke.yml: added `npx skills list openprose/prose` discoverability check alongside the existing install smoke. - openprose-smoke/run.ts: removed a dead commands/prose-*.md regex.
56 lines
1.6 KiB
YAML
56 lines
1.6 KiB
YAML
name: CLI Skills Smoke
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: "17 9 * * 1"
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
concurrency:
|
|
group: cli-skills-smoke-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
jobs:
|
|
skills-install:
|
|
name: Install OpenProse skill with skills CLI
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install skill in a disposable home
|
|
run: |
|
|
set -euo pipefail
|
|
temp_home="$RUNNER_TEMP/home"
|
|
mkdir -p "$temp_home"
|
|
|
|
env \
|
|
HOME="$temp_home" \
|
|
XDG_CONFIG_HOME="$temp_home/.config" \
|
|
npx -y skills@1.5.3 add openprose/prose \
|
|
--skill open-prose \
|
|
--global \
|
|
--yes \
|
|
--copy \
|
|
--full-depth \
|
|
--agent codex \
|
|
--agent claude-code
|
|
|
|
test -f "$temp_home/.agents/skills/open-prose/SKILL.md"
|
|
test -f "$temp_home/.claude/skills/open-prose/SKILL.md"
|
|
grep -q "name: open-prose" "$temp_home/.agents/skills/open-prose/SKILL.md"
|
|
grep -q "name: open-prose" "$temp_home/.claude/skills/open-prose/SKILL.md"
|
|
|
|
- name: Discoverability smoke (skills list)
|
|
run: |
|
|
set -euo pipefail
|
|
temp_home="$RUNNER_TEMP/list-home"
|
|
mkdir -p "$temp_home"
|
|
env HOME="$temp_home" XDG_CONFIG_HOME="$temp_home/.config" \
|
|
npx -y skills@1.5.3 list openprose/prose | tee /tmp/skills-list.txt
|
|
grep -q "open-prose" /tmp/skills-list.txt
|
|
|