Skip to content

Commit f65f7ba

Browse files
FFawzyclaude
andauthored
chore: slim public repo to distribution-only (smoke + notify CI, remove .internal) (#19)
* chore: slim public repo to distribution-only Remove the .internal/ manifest generator and reduce CI to smoke tests plus the docs notification. The build/validate gate already runs upstream in the private dev repo before each release, and the release sync never touches .internal/, .github/, README, or LICENSE — so the public repo only needs the vendor dot-folders + their payload, minimal CI, and hand-owned README/LICENSE. - Delete .internal/ (generator, schemas, package.json, build scripts) - ci.yml: drop the validate job and npm build steps; smoke-test the committed layout only (claude plugin validate; codex install assertion); pin Node 22; drop the npm cache (no lockfile) - notify-docs.yml: add a paths filter so README/LICENSE/.github edits don't trigger the docs sync - update .github/workflows/README.md and tidy .gitignore Both Claude and Codex smoke tests pass against the committed layout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * remove comment --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 11214db commit f65f7ba

19 files changed

Lines changed: 23 additions & 4862 deletions

.github/workflows/README.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,12 @@
22

33
These workflows run in this repository's CI only. They are **not** part of any installed plugin — Claude Code, Cursor, and Copilot never read this folder when a customer installs the plugin.
44

5+
This repository is a **distribution mirror**: its skills, commands, and vendor manifests are generated and synced in from a private source repository via automated "chore(release): publish content" PRs. There is no build tooling in this repo — CI only smoke-tests the already-synced layout.
6+
57
What runs here:
68

7-
- **`ci.yml`Validate**regenerates every vendor manifest from `.internal/config.json`, fails if the diff isn't already committed, and runs frontmatter + JSON Schema checks.
8-
- **`ci.yml`Claude Code smoke test** — installs the Claude Code CLI on a clean runner and runs `claude plugin validate ./` against the live layout.
9-
- **`notify-docs.yml`** — on push to `main`, sends a `repository_dispatch` event (`event_type: skills-updated`) to `commercetools/commercetools-docs`, triggering its `sync-skills.yml` workflow.
9+
- **`ci.yml`Claude Code smoke test**installs the Claude Code CLI on a clean runner and runs `claude plugin validate ./` against the committed layout.
10+
- **`ci.yml`Codex smoke test** — installs the Codex CLI and verifies the committed `.agents/` marketplace installs and enables the plugin (offline, no auth).
11+
- **`notify-docs.yml`** — on push to `main` that changes published content (skills, commands, vendor manifests, `skills.sh.json`), sends a `repository_dispatch` event (`event_type: skills-updated`) to `commercetools/commercetools-docs`, triggering its `sync-skills.yml` workflow. Edits to `README.md`, `LICENSE`, or this `.github/` folder do not fire it.
1012

11-
If you're a plugin user, you can ignore this folder entirely. If you're contributing to the generator, see `.internal/README.md`.
13+
If you're a plugin user, you can ignore this folder entirely.

.github/workflows/ci.yml

Lines changed: 3 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -5,43 +5,7 @@ on:
55
push:
66
branches: [main]
77

8-
defaults:
9-
run:
10-
working-directory: .internal
11-
128
jobs:
13-
validate:
14-
name: Validate
15-
runs-on: ubuntu-latest
16-
timeout-minutes: 5
17-
steps:
18-
- uses: actions/checkout@v4
19-
20-
- uses: actions/setup-node@v4
21-
with:
22-
node-version-file: .internal/.nvmrc
23-
cache: npm
24-
cache-dependency-path: .internal/package-lock.json
25-
26-
- name: Install dependencies
27-
run: npm ci
28-
29-
- name: Build manifests
30-
run: npm run build
31-
32-
- name: Fail if build produced uncommitted changes
33-
working-directory: .
34-
run: |
35-
if [ -n "$(git status --porcelain)" ]; then
36-
echo "::error::Generated manifests are out of sync. Run 'npm run build' inside .internal/ and commit the result."
37-
git status
38-
git diff
39-
exit 1
40-
fi
41-
42-
- name: Validate (frontmatter + JSON Schema)
43-
run: npm run validate
44-
459
smoke-claude-code:
4610
name: Claude Code smoke test
4711
runs-on: ubuntu-latest
@@ -51,22 +15,12 @@ jobs:
5115

5216
- uses: actions/setup-node@v4
5317
with:
54-
node-version-file: .internal/.nvmrc
55-
cache: npm
56-
cache-dependency-path: .internal/package-lock.json
57-
58-
- name: Install dependencies
59-
run: npm ci
60-
61-
- name: Build manifests
62-
run: npm run build
18+
node-version: "22"
6319

6420
- name: Install Claude Code CLI
65-
working-directory: .
6621
run: npm install -g @anthropic-ai/claude-code
6722

6823
- name: Validate plugin layout against Claude Code (offline)
69-
working-directory: .
7024
run: claude plugin validate ./
7125

7226
smoke-codex:
@@ -76,31 +30,20 @@ jobs:
7630
steps:
7731
- uses: actions/checkout@v4
7832

79-
# @openai/codex requires Node 22+, above the repo's .nvmrc (20), so this
80-
# job pins its own version instead of reading the node-version-file.
33+
# Codex requires Node 22+; Claude Code requires 18+. Both run on 22.
8134
- uses: actions/setup-node@v4
8235
with:
8336
node-version: "22"
84-
cache: npm
85-
cache-dependency-path: .internal/package-lock.json
86-
87-
- name: Install dependencies
88-
run: npm ci
89-
90-
- name: Build manifests
91-
run: npm run build
9237

9338
- name: Install Codex CLI
94-
working-directory: .
9539
run: npm install -g @openai/codex
9640

9741
# Codex plugin subcommands are local file ops — no auth/network. `plugin add`
9842
# drives resolve_plugin_source_path (openai/codex#17066): it exits non-zero
99-
# if the generated source.path ever regresses to the blocked repo root ("./").
43+
# if the marketplace source.path ever regresses to the blocked repo root ("./").
10044
# `plugin list` exits 0 even when a plugin is "not installed", so we don't
10145
# rely on its exit code — we assert the plugin shows up installed + enabled.
10246
- name: Validate plugin layout against Codex (offline, no auth)
103-
working-directory: .
10447
env:
10548
CODEX_HOME: ${{ runner.temp }}/codex-home
10649
run: |

.github/workflows/notify-docs.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,22 @@
11
name: Notify docs repo
22

33
# Fires a `repository_dispatch` event (`event_type: skills-updated`) at
4-
# `commercetools/commercetools-docs` whenever `main` is updated here, so the
5-
# docs repo's `sync-skills.yml` workflow can pull the latest skills.
6-
# See: https://github.com/commercetools/commercetools-docs/issues/9513
4+
# `commercetools/commercetools-docs` whenever published content on `main`
5+
# changes here, so the docs repo's `sync-skills.yml` workflow can pull the
6+
# latest skills. Edits to README/LICENSE/.github do not trigger it.
77

88
on:
99
push:
1010
branches: [main]
11+
# Only fire on published content. Keep this list mirrored with the dev repo
12+
# public-release.yml `add-paths` (the source of truth for what gets synced).
13+
paths:
14+
- skills/**
15+
- commands/**
16+
- .claude-plugin/**
17+
- .cursor-plugin/**
18+
- .agents/**
19+
- skills.sh.json
1120

1221
jobs:
1322
dispatch:

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
.DS_Store
33
*.log
44

5-
# Defense in depth: node_modules should only exist under .internal/, but
6-
# guard against tools creating one at root anyway.
5+
# Defense in depth: this repo ships no Node project, but guard against tools
6+
# creating a node_modules anyway.
77
node_modules/
88

99
# Secrets (defense in depth — keep at root in case anything lands here)

.internal/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

.internal/.nvmrc

Lines changed: 0 additions & 1 deletion
This file was deleted.

.internal/AGENTS.md

Lines changed: 0 additions & 51 deletions
This file was deleted.

.internal/README.md

Lines changed: 0 additions & 66 deletions
This file was deleted.

.internal/config.json

Lines changed: 0 additions & 39 deletions
This file was deleted.

0 commit comments

Comments
 (0)