Blazemeter/coreteam-claude-utils
Blazemeter/coreteam-claude-utils · 0 stars · 12 plugins
Marketplace
Install
/plugin marketplace add Blazemeter/coreteam-claude-utilsRun inside Claude Code, then install plugins from it. Check the repo's README before you run it.
Plugins 12
After adding the marketplace, install one with /plugin install <name>@coreteam-claude-base.
- 1base-toolsBase plugin with generic skill, slash-command, sub-agent, and hook templates plus working hook examples (audit logger, secret-on-write guard, skill-activation telemetry).
/plugin install base-tools@coreteam-claude-base - 2mendMend (WhiteSource) SCA knowledge — REST v1.3 auth, project-token lookup, alert fetch, CVE severity. Reusable read layer.
/plugin install mend@coreteam-claude-base - 3dep-remediationFix vulnerable dependencies correctly — golden rule (direct/BOM not transitive), advisory cross-check, defer breaking majors, per-stack recipes (composer/gradle/maven/pip/npm) + local build+test.
/plugin install dep-remediation@coreteam-claude-base - 4jenkinsBlazemeter blazect Jenkins gate — trigger a multibranch build with PUSH_TO_GCR + PERFORM_WHITESOURCE_SCAN, gate on the specific triggered build (not lastBuild), fix-forward, never gate on API_TESTS-CI; plus deploy a green branch to denv (USERNAME=JENKINS_USER) via the shared 'Deploy environment' job and gate on it.
/plugin install jenkins@coreteam-claude-base - 5githubBlazemeter GitHub branch/PR conventions — dated Docker-safe branch, commit+push via SSO gh, PR into the integration branch, tag PR title with the ticket id (in the title at creation when the ticket already exists).
/plugin install github@coreteam-claude-base - 6jiraCreate/transition Blazemeter MOB Jira tickets — board 5348, Task, Product/Scrum-Team/Sprint fields, assignee = repo owner, status In Progress, caller-supplied labels (e.g. mend_orch), optional parent issue (parent_key in jira config), bounded 429 backoff. Ticket summary/name is caller-supplied. Can be created before a PR exists, then updated with the PR link.
/plugin install jira@coreteam-claude-base - 7mend-blzEnd-to-end Mend remediation recipe — composes mend + dep-remediation + jenkins + github + jira into one loop (alerts → fix → Jenkins green → [crane only] a.blazemeter.com branch → denv deploy + fix-related API tests → Confluence report → Jira created first → PR titled with the ticket id → Jira description updated with the PR link → [crane only] mend-finalize follow-up message), registry-driven via services.json.
/plugin install mend-blz@coreteam-claude-base - 8mend-finalizePhase 2 of the crane Mend flow — after the crane PR merges to the integration branch and the CI build completes, fetches the real semantic version, updates HarborVersionsSettings.php in the a.blazemeter.com branch from latest-<branch> to the real version, opens the a.blazemeter.com PR into develop, and updates the MOB ticket. Run after merging the crane PR opened by mend-blz.
/plugin install mend-finalize@coreteam-claude-base - 9opensearchSearch BlazeMeter logs across denv/bzdev/ci/staging/prod — bundles a read-only opensearch-reader MCP server plus a skill that builds safe Lucene queries and condenses results.
/plugin install opensearch@coreteam-claude-base - 10master-investigationStructured playbook for investigating a misbehaving BlazeMeter master/test/session (stuck, wrong metric, silent failure, intermittent, customer-reported) across denv/bzdev/ci/staging/prod — composes OpenSearch log search, Mongo (main + bigdata) state, GCS session artifacts, and source-code verification across taurus/taurus-cloud/a.blazemeter.com/bzm-crane.
/plugin install master-investigation@coreteam-claude-base - 11pr-reviewAddress and incorporate GitHub PR review comments for any repo — fetch, validate against the repo's own conventions, incorporate minimally, auto-detect and run tests/lint, one-pass code-review sub-agent, commit, reply to every thread, optional polling.
/plugin install pr-review@coreteam-claude-base - 12ci-triageTriage backend API_TESTS-CI failure noise from the BlazeMeter Slack monitoring channels: find persistent vs. flaky failures, identify the likely culprit commit, and check for an already-open PR before ever drafting a notification.
/plugin install ci-triage@coreteam-claude-base
Files
coreteam-claude-base — reusable Claude Code plugin marketplace
A project-agnostic Claude Code plugin marketplace. Ships generic skills, slash commands, sub-agents, and hooks plus an example layout you can fork into your own org's marketplace.
Replace
<owner>in the badge URL above with the GitHub org once this repo's home is final.
⚠️ This codebase lives in TWO repositories — they MUST stay in sync
This project is published from both:
- PerfectoMobileDev/claude-base — https://github.com/PerfectoMobileDev/claude-base
- Blazemeter/claude-base — https://github.com/Blazemeter/claude-base
Every commit on every branch must appear on both. An auto-mirror GitHub Action propagates pushes from one side to the other; a strict CI check (
Verify sibling sync) blocks merges tomainwhen the two diverge. See LINKED_REPOS.md for the contract, the recovery procedure, and the one-time PAT / branch-protection setup.
Quick install (for users)
Inside Claude Code:
/plugin marketplace add <owner>/<repo>
/plugin install base-tools@coreteam-claude-base
(Replace <owner>/<repo> with the GitHub path where this repo lives.)
That's it — Claude will auto-load all skills, register all slash commands, expose all sub-agents, and activate plugin hooks. Updates land automatically when you run /plugin update.
To verify:
/plugin list # confirms base-tools is installed
/base-tools:example-command # try the example slash command
To update and reload the plugin:
/plugin marketplace update coreteam-claude-base
/reload-plugins
What's inside
coreteam-claude-base/
├── .claude-plugin/
│ └── marketplace.json # Catalog — lists every plugin in this repo
├── plugins/
│ └── base-tools/ # The (currently single) bundled plugin
│ ├── .claude-plugin/
│ │ └── plugin.json # Plugin manifest (name, version, license)
│ ├── skills/ # Auto-loaded by Claude based on description
│ │ ├── example-skill/
│ │ │ └── SKILL.md # Template — copy to start a new skill
│ │ └── summarize-pr/ # Real working skill — reference implementation
│ │ ├── SKILL.md
│ │ └── tests/
│ │ └── cases.yaml # Behavioral test cases
│ ├── commands/ # Slash commands (/base-tools:<name>)
│ │ └── example-command.md # Template — copy to start a new command
│ ├── agents/ # Sub-agents (Agent tool / /agents menu)
│ │ └── example-agent.md # Template — copy to start a new agent
│ ├── hooks/ # Hook scripts referenced from hooks.json
│ │ ├── README.md
│ │ ├── audit-file-changes.sh
│ │ ├── block-secrets-on-write.sh
│ │ ├── block-ec2-cloud-mutations.sh # Safety: compute is read-only
│ │ ├── block-datastore-mutations.sh # Safety: DynamoDB/S3/Redis/Mongo read-only
│ │ ├── block-shared-branch-git.sh # Safety: protect master/shared branches
│ │ ├── block-credentials-in-commit.sh # Safety: no key files / secrets in commits
│ │ ├── block-test-skips.sh # Safety: don't skip failing tests
│ │ ├── block-hook-bypass.sh # Safety: don't bypass the hooks
│ │ └── log-skill-activation.py
│ └── hooks.json # Plugin-level event hooks (Pre/Post ToolUse, Skill, etc.)
├── policy/
│ └── allowed-tools.yaml # Tool allowlist + denylist enforced by validator
├── scripts/
│ ├── validate.py # Python validator (schema, standards, policy, secrets)
│ ├── behavioral_runner.py # Schema-lint + opt-in Anthropic-API skill tests
│ ├── aggregate_telemetry.py # Summarize skill-activation telemetry
│ ├── requirements.txt # pip dep: pyyaml
│ ├── requirements-eval.txt # Optional: anthropic SDK (for API runs)
│ ├── README.md
│ └── tests/
│ └── test_validate.py # Regression tests (stdlib only)
├── .github/
│ ├── CODEOWNERS
│ ├── PULL_REQUEST_TEMPLATE.md
│ └── workflows/plugin-validate.yml # CI: structural / SAST / secret-scan / claude-cli
├── CONTRIBUTING.md
├── LICENSE
└── README.md
Adding new artifacts
A new skill
cp -r plugins/base-tools/skills/example-skill plugins/base-tools/skills/<your-skill> $EDITOR plugins/base-tools/skills/<your-skill>/SKILL.md
Edit the YAML frontmatter:
name— kebab-case ID (must match directory name).description— Claude reads this to decide when to auto-load the skill. Be specific about triggers ("Use when the user asks to X").allowed-tools— optional space-separated list of tools the skill can use without prompting.
Once committed, users get it on the next /plugin update.
A new slash command
cp plugins/base-tools/commands/example-command.md plugins/base-tools/commands/<your-command>.md
Slash commands are flat .md files (no subdirectory). After install they're invokable as /base-tools:<your-command>. They support $ARGUMENTS, $1, $2, and dynamic context injection with !`shell-cmd`.
A new sub-agent
cp plugins/base-tools/agents/example-agent.md plugins/base-tools/agents/<your-agent>.md
Sub-agents are flat .md files with name, description, model, and tools frontmatter. They show up under /agents and can be called from the main agent via the Agent tool with subagent_type: "<your-agent>".
A new hook
Hook scripts live under plugins/base-tools/hooks/ (one script per file). The wiring is in plugins/base-tools/hooks.json, which maps events + matchers to script paths.
Workflow:
# 1. Drop your script in the hooks folder. Use a shebang.
$EDITOR plugins/base-tools/hooks/<your-hook>.sh
# 2. Register it in hooks.json under the right event:
# "<EventName>": [{ "matcher": "<regex>", "hooks": [{ "type": "command",
# "command": "${CLAUDE_PLUGIN_ROOT}/hooks/<your-hook>.sh" }] }]
# 3. (Linux/macOS) make it executable
chmod +x plugins/base-tools/hooks/<your-hook>.sh
Supported events:
PreToolUse,PostToolUse(withmatcherregex on tool name) — non-zero exit onPre*blocks the tool call.PreCommand,PostCommandPreFile,PostFilePreSkill,PostSkillPostSubagentSpawn
Environment provided to hook scripts:
${CLAUDE_PLUGIN_ROOT}— install path of this plugin (use forcommand:references inhooks.jsonand for sourcing helpers).${CLAUDE_PLUGIN_DATA}— per-user persistent data dir (use for logs, audit state — survives plugin upgrades).${CLAUDE_SESSION_ID}— current session.- stdin — the tool/event payload as JSON. Parse with
jqorjson.load(sys.stdin).
See plugins/base-tools/hooks/README.md for full conventions and the bundled example scripts:
audit-file-changes.sh—PostToolUselogger for Write/Edit calls.block-secrets-on-write.sh—PreToolUseguard that blocks writes containing obvious secret patterns.log-skill-activation.py—PreSkilltelemetry collector.
Safety guardrails (block destructive actions Claude shouldn't take autonomously — see STANDARDS.md → "Safety guardrails"):
block-ec2-cloud-mutations.sh— no AWS EC2 / GCP Compute instance create/start/stop/terminate/delete (read-only allowed).block-datastore-mutations.sh— no destructive DynamoDB / S3 / Redis / Mongo CLI ops (reads/downloads/dumps allowed).block-shared-branch-git.sh— no push tomaster/main, no force push / rebase /reset --hardon shared branches.block-credentials-in-commit.sh— no committing key/credential files or staged secrets.block-test-skips.sh— no disabling/skipping failing tests to green CI.block-hook-bypass.sh— no--no-verify,core.hooksPathoverride, or inlined override prefix to bypass the hooks above.
A human-exported CLAUDE_SAFETY_OVERRIDE=1 bypasses these for a session (logged to ${CLAUDE_PLUGIN_DATA}/base-tools/safety-override.log).
Adding a second plugin
This marketplace supports many plugins. To add one:
mkdir -p plugins/<new-plugin>/.claude-plugin/- Create
plugins/<new-plugin>/.claude-plugin/plugin.json(copybase-tools/.claude-plugin/plugin.jsonand rename). - Add an entry to the top-level
.claude-plugin/marketplace.jsonpluginsarray. - Drop
skills/,commands/,agents/,hooks/,hooks.jsonunder the new plugin directory.
Users then install with /plugin install <new-plugin>@coreteam-claude-base.
Validating before pushing
Five independent CI jobs gate every merge. Each runs on its own runner — a failure in one diagnoses without blocking insight into the others.
Layer 1 — structural / standards / tool policy / smoke secrets (Python)
pip install -r scripts/requirements.txt # one-time, single dep (pyyaml) python scripts/validate.py # report python scripts/validate.py --strict # treat warnings as errors
scripts/validate.py covers:
- Schema for
marketplace.json, everyplugin.json, everySKILL.md/ command / agent frontmatter, andhooks.json. - Standards: kebab-case names, name ↔ directory parity, SKILL.md length budget, agent file-stem ↔ name parity, no human-centric files inside skill dirs.
- Hook wiring: every referenced script exists; each script has a shebang; every event name is known.
- Tool policy: every
allowed-tools(skills/commands) andtools(agents) entry is checked againstpolicy/allowed-tools.yaml. UnscopedBashis forbidden by default. MCP tools (mcp__*) are exempt. - Smoke secret scan: high-signal patterns (AWS keys, private key headers, GH / Slack / GitLab / Google tokens) so contributors catch obvious leaks before pushing.
See scripts/README.md for the full check list, the tool policy, and instructions for adding project-specific rules.
Layer 2 — SAST on hook scripts (shellcheck, ruff)
Hook scripts run unsupervised on every developer's machine — they're the highest-leverage surface. CI lints them:
shellcheck plugins/**/hooks/**/*.sh— catches unquoted vars, missing error handling, dangerous patterns.ruff check plugins/**/hooks/**/*.py— catches bareexcept, eval-of-user-input, broken imports, lint.
Replicate locally:
shellcheck plugins/*/hooks/*.sh pip install ruff && ruff check plugins/*/hooks/*.py
Layer 3 — comprehensive secret scan (gitleaks)
CI runs gitleaks/gitleaks-action with fetch-depth: 0 so it scans the whole history, not just the PR diff. To replicate locally:
gitleaks detect --source . --redact
Layer 4 — Claude Code's own validator
# Inside Claude Code: /plugin validate . # Or from the terminal (requires the Claude CLI): claude plugin validate .
This is the canonical schema check that mirrors what Claude Code does at plugin-install time.
Layer 5 — Behavioral tests (opt-in)
Each skill can ship tests/cases.yaml with prompts + assertions. scripts/behavioral_runner.py lints them every PR and — if the ANTHROPIC_API_KEY secret is configured — runs them against the Anthropic API:
python scripts/behavioral_runner.py --lint # always works ANTHROPIC_API_KEY=... pip install -r scripts/requirements-eval.txt python scripts/behavioral_runner.py # API mode
See plugins/base-tools/skills/summarize-pr/tests/cases.yaml for a worked example.
Supply-chain hardening
Every action used in .github/workflows/plugin-validate.yml is pinned by full commit SHA (with # vN comment for readability) — a compromised tag can't escalate into CI. When bumping versions:
gh api repos/<owner>/<repo>/commits/v<N> --jq .sha
Replace the SHA in the workflow and update the trailing comment. Never use a floating tag (@v4, @main).
Release process
- Default: leave
"version"out ofplugin.json— Claude Code uses the git commit SHA so every merge tomainis automatically the latest release. - Explicit versioning: set
"version": "x.y.z"and bump it for every user-visible release. Users won't get updates until the string changes. - Channels: maintain two marketplace entries (e.g.
stableandlatestrefs) if you need staged rollouts.
Why this format
Claude Code natively discovers plugins published as marketplaces, so users get auto-loading skills, namespaced slash commands, an /agents menu, plugin hooks, and one-command updates. See the official Claude Code plugin docs for the full spec.
License
See LICENSE (if present) at repo root. The base-tools plugin manifest is set to UNLICENSED by default — change it to MIT, Apache-2.0, or whichever SPDX identifier applies before publishing externally.
{
"name": "coreteam-claude-base",
"description": "Reusable Claude Code plugin marketplace — generic skills, slash commands, sub-agents, and hooks. Use as a starting point or fork into project-specific marketplaces.",
"owner": {
"name": "coreteam-claude-base maintainers"
},
"plugins": [
{
"name": "base-tools",
"source": "./plugins/base-tools",
"description": "Base plugin with generic skill, slash-command, sub-agent, and hook templates plus working hook examples (audit logger, secret-on-write guard, skill-activation telemetry).",
"version": "0.3.0",
"keywords": [
"base",
"templates",
"skills",
"commands",
"agents",
"hooks",
"starter"
],
"category": "templates"
},
{
"name": "mend",
"source": "./plugins/mend",
"description": "Mend (WhiteSource) SCA knowledge — REST v1.3 auth, project-token lookup, alert fetch, CVE severity. Reusable read layer.",
"version": "0.1.0",
"keywords": [
"mend",
"whitesource",
"sca",
"cve",
"security"
],
"category": "development"
},
{
"name": "dep-remediation",
"source": "./plugins/dep-remediation",
"description": "Fix vulnerable dependencies correctly — golden rule (direct/BOM not transitive), advisory cross-check, defer breaking majors, per-stack recipes (composer/gradle/maven/pip/npm) + local build+test.",
"version": "0.3.2",
"keywords": [
"dependencies",
"remediation",
"composer",
"gradle",
"maven",
"pip",
"npm",
"bom"
],
"category": "development"
},
{
"name": "jenkins",
"source": "./plugins/jenkins",
"description": "Blazemeter blazect Jenkins gate — trigger a multibranch build with PUSH_TO_GCR + PERFORM_WHITESOURCE_SCAN, gate on the specific triggered build (not lastBuild), fix-forward, never gate on API_TESTS-CI; plus deploy a green branch to denv (USERNAME=JENKINS_USER) via the shared 'Deploy environment' job and gate on it.",
"version": "0.1.6",
"keywords": [
"jenkins",
"ci",
"blazect",
"gcr",
"build-gate",
"denv-deploy"
],
"category": "development"
},
{
"name": "github",
"source": "./plugins/github",
"description": "Blazemeter GitHub branch/PR conventions — dated Docker-safe branch, commit+push via SSO gh, PR into the integration branch, tag PR title with the ticket id (in the title at creation when the ticket already exists).",
"version": "0.2.0",
"keywords": [
"github",
"pull-request",
"branch",
"gh"
],
"category": "development"
},
{
"name": "jira",
"source": "./plugins/jira",
"description": "Create/transition Blazemeter MOB Jira tickets — board 5348, Task, Product/Scrum-Team/Sprint fields, assignee = repo owner, status In Progress, caller-supplied labels (e.g. mend_orch), optional parent issue (parent_key in jira config), bounded 429 backoff. Ticket summary/name is caller-supplied. Can be created before a PR exists, then updated with the PR link.",
"version": "0.3.2",
"keywords": [
"jira",
"mob",
"atlassian",
"ticket"
],
"category": "development"
},
{
"name": "mend-blz",
"source": "./plugins/mend-blz",
"description": "End-to-end Mend remediation recipe — composes mend + dep-remediation + jenkins + github + jira into one loop (alerts → fix → Jenkins green → [crane only] a.blazemeter.com branch → denv deploy + fix-related API tests → Confluence report → Jira created first → PR titled with the ticket id → Jira description updated with the PR link → [crane only] mend-finalize follow-up message), registry-driven via services.json.",
"version": "0.7.2",
"keywords": [
"mend",
"whitesource",
"security",
"cve",
"vulnerabilities",
"blazemeter",
"recipe"
],
"category": "development"
},
{
"name": "mend-finalize",
"source": "./plugins/mend-finalize",
"description": "Phase 2 of the crane Mend flow — after the crane PR merges to the integration branch and the CI build completes, fetches the real semantic version, updates HarborVersionsSettings.php in the a.blazemeter.com branch from latest-<branch> to the real version, opens the a.blazemeter.com PR into develop, and updates the MOB ticket. Run after merging the crane PR opened by mend-blz.",
"version": "0.1.3",
"keywords": [
"mend",
"crane",
"harbor",
"version",
"blazemeter",
"finalize"
],
"category": "development"
},
{
"name": "opensearch",
"source": "./plugins/opensearch",
"description": "Search BlazeMeter logs across denv/bzdev/ci/staging/prod — bundles a read-only opensearch-reader MCP server plus a skill that builds safe Lucene queries and condenses results.",
"version": "0.1.0",
"keywords": [
"opensearch",
"logs",
"observability",
"lucene",
"bzdev",
"denv",
"search"
],
"category": "observability"
},
{
"name": "master-investigation",
"source": "./plugins/master-investigation",
"description": "Structured playbook for investigating a misbehaving BlazeMeter master/test/session (stuck, wrong metric, silent failure, intermittent, customer-reported) across denv/bzdev/ci/staging/prod — composes OpenSearch log search, Mongo (main + bigdata) state, GCS session artifacts, and source-code verification across taurus/taurus-cloud/a.blazemeter.com/bzm-crane.",
"version": "0.2.1",
"keywords": [
"blazemeter",
"master",
"session",
"taurus",
"investigation",
"incident",
"debugging"
],
"category": "observability"
},
{
"name": "pr-review",
"source": "./plugins/pr-review",
"description": "Address and incorporate GitHub PR review comments for any repo — fetch, validate against the repo's own conventions, incorporate minimally, auto-detect and run tests/lint, one-pass code-review sub-agent, commit, reply to every thread, optional polling.",
"version": "0.1.0",
"keywords": [
"pr",
"pull-request",
"code-review",
"github",
"review-comments"
],
"category": "development"
},
{
"name": "ci-triage",
"source": "./plugins/ci-triage",
"description": "Triage backend API_TESTS-CI failure noise from the BlazeMeter Slack monitoring channels: find persistent vs. flaky failures, identify the likely culprit commit, and check for an already-open PR before ever drafting a notification.",
"version": "0.1.0",
"keywords": [
"ci",
"jenkins",
"slack",
"triage",
"blazemeter",
"api-tests"
],
"category": "development"
}
]
}Facts
- Kind
- Marketplace
- Repo
- Blazemeter/coreteam-claude-utils
- Group
- Uncategorized
- Stars
- 0
- Marketplace name
- coreteam-claude-base
- Owner
- coreteam-claude-base maintainers
- License
- MIT
- Language
- Python
- Created
- 2026-06-25
- Last push
- 2026-09-24
- Plugins
- 12
- 1obra/superpowersobra/superpowersAn agentic skills framework & software development methodology that works.297.9k
- 2affaan-m/everything-claude-codeaffaan-m/ECCThe agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.277.5k
- 3anthropics/skillsanthropics/skillsPublic repository for Agent Skills180.6k
- 4f/prompts.chatf/prompts.chatf.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.172.7k
- 5anthropics/claude-codeanthropics/claude-codeClaude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.150.3k
- 6nextlevelbuilder/ui-ux-pro-max-skillnextlevelbuilder/ui-ux-pro-max-skillAn AI skill that provides design intelligence for building professional UI/UX across multiple platforms.135k