Skip to content
Open
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: 12 additions & 6 deletions .claude-plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,24 @@
"name": "Chris Fonnesbeck"
},
"metadata": {
"description": "Python analytics skills for Bayesian modeling and reactive notebooks",
"version": "1.0.0"
"description": "Python analytics plugins for Bayesian modeling and reactive notebooks",
"version": "2.0.0"
},
"plugins": [
{
"name": "pymc-modeling",
"description": "PyMC Bayesian modeling plugin with skills, agents, hooks, and tools",
"source": {
"source": "github",
"repo": "pymc-labs/pymc-modeling"
}
},
{
"name": "analytics",
"description": "Python analytics plugin — Bayesian modeling with PyMC, reactive notebooks with marimo",
"description": "Python analytics plugin — reactive notebooks with marimo",
"source": "./",
"skills": [
"./skills/pymc-modeling",
"./skills/marimo-notebook",
"./skills/pymc-testing"
"./skills/marimo-notebook"
]
}
]
Expand Down
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "analytics",
"description": "Python analytics skills for Bayesian modeling and reactive notebooks",
"description": "Python analytics skills reactive notebooks with marimo",
"version": "1.0.0",
"author": {
"name": "Chris Fonnesbeck"
Expand Down
54 changes: 2 additions & 52 deletions hooks/suggest-skill.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,43 +15,7 @@ fi
# Convert to lowercase for matching
prompt_lower=$(echo "$prompt" | tr '[:upper:]' '[:lower:]')

suggest_pymc=false
suggest_marimo=false
suggest_pymc_testing=false

# PyMC keywords
pymc_keywords=(
"bayesian" "pymc" "mcmc" "posterior" "inference" "arviz"
"prior" "sampling" "divergence" "waic" "loo" "hierarchical model"
"gaussian process" "bart" "nuts" "hmc" "nutpie" "probabilistic"
"credible interval" "posterior predictive" "prior predictive"
"trace" "r_hat" "rhat" "ess_bulk" "convergence" "hsgp"
"zero.inflated" "mixture model" "multilevel" "brms"
"logistic regression.*bayes" "poisson regression.*bayes"
"censored" "truncated" "ordinal" "causal inference"
"do.calculus" "pm\\.model" "pm\\.sample" "pm\\.normal"
)

for kw in "${pymc_keywords[@]}"; do
if echo "$prompt_lower" | grep -qE "$kw"; then
suggest_pymc=true
break
fi
done

# PyMC testing keywords
pymc_testing_keywords=(
"testing pymc" "test.*pymc" "pymc.*test" "mock.sample"
"mock_sample" "pytest.*pymc" "pymc.*pytest" "unit test.*model"
"test fixture.*pymc" "ci.*pymc" "pymc.*ci"
)

for kw in "${pymc_testing_keywords[@]}"; do
if echo "$prompt_lower" | grep -qE "$kw"; then
suggest_pymc_testing=true
break
fi
done

# Marimo keywords
marimo_keywords=(
Expand All @@ -69,23 +33,9 @@ for kw in "${marimo_keywords[@]}"; do
fi
done

# Build suggestion message
messages=()
if [ "$suggest_pymc" = true ]; then
messages+=("Consider using the **pymc-modeling** skill for Bayesian modeling guidance.")
fi
if [ "$suggest_marimo" = true ]; then
messages+=("Consider using the **marimo-notebook** skill for reactive notebook guidance.")
fi
if [ "$suggest_pymc_testing" = true ]; then
messages+=("Consider using the **pymc-testing** skill for PyMC model testing guidance.")
fi

if [ ${#messages[@]} -gt 0 ]; then
combined=$(printf '%s ' "${messages[@]}")
# Output as JSON systemMessage for Claude
jq -n --arg msg "$combined" '{
"systemMessage": $msg
jq -n '{
"systemMessage": "Consider using the **marimo-notebook** skill for reactive notebook guidance."
}'
fi

Expand Down
10 changes: 0 additions & 10 deletions skills.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,9 @@
{
"skills": [
{
"name": "pymc-modeling",
"description": "Bayesian statistical modeling with PyMC v5+",
"version": "1.0.0"
},
{
"name": "marimo-notebook",
"description": "Reactive Python notebooks with marimo",
"version": "1.0.0"
},
{
"name": "pymc-testing",
"description": "Testing PyMC models with pytest",
"version": "1.0.0"
}
]
}
Loading