diff --git a/.agents/plugins/marketplace.json b/.agents/plugins/marketplace.json new file mode 100644 index 0000000..e3df808 --- /dev/null +++ b/.agents/plugins/marketplace.json @@ -0,0 +1,20 @@ +{ + "name": "robobryce-agitentic", + "interface": { + "displayName": "Agitentic" + }, + "plugins": [ + { + "name": "agitentic", + "source": { + "source": "local", + "path": "./plugins/agitentic" + }, + "policy": { + "installation": "AVAILABLE", + "authentication": "ON_INSTALL" + }, + "category": "Coding" + } + ] +} diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index c22c8d5..d87e609 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -7,7 +7,7 @@ { "name": "agitentic", "source": "./plugins/agitentic", - "description": "Agentic git/GitHub helpers as agentskills.io-compliant skills. Ships `agitentic:git-fork`, `agitentic:git-sync`, and `agitentic:git-create`." + "description": "Agentic git/GitHub helpers as agentskills.io-compliant skills. Ships `agitentic:git-fork`, `agitentic:git-clone`, `agitentic:git-sync`, and `agitentic:git-create`." } ] } diff --git a/README.md b/README.md index 63df8ba..01f693d 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Git skills for coding agents. They are [agentskills.io](https://agentskills.io)-compliant and -shipped as a Claude Code plugin. +shipped as an agent plugin for Claude Code, Codex, and Agent Skills-compatible harnesses. ## Skills @@ -24,16 +24,25 @@ Each skill lives under `plugins/agitentic/skills//` and is a self-contained agentskills.io skill (`SKILL.md` + a `scripts/` directory). -## Install (Claude Code) +## Install -The repo is a Claude Code plugin marketplace. Install via: +Claude Code: ``` -/plugin marketplace add robobryce/agitentic +/plugin marketplace add brycelelbach/agitentic /plugin install agitentic@robobryce-agitentic ``` -Then invoke a skill by name, e.g. `/agitentic:git-fork`. +Codex: + +```bash +codex plugin marketplace add brycelelbach/agitentic +codex plugin add agitentic@robobryce-agitentic +``` + +Other Agent Skills-compatible harnesses can install from the plugin payload at `plugins/agitentic/` or from the individual skill directories under `plugins/agitentic/skills/`. + +Invoke a skill using your host's skill syntax. In Claude Code, use `/agitentic:git-fork`; in Codex, use `$agitentic git-fork`. ## Use the scripts directly (no plugin) @@ -208,12 +217,16 @@ The following must be in your `$PATH`: ## Project structure ``` +.agents/plugins/ + marketplace.json - Codex and agent marketplace manifest .claude-plugin/ marketplace.json - Claude Code plugin marketplace manifest plugins/ agitentic/ .claude-plugin/ - plugin.json - Plugin manifest + plugin.json - Claude Code plugin manifest + .codex-plugin/ + plugin.json - Codex plugin manifest skills/ ${SKILL}/ - An individual skill SKILL.md - agentskills.io skill (metadata + instructions) diff --git a/plugins/agitentic/.codex-plugin/plugin.json b/plugins/agitentic/.codex-plugin/plugin.json new file mode 100644 index 0000000..bb2ab9f --- /dev/null +++ b/plugins/agitentic/.codex-plugin/plugin.json @@ -0,0 +1,38 @@ +{ + "name": "agitentic", + "version": "0.3.0", + "description": "Agentic git and GitHub helpers for fork, clone, sync, and repository creation workflows.", + "author": { + "name": "Bryce Lelbach", + "url": "https://github.com/brycelelbach" + }, + "homepage": "https://github.com/brycelelbach/agitentic", + "repository": "https://github.com/brycelelbach/agitentic", + "license": "Apache-2.0 WITH LLVM-exception", + "keywords": [ + "git", + "github", + "fork", + "agent-skills", + "coding" + ], + "skills": "./skills/", + "interface": { + "displayName": "Agitentic", + "shortDescription": "Git and GitHub contributor workflow skills.", + "longDescription": "Agitentic packages reusable agent skills for creating contributor clones, wiring upstream and fork remotes, syncing forks to upstream, and creating new GitHub repositories with standard settings.", + "developerName": "Bryce Lelbach", + "category": "Coding", + "capabilities": [ + "Interactive", + "Read", + "Write" + ], + "defaultPrompt": [ + "Fork this repository and wire upstream and fork remotes.", + "Sync my fork with upstream.", + "Create a new GitHub repository." + ], + "websiteURL": "https://github.com/brycelelbach/agitentic" + } +} diff --git a/test.bash b/test.bash index a079f09..736e136 100755 --- a/test.bash +++ b/test.bash @@ -76,15 +76,24 @@ run_lint() { (( fail == 0 )) || return 1 echo "--- plugin / marketplace manifests ---" - for f in .claude-plugin/marketplace.json plugins/*/.claude-plugin/plugin.json; do + for f in \ + .agents/plugins/marketplace.json \ + .claude-plugin/marketplace.json \ + plugins/*/.claude-plugin/plugin.json \ + plugins/*/.codex-plugin/plugin.json; do echo "==> jq . $f" jq -e . "$f" >/dev/null done jq -e '.name and .owner.name and (.plugins | type == "array" and length > 0)' \ .claude-plugin/marketplace.json >/dev/null + jq -e '.name and .interface.displayName and (.plugins | type == "array" and length > 0) and (.plugins[] | .name and .source.source == "local" and .source.path and .policy.installation and .policy.authentication and .category)' \ + .agents/plugins/marketplace.json >/dev/null for f in plugins/*/.claude-plugin/plugin.json; do jq -e '.name and .version and .description' "$f" >/dev/null done + for f in plugins/*/.codex-plugin/plugin.json; do + jq -e '.name and .version and .description and .skills == "./skills/"' "$f" >/dev/null + done echo "--- agentskills.io skills ---" python3 .github/validate_skills.py