Skip to content

refactor: adopt tredl two-tier plugin layout - #3

Merged
neilgfoster merged 1 commit into
mainfrom
refactor/two-tier-plugin-layout
Jun 19, 2026
Merged

refactor: adopt tredl two-tier plugin layout#3
neilgfoster merged 1 commit into
mainfrom
refactor/two-tier-plugin-layout

Conversation

@neilgfoster

Copy link
Copy Markdown
Owner

What and why

This template was flat — .claude-plugin/plugin.json, skills/, src/example/, hooks/ all at the repo root with no marketplace.json, so it wasn't actually installable via the marketplace flow. This adopts tredl's two-tier layout: the repo root builds/tests/distributes the plugin; everything under plugin/ is the shippable payload that installs.

Changes

  • Move payload under plugin/ (git mv, history preserved): plugin/.claude-plugin/plugin.json, plugin/skills/, plugin/src/example/, plugin/hooks/. ${CLAUDE_PLUGIN_ROOT} already resolves to the plugin root, so internal command paths are unchanged.
  • New root .claude-plugin/marketplace.json (source: ./plugin) — makes the template installable; entry name must equal the plugin name (guarded by a test).
  • Full dev scaffolding (templated, generic — no tredl domain content): pyproject.toml (ruff+pytest), .github/workflows/{ci,release}.yml + PR template, tests/ (manifest resolution + client describe smoke), CHANGELOG.md, CONTRIBUTING.md.
  • Docs: README.md + CLAUDE.md updated for new paths, marketplace manifest, verify-before-done.
  • .gitignore: deduped the duplicate speckit/tredl block; added dev caches.

Verification

ruff check .          # All checks passed
ruff format --check . # 4 files clean
python3 -m pytest -q  # 3 passed
python3 plugin/src/example/client.py describe  # runs

🤖 Generated with Claude Code

Separate the build/distribution repo (root) from the shippable plugin payload
(plugin/), mirroring tredl's layout.

- Move plugin.json, skills/, src/, hooks/ under plugin/ (git mv, history kept).
  ${CLAUDE_PLUGIN_ROOT} already resolves to the plugin root, so internal command
  paths are unchanged.
- Add root .claude-plugin/marketplace.json (source: ./plugin) so the template is
  actually installable via the marketplace flow.
- Add full dev scaffolding: pyproject.toml (ruff+pytest), .github CI/release
  workflows + PR template, tests/ (manifest resolution + client smoke), CHANGELOG,
  CONTRIBUTING.
- Update README/CLAUDE.md for the new paths and verify-before-done.
- Dedupe the duplicate speckit/tredl .gitignore block; add dev caches.

Verified: ruff check + format clean, pytest 3 passed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@neilgfoster
neilgfoster merged commit ed6196b into main Jun 19, 2026
1 check passed
@neilgfoster
neilgfoster deleted the refactor/two-tier-plugin-layout branch June 19, 2026 22:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant