feat(marketplace): initialize plugin marketplace with cozy-deploy skill#1
feat(marketplace): initialize plugin marketplace with cozy-deploy skill#1
Conversation
Set up Claude Code plugin marketplace structure and add the cozy-deploy skill for deploying Cozystack packages to dev clusters via make + cozyhr. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: ZverGuy <maximbel2003@gmail.com>
|
Caution Review failedPull request was closed or merged during review No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
📝 WalkthroughWalkthroughIntroduces Claude plugin marketplace infrastructure for Cozystack, including a marketplace manifest, documentation, and a Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Code Review
This pull request initializes the Cozystack Claude Plugins repository, providing the infrastructure for Claude Code integration and the cozy-deploy skill for package management. The review feedback identifies a directory nesting error in the marketplace configuration and recommends replacing several hardcoded placeholders in the deployment instructions with dynamic variables and standard Kubernetes labels to ensure the commands are executable.
| { | ||
| "name": "cozy-deploy", | ||
| "description": "Deploy a Cozystack package to a dev cluster via make + cozyhr — handles fresh install and dev-loop iteration with ExternalArtifact support", | ||
| "source": "./skills/cozy-deploy", |
There was a problem hiding this comment.
The source path points to ./skills/cozy-deploy, but the SKILL.md file is currently located at skills/cozy-deploy/skills/cozy-deploy/SKILL.md. This double-nesting will likely prevent the plugin from being loaded correctly. Please ensure the plugin content is located directly within the source directory or update the path.
|
|
||
| ```bash | ||
| REGISTRY=$REGISTRY TAG=$TAG PLATFORM=linux/amd64 BUILDER=multi PUSH=1 \ | ||
| make --directory packages/<section>/<pkg> image |
| ### Mode A — Fresh install | ||
|
|
||
| ```bash | ||
| make --directory packages/<section>/<pkg> apply NAMESPACE=$NAMESPACE NAME=$RELEASE |
| ### Mode C — Dev-loop with inline chart | ||
|
|
||
| ```bash | ||
| make --directory packages/<section>/<pkg> apply NAMESPACE=$NAMESPACE NAME=$RELEASE |
| kubectl --context $CONTEXT --namespace $NAMESPACE get pods -l app=<app-label> \ | ||
| -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[0].image}{"\n"}{end}' |
There was a problem hiding this comment.
The <app-label> placeholder is undefined and will cause the command to fail. Since this is a Cozystack package (likely managed by Flux/Helm), using the standard app.kubernetes.io/instance label with the $RELEASE name is a more reliable approach. Also, showing all container images ensures sidecars are visible.
| kubectl --context $CONTEXT --namespace $NAMESPACE get pods -l app=<app-label> \ | |
| -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[0].image}{"\n"}{end}' | |
| kubectl --context $CONTEXT --namespace $NAMESPACE get pods -l app.kubernetes.io/instance=$RELEASE \ | |
| -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.spec.containers[*].image}{"\n"}{end}' |
| - If yes — run the resume command, then watch the pods for a minute to confirm Flux pulls back control: | ||
| ```bash | ||
| cozyhr --context $CONTEXT resume --namespace $NAMESPACE $RELEASE | ||
| kubectl --context $CONTEXT --namespace $NAMESPACE get pods -l app=<app-label> --watch |
There was a problem hiding this comment.
| Unless `--keep-values` was passed, revert the values.yaml changes so a subsequent `git commit -a` does not accidentally bake the ttl.sh digest into the PR: | ||
|
|
||
| ```bash | ||
| git --git-dir=<repo>/.git --work-tree=<repo> checkout -- packages/<section>/<pkg>/values.yaml |
There was a problem hiding this comment.
The <repo> placeholder and explicit git directory flags are unnecessary as Phase 2 confirms the working directory is the repository root. Using $PKG_DIR avoids hardcoded path placeholders.
| git --git-dir=<repo>/.git --work-tree=<repo> checkout -- packages/<section>/<pkg>/values.yaml | |
| git checkout -- $PKG_DIR/values.yaml |
Summary
Test plan
/plugin marketplace add cozystack/ccp/plugin install cozy-deploy@cozystack-claude-pluginsSummary by CodeRabbit
New Features
cozy-deployplugin enabling deployment of Cozystack packages to dev clusters with support for fresh installs and dev-loop iterations.Documentation