Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
18 changes: 18 additions & 0 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,24 @@
"tagPattern": "m3l-output-governor--v*"
}
}
},
{
"name": "m3l-claude-mentor",
"description": "A Claude Code plugin that mentors one learner on Claude and Claude Code, adapting to their mastery level.",
"category": "productivity",
"homepage": "https://claude-mentor.monte3l.com",
"repository": "https://github.com/monte3l/m3l-claude-mentor",
"source": {
"source": "url",
"url": "https://github.com/monte3l/m3l-claude-mentor.git",
"ref": "m3l-claude-mentor--v0.1.0",
"sha": "6c289eaef535b6e257572b98245f151c1a092878"
},
"metadata": {
"m3l": {
"tagPattern": "m3l-claude-mentor--v*"
}
}
}
]
}
13 changes: 12 additions & 1 deletion .github/workflows/verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,18 @@ jobs:

- run: echo "$PWD/.github/ci-tools/node_modules/.bin" >> "$GITHUB_PATH"

- run: claude plugin validate --strict .
# Strict, with one accepted warning: the validator says "m3l-claude-mentor"
# reads as one of Anthropic's own names, because it contains "claude".
# The name is kept on purpose (tag, skill namespace and docs use it).
# Any other warning or any error still fails this step.
- name: Validate the catalog
run: |
claude plugin validate --strict --json . > validate.json || true
jq -e '
([.. | objects | select(has("errors")) | .errors[]] | length) == 0
and ([.. | objects | select(has("warnings")) | .warnings[]
| select(.message | test("reads as one of Anthropic") | not)] | length) == 0
' validate.json

# Adds the catalog to a throwaway HOME and installs every plugin from
# it, cloning each pinned commit.
Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ Entries never carry a `version`. The plugin's own `plugin.json` owns it, so a ne
| `m3l-groundwork-customize` | Adds the `/customize` skill, which tailors a project bootstrapped by `@monte3l/groundwork`. | [m3l-groundwork](https://github.com/monte3l/m3l-groundwork) |
| `m3l-prompt-optimizer` | Refines the prompts you type; a clear prompt passes through unchanged. | [m3l-prompt-optimizer](https://github.com/monte3l/m3l-prompt-optimizer) |
| `m3l-output-governor` | Measures where Claude Code's output tokens go and which levers cut them. | [m3l-output-governor](https://github.com/monte3l/m3l-output-governor) |
| `m3l-claude-mentor` | Mentors one learner on Claude and Claude Code, adapting to their mastery level. | [m3l-claude-mentor](https://github.com/monte3l/m3l-claude-mentor) |

## Requirements

Expand All @@ -89,7 +90,7 @@ Claude Code 2.1.292 or later for the one-step `claude plugin install <plugin> --

| Command | Purpose |
| --- | --- |
| `claude plugin validate --strict .` | Validates the catalog. It does not fetch remote sources. |
| `claude plugin validate --strict .` | Validates the catalog. It does not fetch remote sources. It warns that `m3l-claude-mentor` reads as an Anthropic name, a warning CI accepts and no other |
| `node bin/check-catalog.mjs` | Fails unless every pin matches its release tag, `plugin.json` and the table above. |
| `node bin/bump-pins.mjs --check` | Reports plugins with a newer release. `--apply` rewrites the pins. |
| `node --test "tests/*.test.mjs"` | Runs the unit tests for `bin/`. They need no network. `verify` adds a coverage gate of 80%. |
Expand Down
Loading