Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
d3f02f6
feat(plugins): add Cursor marketplace and per-platform plugin dirs on v2
Ketcap Sep 15, 2026
e593a54
feat(plugins): rename install id to make and pin Claude ref v2
Ketcap Sep 15, 2026
d10921b
fix(plugins): drop unknown allowedTools, add privacyPolicyUrl
Ketcap Sep 29, 2026
b3718b6
fix(plugins): use local plugin source and move docs command into plugin
Ketcap Sep 29, 2026
288c9b7
fix(plugins): ship real skills/assets in Claude plugin, drop marketpl…
Ketcap Sep 29, 2026
93f09b4
fix(plugins): resync Claude plugin skills copy with skills/
Ketcap Sep 30, 2026
2319a0f
fix(plugins): restore Codex plugin description and prompts, use /open…
Ketcap Sep 30, 2026
86877b4
chore: remove landing page and GitHub Pages deployment
Ketcap Sep 30, 2026
6b5f61a
docs: per-platform install instructions, point download links at main
Ketcap Sep 30, 2026
bb24259
feat(plugins): add support, terms and documentation URLs to Claude pl…
Ketcap Sep 30, 2026
a77094d
fix(plugins): use https support and documentation URLs
Ketcap Sep 30, 2026
9a06f94
fix(plugins): drop Cursor pluginRoot to avoid doubled path, rename en…
Ketcap Oct 1, 2026
fc822f7
feat(skills): remove make-api-shell in favor of upcoming Endpoints
Ketcap Oct 1, 2026
0de3904
refactor(plugins): make Codex plugin the skills source and generate a…
Ketcap Oct 2, 2026
cfdc50a
docs(plugins): use agreed Claude plugin description
Ketcap Oct 2, 2026
ee8bb78
docs(plugins): use agreed description for Cursor and Codex plugins
Ketcap Oct 2, 2026
abc85d3
fix(plugins): point documentationUrl at the MCP server docs
Ketcap Oct 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .agents/plugins/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
},
"plugins": [
{
"name": "make-skills",
"name": "make",
"interface": {
"displayName": "Make Skills"
},
Expand Down
15 changes: 7 additions & 8 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
{
"$schema": "https://json.schemastore.org/claude-code-marketplace.json",
"name": "make-marketplace",
"description": "Design, build, and deploy Make.com automation scenarios using expert skills — directly from Claude Code",
"owner": {
Expand All @@ -8,14 +9,11 @@
},
"plugins": [
{
"name": "make-skills",
"description": "Expert skills for exploring, building, running and debugging Make scenarios, plus reusable API-call shells",
"name": "make",
"displayName": "Make",
"description": "Turn recurring work you spot in Claude into Make automations and AI Agents that keep running in the cloud. Build, run, and manage them from Claude Chat, Cowork, or Claude Code, connected to the apps and data they need. Everything stays visible in Make's visual landscape, so you can inspect and change it anytime.",
"version": "0.1.7",
"source": {
"source": "github",
"repo": "integromat/make-skills",
"ref": "latest"
},
"source": "./plugins/make-skills-claude",
"author": {
"name": "Make",
"url": "https://www.make.com"
Expand All @@ -33,7 +31,8 @@
],
"homepage": "https://www.make.com",
"repository": "https://github.com/integromat/make-skills",
"license": "MIT"
"license": "MIT",
"strict": true
}
]
}
27 changes: 0 additions & 27 deletions .claude-plugin/plugin.json

This file was deleted.

2 changes: 1 addition & 1 deletion .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@
},
"enabledPlugins": {
"plugin-dev@claude-plugins-official": true,
"make-skills@make-marketplace": true
"make@make-marketplace": true
}
}
17 changes: 17 additions & 0 deletions .cursor-plugin/marketplace.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "make-marketplace",
"owner": {
"name": "Make",
"email": "support@make.com"
},
"metadata": {
"description": "Design, build, and deploy Make.com automation scenarios using expert skills in Cursor"
},
"plugins": [
{
"name": "make",
"source": "plugins/make-skills-cursor",
"description": "Turn recurring work you spot in Cursor into Make automations and AI Agents that keep running in the cloud. Build, run, and manage them from Cursor, connected to the apps and data they need. Everything stays visible in Make's visual landscape, so you can inspect and change it anytime."
}
]
}
32 changes: 3 additions & 29 deletions .github/workflows/build-release-assets.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Build release assets

# On a published Release: attach zips, deploy Pages from the tag, then fast-forward
# On a published Release: attach zips, then fast-forward
# the `latest` branch to the tag last — so `latest` only advances once assets have
# built. Fires because release-please publishes the Release as a GitHub App (the
# default GITHUB_TOKEN would not trigger this event).
Expand All @@ -11,7 +11,7 @@ on:
workflow_dispatch:
inputs:
tag:
description: Existing release tag to (re)build, deploy, and fast-forward latest to
description: Existing release tag to (re)build and fast-forward latest to
required: true

