Skip to content

Commit 405506c

Browse files
authored
Merge pull request #1 from intility/feat/open-source-readiness
feat: harden plugin and add open source readiness scaffolding
2 parents 05949ae + d37ffed commit 405506c

19 files changed

Lines changed: 186 additions & 22 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "intility",
3+
"description": "Claude Code plugins from Intility — tools for the Intility Developer Platform.",
4+
"owner": {
5+
"name": "Intility",
6+
"email": "devinfra@intility.no"
7+
},
8+
"plugins": [
9+
{
10+
"name": "cust-devplatform-plugin",
11+
"source": "./",
12+
"description": "A friendly companion for getting an app running on the Intility Developer Platform. Helps you create a cluster, deploy a containerized app, expose it on a URL, and update it later — without needing prior Kubernetes experience."
13+
}
14+
]
15+
}

.claude-plugin/plugin.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "cust-devplatform-plugin",
3+
"displayName": "Intility Developer Platform",
34
"version": "0.1.0",
45
"description": "A friendly companion for getting an app running on the Intility Developer Platform. Helps you create a cluster, deploy a containerized app, expose it on a URL, and update it later — without needing prior Kubernetes experience.",
56
"author": {

.github/dependabot.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: weekly
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: release-please
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
permissions:
8+
contents: write
9+
pull-requests: write
10+
11+
jobs:
12+
release-please:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: googleapis/release-please-action@45996ed1f6d02564a971a2fa1b5860e934307cf7 # v5.0.0
16+
with:
17+
config-file: .release-please-config.json
18+
manifest-file: .release-please-manifest.json

.github/workflows/validate.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
name: validate
2+
3+
on:
4+
pull_request:
5+
push:
6+
branches: [main]
7+
8+
jobs:
9+
validate:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
13+
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
14+
with:
15+
node-version: 22
16+
- name: Install Claude Code
17+
run: npm install -g @anthropic-ai/claude-code
18+
- name: Validate plugin
19+
run: claude plugin validate . --strict

.release-please-config.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json",
3+
"release-type": "simple",
4+
"include-component-in-tag": false,
5+
"packages": {
6+
".": {
7+
"extra-files": [
8+
{
9+
"type": "json",
10+
"path": ".claude-plugin/plugin.json",
11+
"jsonpath": "$.version"
12+
}
13+
]
14+
}
15+
}
16+
}

.release-please-manifest.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
".": "0.1.0"
3+
}

AGENTS.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# AGENTS.md
2+
3+
Guidance for AI coding agents (and humans) working on this repository.
4+
5+
## What this is
6+
7+
A Claude Code plugin: eight markdown skills that guide a customer from zero to a running, exposed app on the Intility Developer Platform. There is no application code — the "source" is SKILL.md prompts, YAML/JSON manifests, and reference docs.
8+
9+
## Layout
10+
11+
```
12+
.claude-plugin/plugin.json plugin manifest (version is bumped by Release Please — don't edit by hand)
13+
.claude-plugin/marketplace.json lets this repo serve as its own marketplace
14+
skills/<name>/SKILL.md one skill per directory
15+
skills/<name>/references/ templates and example conversations, loaded on demand
16+
```
17+
18+
## Conventions
19+
20+
- **Keep SKILL.md under 500 lines.** Move templates, long examples, and walkthroughs to `references/` and link them — they're loaded only when needed.
21+
- **Frontmatter:** `description` is written in third person and includes concrete trigger phrases. `allowed-tools` is the minimum the skill needs — prefer scoped patterns (`Bash(oc delete httproute*)`) over broad ones (`Bash(oc delete*)`); never pre-approve `find`, unscoped `curl`, or `sed` (use Glob/Read/Edit tools instead).
22+
- **Skills detect state, they don't assume it.** Every skill starts by querying (`oc whoami`, `indev cluster list`) rather than trusting conversation memory. Keep it that way.
23+
- **Tone:** plain language for Kubernetes beginners. One command at a time. Introduce a term after showing what it does.
24+
- **Safety rails stay:** `internal` gateway by default, two-step confirmation before `public`, `status` stays read-only, never create a second cluster without explicit double confirmation.
25+
26+
## Before committing
27+
28+
```bash
29+
claude plugin validate . --strict
30+
```
31+
32+
This is also enforced by CI on every PR.
33+
34+
## Commits
35+
36+
Conventional Commits (`fix:`, `feat:`, `docs:`, …) — Release Please derives versions from them. See [CONTRIBUTING.md](CONTRIBUTING.md).

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Changelog
2+
3+
## 0.1.0
4+
5+
First alpha. Eight skills covering the full journey: `getting-started`, `status`,
6+
`create-cluster`, `login`, `prepare-app`, `deploy-app`, `expose-app`, `update-image`.

CONTRIBUTING.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Contributing
2+
3+
Thanks for helping make the Developer Platform plugin better. It's an early alpha — feedback and small fixes are exactly what it needs.
4+
5+
## Found a bug? Have a wish?
6+
7+
Open an [issue](https://github.com/intility/cust-devplatform-plugin/issues). Include what you asked Claude to do, what it tried (the failing command is the best clue), and the cluster name if relevant.
8+
9+
## Making changes
10+
11+
1. The plugin is markdown and JSON — skills live in `skills/<name>/SKILL.md`, with longer material in `skills/<name>/references/`.
12+
2. Validate before committing:
13+
14+
```bash
15+
claude plugin validate . --strict
16+
```
17+
18+
3. To try your changes live, add your local checkout as a marketplace in Claude Code:
19+
20+
```
21+
/plugin marketplace add /path/to/cust-devplatform-plugin
22+
/plugin install cust-devplatform-plugin@intility
23+
```
24+
25+
4. Open a PR against `main`. The `validate` check must pass before merging.
26+
27+
## Commit messages
28+
29+
Use [Conventional Commits](https://www.conventionalcommits.org/) — releases are automated with Release Please, which derives the next version from commit messages:
30+
31+
- `fix: …` → patch release
32+
- `feat: …` → minor release
33+
- `feat!: …` or `BREAKING CHANGE:` → major release
34+
- `docs:`, `chore:`, `ci:` → no release
35+
36+
## Releases
37+
38+
Release Please opens (and keeps updating) a release PR as changes land on `main`. Merging that PR bumps `version` in `.claude-plugin/plugin.json`, updates `CHANGELOG.md`, and tags a GitHub Release.
39+
40+
**Why the version bump matters:** installed users only receive plugin updates when the `version` field changes — merging the release PR is what actually ships your change. Don't edit the version by hand.

0 commit comments

Comments
 (0)