Address review: official marketplace flow, accurate changelog, stricter CI

- Document the official Claude Code marketplace flow (/plugin marketplace add +
  /plugin install material-3@material-3-skill) instead of the unverified --subdir form.
- Restore the historical v1.0.0 changelog and add a new v1.1.1 release note with a
  migration line for users on the old install command.
- bin/ci now cross-checks marketplace source.path against the plugin manifest and runs
  'claude plugin validate --strict' when the CLI is available.
- Bump plugin version to 1.1.1.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01C7iVdviBb4QhpAT1UsuyHV
This commit is contained in:
Ivan Morgillo
2026-06-29 14:13:00 +02:00
parent ac2c9ea3d6
commit f97200508a
4 changed files with 44 additions and 7 deletions
+27 -5
View File
@@ -1,6 +1,6 @@
# Material Design 3 Skill
**Version 1.1.0 · released 2026-05-20**Adds Google I/O 2026 Material guidance for expressive layout, spacing, Compose-first Android, and updated expressive components.
**Version 1.1.1 · released 2026-06-29**Fixes Claude Code installation by shipping a plugin marketplace manifest; documents the working install commands.
A comprehensive skill for AI coding assistants that can load `SKILL.md` files, covering Google's [Material Design 3](https://m3.material.io/) (Material You) UI system.
@@ -10,6 +10,16 @@ A comprehensive skill for AI coding assistants that can load `SKILL.md` files, c
## What's new
### 1.1.1 — 2026-06-29
**Fixed — Claude Code installation.**
- The repo now ships a plugin **marketplace manifest** at `.claude-plugin/marketplace.json` and moves the plugin manifest to `skills/material-3/.claude-plugin/plugin.json`. Previously the documented `claude plugin install github:hamen/material-3-skill` failed with *"not found in any configured marketplace"* ([#8](https://github.com/hamen/material-3-skill/issues/8)).
- Documented the install paths that actually work — `npx skills` and the Claude Code marketplace flow (see [Installation](#installation)).
- **Migration**: if you installed (or tried to) with the old `claude plugin install github:hamen/material-3-skill` command, reinstall with one of the commands in [Installation](#installation).
Read the full release notes: [v1.1.1](https://github.com/hamen/material-3-skill/releases/tag/v1.1.1).
### 1.1.0 — 2026-05-20
**Updated — Google I/O 2026 Material guidance.**
@@ -22,9 +32,9 @@ Read the full release notes: [v1.1.0](https://github.com/hamen/material-3-skill/
**Added — portable skill packaging.**
- **Claude Code install**: install via `npx skills` or `/plugin add hamen/material-3-skill --subdir skills/material-3` (see [Installation](#installation)).
- **Claude Code one-command install**: install directly with `claude plugin install github:hamen/material-3-skill`.
- **Portable skill layout**: the skill now lives at `skills/material-3/SKILL.md`, with references under `skills/material-3/references/`.
- **Plugin manifest**: `skills/material-3/.claude-plugin/plugin.json` declares the `material-3` plugin metadata, and the root `.claude-plugin/marketplace.json` exposes it to Claude Code, while keeping the skill content usable by other skill-aware assistants.
- **Plugin manifest**: `.claude-plugin/plugin.json` declares the `material-3` plugin metadata for Claude Code while keeping the skill content usable by other skill-aware assistants.
Read the full release notes: [v1.0.0](https://github.com/hamen/material-3-skill/releases/tag/v1.0.0).
@@ -114,11 +124,23 @@ This is the preferred path for Codex, Claude Code, Cursor, and multi-agent setup
### Claude Code plugin install
Add this repository as a plugin marketplace, then install the `material-3` plugin from it.
From inside an interactive Claude Code session:
```text
/plugin add hamen/material-3-skill --subdir skills/material-3
/plugin marketplace add hamen/material-3-skill
/plugin install material-3@material-3-skill
```
Claude Code reads `skills/material-3/.claude-plugin/plugin.json` and registers `skills/material-3/SKILL.md`.
Or from your shell:
```bash
claude plugin marketplace add hamen/material-3-skill
claude plugin install material-3@material-3-skill
```
The root `.claude-plugin/marketplace.json` points at `skills/material-3`, where Claude Code reads `.claude-plugin/plugin.json` and registers `SKILL.md`.
### Codex or manual skill install
+14
View File
@@ -10,6 +10,20 @@ fi
jq -e . .claude-plugin/marketplace.json >/dev/null
jq -e . skills/material-3/.claude-plugin/plugin.json >/dev/null
# Cross-check: the marketplace must point at the skill subdir that holds plugin.json.
plugin_path="$(jq -r '.plugins[0].source.path' .claude-plugin/marketplace.json)"
if [[ ! -f "$plugin_path/.claude-plugin/plugin.json" ]]; then
printf 'marketplace.json source.path (%s) has no .claude-plugin/plugin.json\n' "$plugin_path" >&2
exit 1
fi
# Strict schema validation when the Claude Code CLI is available.
if command -v claude >/dev/null 2>&1; then
claude plugin validate --strict .claude-plugin/marketplace.json
claude plugin validate --strict "$plugin_path"
fi
bash tests/plugin_layout_test.sh
printf 'CI checks passed.\n'
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "material-3",
"version": "1.1.0",
"version": "1.1.1",
"description": "Material Design 3 (Material You) implementation skill for Jetpack Compose, Flutter, and web.",
"author": {
"name": "Ivan Morgillo"
+2 -1
View File
@@ -50,7 +50,8 @@ expect_file "skills/material-3/references/color-system.md"
expect_absent "SKILL.md"
expect_absent "references"
expect_contains "README.md" "/plugin add hamen/material-3-skill --subdir skills/material-3"
expect_contains "README.md" "/plugin marketplace add hamen/material-3-skill"
expect_contains "README.md" "/plugin install material-3@material-3-skill"
expect_contains "README.md" "skills/material-3/SKILL.md"
if [[ "$failures" -gt 0 ]]; then