jobs:
Expand All @@ -34,34 +34,8 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: gh release upload "$TAG" dist/*.zip --clobber

deploy-pages:
runs-on: ubuntu-latest
permissions:
contents: read
pages: write
id-token: write
# Shared with static.yml so Pages deployments never overlap.
concurrency:
group: pages
cancel-in-progress: false
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
env:
TAG: ${{ github.event.release.tag_name || inputs.tag }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ env.TAG }}
- uses: actions/configure-pages@v5
- uses: actions/upload-pages-artifact@v3
with:
path: '.'
- id: deployment
uses: actions/deploy-pages@v5

fast-forward-latest:
needs: [build-assets, deploy-pages]
needs: [build-assets]
runs-on: ubuntu-latest
env:
TAG: ${{ github.event.release.tag_name || inputs.tag }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/manifest-check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ jobs:
with:
node-version: 24
- run: node scripts/check-skill-manifests.mjs
- run: node scripts/sync-plugins.mjs --check
39 changes: 0 additions & 39 deletions .github/workflows/static.yml

This file was deleted.

35 changes: 18 additions & 17 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,21 @@ This file provides guidance to Claude Code when working with this repository.

The skills connect to the remote Make MCP server:

- **`make`** — Make's scenario-management MCP server at `https://mcp.make.com/v2`. Tools are named `{subject}_{action}` (`environment_get`, `scenario_get`, `module_spec`, …) and the surface is gated by one all-or-nothing scope bundle. Authenticated via OAuth.
- **`make`** — Make's scenario-management MCP server (platform endpoints: `https://mcp.make.com/claude`, `/cursor`, `/openai`). Tools are named `{subject}_{action}` (`environment_get`, `scenario_get`, `module_spec`, …) and the surface is gated by one all-or-nothing scope bundle. Authenticated via OAuth.

## Repository Structure

```
.claude-plugin/
plugin.json # Plugin manifest (name, version, description)
marketplace.json # Marketplace metadata
.mcp.json # MCP server configuration (remote Make server)
skills/
marketplace.json # Claude Code marketplace manifest (repo root)
.cursor-plugin/
marketplace.json # Cursor Team Marketplace manifest (repo root)
plugins/
make-skills-codex/ # OpenAI Codex plugin (.codex-plugin/, .mcp.json) — SOURCE OF TRUTH
skills/ assets/ # edit skills HERE only
make-skills-claude/ # Claude Code plugin (.claude-plugin/, .mcp.json) — generated skills/ assets/
make-skills-cursor/ # Cursor plugin (.cursor-plugin/, mcp.json) — generated skills/ assets/
skills/ assets/ # generated copy of the above (npx skills add, build.sh, zips)
make-scenario-reference/ # Shared conventions — load first
SKILL.md
make-scenario-explore/ # Orienting, listing, explaining, health checks
Expand All @@ -29,21 +34,16 @@ skills/
examples/ # complete scenario_create calls per pattern
make-scenario-operations/ # Running, activating, debugging runs and webhooks
SKILL.md
make-api-shell/ # Reusable API-call / HTTP shell as a retrieval transport
SKILL.md
references/http-fallback.md
examples/
```

## Skills

Five auto-activated skills, split by use case:
Four auto-activated skills, split by use case:

- **make-scenario-reference** — what every tool assumes: scopes, `content` remarks are instructions, the structure-vs-configuration split, one call = one save, the refusal contract, "state a guess before acting on it". Loaded on a 403, an unexplained refusal, or a request no tool covers; the three or four rules a routine task needs are inlined as a "Ground rules" block in each task skill instead.
- **make-scenario-explore** — `environment_get` → `scenario_list` → `scenario_get` → `scenario_module_get`, and how to read the structural fields for a non-technical user.
- **make-scenario-building** — the build and edit workflows (`app_find` → `module_spec` → connections → `module_field_resolve` → `scenario_create` / `scenario_patch`), the decisions the tools leave to the model, and on-demand references for everything past a straight line.
- **make-scenario-operations** — `scenario_run` by trigger kind, activation, the execution list → get → inspect → module-get chain, webhook learning and inspection.
- **make-api-shell** — a three-module on-demand scenario (`StartSubscenario` → *Make an API Call* → `ReturnData`) or its `http:MakeRequest` fallback, built once per provider and connection and run through `scenario_run`.

## Writing skills for this surface

Expand All @@ -57,23 +57,24 @@ Five auto-activated skills, split by use case:

### Adding a new skill

1. Create `skills/<skill-name>/SKILL.md` with YAML frontmatter (`name`, `description`, `metadata.version` with the `# x-release-please-version` annotation).
1. Create `plugins/make-skills-codex/skills/<skill-name>/SKILL.md` with YAML frontmatter (`name`, `description`, `metadata.version` with the `# x-release-please-version` annotation).
2. Add reference files under `references/` and examples under `examples/`.
3. Add the skill to `skills.publish.json` and to `package.json` `agents.skills[]` (`npm run check:skills` fails otherwise).
3. Run `node scripts/sync-plugins.mjs`.
4. Add the skill to `skills.publish.json` and to `package.json` `agents.skills[]` (`npm run check:skills` fails otherwise).

### Modifying MCP configuration

Edit `.mcp.json`. The `make` server uses HTTP transport to Make's hosted endpoint at `https://mcp.make.com/v2`.
Edit each plugin's MCP config under `plugins/` — Claude: `make-skills-claude/.mcp.json` (`https://mcp.make.com/claude`), Cursor: `make-skills-cursor/mcp.json` (`/cursor`), Codex: `make-skills-codex/.mcp.json` (`/openai`).

### Branching & releasing (trunk-based)

`main` is the GitHub default branch, the trunk, and the working branch — all PRs land there directly. A separate **`latest`** branch is fast-forwarded to each released tag and stays reserved for that — don't push to it directly.

The Claude Code plugin marketplace pins plugin *content* to `latest` (`.claude-plugin/marketplace.json`'s `source: { source: "github", repo: "integromat/make-skills", ref: "latest" }`), so that channel only ever installs released code; marketplace metadata (name/description/version) still comes from `main` HEAD, which is cosmetic.
Each platform has its own plugin under `plugins/` (Claude, Cursor, Codex) and its own marketplace manifest at the repo root. **Edit skills only in `plugins/make-skills-codex/skills` (and `assets`)**, then run `node scripts/sync-plugins.mjs`: it writes real copies (directory submissions skip symlinks) to the root `skills/` + `assets/`, the Claude plugin and the Cursor plugin. CI runs it with `--check`. Marketplaces use local plugin sources, so installs track the branch the marketplace is added from. All channels, plus `npx skills add` and the raw `dist/` download links, resolve `main` HEAD, so they can pick up reviewed-but-unreleased commits between releases — an accepted gap.

- **Work:** open PRs against **`main`**, squash merge. PR titles are linted as Conventional Commits by the org `validate-pr.yml` (mono-generated), which release-please relies on.
- **Release cut:** release-please runs on `main` (org-managed `.github/workflows/release-please.yml`, generated from mono `libs/github-resources/src/repositories/make-skills.ts` via stock `releasePleaseWorkflow: true`). It opens/updates a **Release PR** that bumps the version across `package.json`, `package-lock.json`, both `plugin.json` files, `marketplace.json`, and each published `skills/*/SKILL.md` frontmatter (via the `# x-release-please-version` annotation), and regenerates `CHANGELOG.md`.
- **Promote:** merge the Release PR. release-please (authenticating as a GitHub App) creates the tag + GitHub Release, which fires `.github/workflows/build-release-assets.yml`. That workflow, in order: (1) `build.sh` → uploads zips as Release assets, (2) deploys GitHub Pages from the tag, (3) **fast-forwards `latest` to the tag** (App token; creates the branch on the first release).
- **Release cut:** release-please runs on `main` (org-managed `.github/workflows/release-please.yml`, generated from mono `libs/github-resources/src/repositories/make-skills.ts` via stock `releasePleaseWorkflow: true`). It opens/updates a **Release PR** that bumps the version across `package.json`, `package-lock.json`, the Claude, Cursor, and Codex plugin manifests, `marketplace.json`, and each published `skills/*/SKILL.md` frontmatter (via the `# x-release-please-version` annotation), and regenerates `CHANGELOG.md`.
- **Promote:** merge the Release PR. release-please (authenticating as a GitHub App) creates the tag + GitHub Release, which fires `.github/workflows/build-release-assets.yml`. That workflow, in order: (1) `build.sh` → uploads zips as Release assets, (2) **fast-forwards `latest` to the tag** (App token; creates the branch on the first release).

The version-bump targets beyond `package.json` live in `actions-toolkit.config.mjs` (`releasePlease.extraFiles`). Stable-alias zips (`dist/<name>.zip`) are committed so raw download links work before the first release; versioned zips are built ad-hoc in CI and attached to the Release. Download links resolve via `https://github.com/integromat/make-skills/releases/latest/download/<name>.zip` (a GitHub Release API alias, unrelated to the `latest` git branch).

Expand Down
Loading
Loading