diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 62bd169..b6ccde0 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -7,7 +7,7 @@ }, "plugins": [ { - "name": "cust-devplatform-plugin", + "name": "ext-devplatform-plugin", "source": "./", "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." } diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index 846768a..9fc5907 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,5 +1,5 @@ { - "name": "cust-devplatform-plugin", + "name": "ext-devplatform-plugin", "displayName": "Intility Developer Platform", "version": "0.1.0", "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.", @@ -7,8 +7,8 @@ "name": "Intility", "email": "devinfra@intility.no" }, - "homepage": "https://github.com/intility/cust-devplatform-plugin", - "repository": "https://github.com/intility/cust-devplatform-plugin", + "homepage": "https://github.com/intility/ext-devplatform-plugin", + "repository": "https://github.com/intility/ext-devplatform-plugin", "license": "MIT", "keywords": ["intility", "kubernetes", "openshift", "beginner", "deploy"] } diff --git a/AGENTS.md b/AGENTS.md index dc65c5f..4502326 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,7 +4,7 @@ Guidance for AI coding agents (and humans) working on this repository. ## What this is -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. +A Claude Code plugin: eight markdown skills that guide an external user 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. ## Layout diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 93a52fd..8a3afd2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,7 @@ Thanks for helping make the Developer Platform plugin better. It's an early alph ## Found a bug? Have a wish? -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. +Open an [issue](https://github.com/intility/ext-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. ## Making changes @@ -18,8 +18,8 @@ Open an [issue](https://github.com/intility/cust-devplatform-plugin/issues). Inc 3. To try your changes live, add your local checkout as a marketplace in Claude Code: ``` - /plugin marketplace add /path/to/cust-devplatform-plugin - /plugin install cust-devplatform-plugin@intility + /plugin marketplace add /path/to/ext-devplatform-plugin + /plugin install ext-devplatform-plugin@intility ``` 4. Open a PR against `main`. The `validate` check must pass before merging. diff --git a/README.md b/README.md index ab8a500..8eb611c 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ -> ⚠️ **Early alpha.** This is the first cut of customer-facing skills for the Intility Developer Platform. Skill names, prompts, defaults, and behaviours will change as we learn. Don't depend on it for anything critical yet — but please [open an issue](https://github.com/intility/cust-devplatform-plugin/issues) when something feels off, surprises you, or could be clearer. That feedback is the whole point of an alpha. +> ⚠️ **Early alpha.** This is the first cut of external-facing skills for the Intility Developer Platform. Skill names, prompts, defaults, and behaviours will change as we learn. Don't depend on it for anything critical yet — but please [open an issue](https://github.com/intility/ext-devplatform-plugin/issues) when something feels off, surprises you, or could be clearer. That feedback is the whole point of an alpha. ## Features @@ -22,8 +22,8 @@ **1. Install this plugin** ```bash -/plugin marketplace add intility/cust-devplatform-plugin -/plugin install cust-devplatform-plugin@intility +/plugin marketplace add intility/ext-devplatform-plugin +/plugin install ext-devplatform-plugin@intility ``` **2. Tell Claude what you want** @@ -96,7 +96,7 @@ A few things that aren't obvious up front: ## Found a bug? Have a wish? -Open an issue: **[github.com/intility/cust-devplatform-plugin/issues](https://github.com/intility/cust-devplatform-plugin/issues)** +Open an issue: **[github.com/intility/ext-devplatform-plugin/issues](https://github.com/intility/ext-devplatform-plugin/issues)** Helpful to include: diff --git a/skills/create-cluster/SKILL.md b/skills/create-cluster/SKILL.md index ce457d6..4c707bd 100644 --- a/skills/create-cluster/SKILL.md +++ b/skills/create-cluster/SKILL.md @@ -1,6 +1,6 @@ --- name: create-cluster -description: Creates a single cluster on the Intility Developer Platform for a customer. Use when the user asks to "create a cluster", "get me a cluster", "set up a cluster", or is being routed here by the getting-started skill. Creates ONE cluster with sensible defaults unless the user explicitly asks for more, since this plugin assumes a many-apps-on-one-cluster model. +description: Creates a single cluster on the Intility Developer Platform for an external user. Use when the user asks to "create a cluster", "get me a cluster", "set up a cluster", or is being routed here by the getting-started skill. Creates ONE cluster with sensible defaults unless the user explicitly asks for more, since this plugin assumes a many-apps-on-one-cluster model. allowed-tools: - AskUserQuestion - Bash(indev account show) diff --git a/skills/expose-app/SKILL.md b/skills/expose-app/SKILL.md index 051de4a..b4dfc81 100644 --- a/skills/expose-app/SKILL.md +++ b/skills/expose-app/SKILL.md @@ -24,9 +24,9 @@ End state: `curl http:///` returns a non-error status code. ## Background (one paragraph, share with the user as needed) -The platform runs **Envoy Gateway**. Two pre-built gateways are typically available: `internal` (only reachable from inside the customer's network) and `public` (open to the internet). You don't create gateways — you just create an HTTPRoute that points at one. TLS is handled for you, so HTTPRoutes use plain HTTP on port 80; users still get HTTPS at the URL. +The platform runs **Envoy Gateway**. Two pre-built gateways are typically available: `internal` (only reachable from inside the organization's own network) and `public` (open to the internet). You don't create gateways — you just create an HTTPRoute that points at one. TLS is handled for you, so HTTPRoutes use plain HTTP on port 80; users still get HTTPS at the URL. -The domain each gateway uses is the customer's own — not hardcoded in this skill. We read it from the gateway's listener config. +The domain each gateway uses is the organization's own — not hardcoded in this skill. We read it from the gateway's listener config. ## Step 0 — Confirm access @@ -48,7 +48,7 @@ oc get gateways -n envoy-gateway-system Look at the `PROGRAMMED` column. Only offer gateways that show `True`. If no gateway is programmed, stop and tell the user to reach out to the Developer Platform Admins via their collaboration channel (samhandlingskanal) — the cluster isn't ready for ingress. -For each programmed gateway, read its listener hostname template — that's the customer's domain. The pattern is usually a wildcard like `*.apps.example.com`: +For each programmed gateway, read its listener hostname template — that's the organization's domain. The pattern is usually a wildcard like `*.apps.example.com`: ```bash oc get gateway -n envoy-gateway-system \ @@ -79,7 +79,7 @@ Putting an app on the public gateway means anyone on the internet can hit it. Mo ``` Q: "Just to confirm — putting this on the public gateway means anyone on the internet can reach it. Are you sure?" Options: - - "Yes, this is meant to be public (e.g. marketing site, public API, customer-facing app)" + - "Yes, this is meant to be public (e.g. marketing site, public API, user-facing app)" - "No, switch to internal" — go back and use the internal gateway instead ``` @@ -182,7 +182,7 @@ curl -s -o /dev/null -w "%{http_code}\n" http:/// - `200`–`399` → working - `502` / `503` → route is attached but the pod isn't responding. Check `oc get pods -n ` — is it `Running`? Are the ports right (`Service.targetPort` should match the container port)? -- Timeout on the `internal` gateway from a remote machine → likely a network reachability issue. The internal hostname may only resolve from inside the customer's network or via VPN. Ask: "Are you connected to the network this cluster is normally reached from?" +- Timeout on the `internal` gateway from a remote machine → likely a network reachability issue. The internal hostname may only resolve from inside the organization's network or via VPN. Ask: "Are you connected to the network this cluster is normally reached from?" ## Step 8 — Report diff --git a/skills/expose-app/references/httproute-templates.md b/skills/expose-app/references/httproute-templates.md index fa63846..321af98 100644 --- a/skills/expose-app/references/httproute-templates.md +++ b/skills/expose-app/references/httproute-templates.md @@ -26,10 +26,10 @@ Substitute the `*` with the app's subdomain (default: the app name). | Gateway | Reachable from | |---|---| -| `internal` | Only the customer's internal network (the safe default for almost every app) | +| `internal` | Only the organization's internal network (the safe default for almost every app) | | `public` | Anywhere on the internet — only when the app is meant to be public-facing | -The actual domain (`example.com` above) is the customer's own; this skill never assumes a specific domain. +The actual domain (`example.com` above) is the organization's own; this skill never assumes a specific domain. --- diff --git a/skills/expose-app/references/usage-examples.md b/skills/expose-app/references/usage-examples.md index e38ea49..69710be 100644 --- a/skills/expose-app/references/usage-examples.md +++ b/skills/expose-app/references/usage-examples.md @@ -22,7 +22,7 @@ You: Yes [curl http://shop.apps.example.com/ → 200] Your app is live at: http://shop.apps.example.com/ - (Gateway: internal — only reachable on the customer network) + (Gateway: internal — only reachable on your organization's network) ``` --- diff --git a/skills/login/SKILL.md b/skills/login/SKILL.md index 7301379..45a1960 100644 --- a/skills/login/SKILL.md +++ b/skills/login/SKILL.md @@ -67,7 +67,7 @@ If `oc whoami` returns their username and `oc get nodes` lists nodes (any status - **`oc whoami` says "Unauthorized"**: token didn't get saved — re-run login - **`oc get nodes` says "Forbidden"**: the account was created but no roles attached yet. Tell the user to check with their cluster owner or reach out to the Developer Platform Admins via their collaboration channel (samhandlingskanal). -Do not go further down the troubleshooting tree than this. Customers should escalate; they shouldn't be debugging RBAC. +Do not go further down the troubleshooting tree than this. External users should escalate; they shouldn't be debugging RBAC. ## Quick reference diff --git a/skills/status/SKILL.md b/skills/status/SKILL.md index 45ca7c3..e8130f0 100644 --- a/skills/status/SKILL.md +++ b/skills/status/SKILL.md @@ -83,7 +83,7 @@ Apps: ┌─ myapp (namespace: myapp) │ image: ghcr.io/me/myapp:v2 │ status: 1/1 running - │ URL: http://myapp.apps.example.com (internal — only reachable on the customer network) + │ URL: http://myapp.apps.example.com (internal — only reachable on your organization's network) │ ┌─ api (namespace: api) │ image: ghcr.io/me/api:latest @@ -97,7 +97,7 @@ Status notation: - No httproute for a namespace → say "not exposed" For the gateway label, derive it from the parentRef name: -- `internal` → `(internal — only reachable on the customer network)` +- `internal` → `(internal — only reachable on your organization's network)` - `public` → `(public — reachable from the open internet)` — flag this visually so the user notices, e.g. with a `⚠` prefix or by underlining it If you see a `public` route the user may have set up earlier and forgotten about, mention it explicitly at the end of the report: "FYI, `` is on the public gateway — make sure that's still intended."