From configure-plugin
Extracts, diffs, and propagates GitHub workflows and tooling configs like renovate.json across organization repos. Use for syncing improvements via extract/diff/apply modes.
npx claudepluginhub laurigates/claude-plugins --plugin configure-pluginThis skill is limited to using the following tools:
Extract, compare, and propagate tooling config improvements across FVH repos.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Extract, compare, and propagate tooling config improvements across FVH repos.
| Use this skill when... | Use another approach when... |
|---|---|
| Comparing a workflow/config across all FVH repos | Configuring a single repo's workflow from scratch — use /configure:workflows |
| Propagating an improvement from one repo to many | Debugging a failing CI run — use github-actions-inspection |
| Identifying which repos have outdated configs | Creating a reusable workflow — use /configure:reusable-workflows |
| Extracting novel patterns from a repo to share | Checking a single repo's compliance — use /configure:status |
/Users/lgates/repos/ForumViriumHelsinkifd -t d -d 1 . /Users/lgates/repos/ForumViriumHelsinki --exclude .git --exclude node_modulespwdParse mode and options from command arguments:
extract [repo-name] — Identify improvements in a source repodiff <file-pattern> — Compare a specific config across all reposapply <file-pattern> [--from repo] [--to repo1,repo2,...|--all] — Propagate config to targets--from <repo> — Source repo for apply mode (default: best version detected)--to <repo1,repo2,...> — Target repos (comma-separated)--all — Target all repos that have the file--dry-run — Show what would change without creating branches/PRs (default behavior)--confirm — Actually create branches and PRsFiles tracked for cross-repo sync, organized by sync strategy:
Copy verbatim — no repo-specific variations expected.
| File Pattern | Description |
|---|---|
.github/workflows/claude.yml | Claude Code workflow |
renovate.json | Renovate dependency updates |
Shared structure with specific fields that vary per repo.
| File Pattern | Variation Points |
|---|---|
.github/workflows/auto-merge-image-updater.yml | Branch prefix pattern |
.github/workflows/release-please.yml | Publish job, extra steps |
.github/workflows/renovate.yml | Standalone (infrastructure) vs reusable caller (all others) |
Standard recipe/section names must conform; bodies are project-specific.
| File Pattern | Conformance Target |
|---|---|
justfile | Standard recipe names from justfile-template conventions |
Group by detected stack, extract general best practices only.
| File Pattern | Stack Detection |
|---|---|
Dockerfile* | package.json → Node, pyproject.toml → Python, go.mod → Go, Cargo.toml → Rust |
.github/workflows/container-build.yml | Same as Dockerfile |
| File Pattern | Notes |
|---|---|
release-please-config.json | Varies by project type |
.release-please-manifest.json | Version tracking |
skaffold.yaml | Dev environment config |
Goal: Scan a repo and identify improvements that could benefit other repos.
If repo name provided, use /Users/lgates/repos/ForumViriumHelsinki/<repo-name>.
Otherwise use the current working directory (must be inside an FVH repo).
Scan for all tracked config categories:
fd -t f -d 3 '(claude|renovate|auto-merge|release-please|container-build|Dockerfile|justfile|skaffold)' <repo-path>
Also check:
.github/workflows/*.ymljustfileDockerfile*renovate.jsonrelease-please-config.json.release-please-manifest.jsonskaffold.yamlFor each file found:
default, help, dev, build, clean, lint, format, format-check, test, pre-commit, ci). Report missing standard recipes and non-standard names (e.g., check instead of lint).latest).dockerignore presentConfig Extract Report: <repo-name>
====================================
Wholesale Configs:
claude.yml ✅ Matches canonical (sha: abc123)
renovate.json ⚠️ Differs from canonical — newer features detected
Parameterized Configs:
auto-merge-image-updater.yml ✅ Core matches, variation: branch-prefix=argocd
release-please.yml ⚠️ Has publish job (novel improvement)
Structural (Justfile):
Standard recipes: 8/11 present
Missing: format-check, pre-commit, ci
Non-standard names: none
Pattern-based (Dockerfile):
Stack: Python
✅ Pinned base image (python:3.12-slim)
✅ Multi-stage build
⚠️ Missing .dockerignore
✅ Non-root user
Potential Improvements to Propagate:
1. renovate.json — has newer schedule config
2. release-please.yml — publish job pattern
Goal: Compare a specific file across all FVH repos.
Interpret the file pattern argument:
.github/workflows/claude.ymlclaude.yml → search in .github/workflows/*.yml → match all workflowsfd -t f '<pattern>' /Users/lgates/repos/ForumViriumHelsinki --max-depth 4
For each found file, compute a content hash:
shasum -a 256 <file>
Group files by identical hash. Sort groups by size (largest first = most common version).
Heuristics for selecting the canonical version:
infrastructure repo (reference repo)Config Diff: .github/workflows/claude.yml
==========================================
Group 1 (canonical) — 18 repos [sha: abc123]:
citylogger, CycleRoutePlanner, FVHIoT-python, ...
Group 2 — 2 repos [sha: def456]:
theme-management, OLMap
Differences from canonical:
- Line 12: uses different action version
- Line 25: extra step for Node setup
Not present in (5 repos):
infrastructure, helm-webapp, terraform-modules, ...
Recommendation: Update Group 2 repos to match canonical.
For small files (< 100 lines), show an inline unified diff between the canonical and each outlier group.
Goal: Propagate a config file from source to target repos.
--from specified, use that repo's version--to specified, use those repos--all, use all repos that currently have the file (excluding source)Wholesale: Copy file verbatim to targets.
Parameterized: Copy file but preserve known variation points:
auto-merge-image-updater.yml: preserve BRANCH_PREFIX valuerelease-please.yml: preserve extra publish/deploy jobsStructural (justfile): Do NOT overwrite. Instead:
Pattern-based: Only apply general improvements matching the target's stack:
.dockerignoreReference: Show diff and ask user to confirm each change.
For each target repo, show the unified diff of what would change.
Dry Run: Apply .github/workflows/claude.yml
============================================
repo: OLMap
Status: Will update (sha def456 → abc123)
Diff:
@@ -12,1 +12,1 @@
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
repo: theme-management
Status: Will update (sha def456 → abc123)
Diff: (same as above)
Total: 2 repos would be updated
For each target repo:
config-sync/<filename-slug>chore: sync <filename> from <source-repo>gh pr createcd /Users/lgates/repos/ForumViriumHelsinki/<target-repo>
git checkout -b config-sync/claude-yml
# ... apply changes ...
git add <file>
git commit -m "chore: sync claude.yml from canonical
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>"
git push -u origin config-sync/claude-yml
gh pr create --title "chore: sync claude.yml" --body "$(cat <<'EOF'
## Summary
- Synced `.github/workflows/claude.yml` to match canonical version
- Source: most common version across 18 repos
## Changes
<inline diff>
🤖 Generated with [Claude Code](https://claude.com/claude-code)
EOF
)"
Report results:
Apply Results:
OLMap: PR #42 created — https://github.com/ForumViriumHelsinki/OLMap/pull/42
theme-management: PR #15 created — https://github.com/ForumViriumHelsinki/theme-management/pull/15
| Context | Command |
|---|---|
| Quick workflow comparison | /configure:config-sync diff claude.yml |
| Find improvements in a repo | /configure:config-sync extract theme-management |
| Propagate renovate config | /configure:config-sync apply renovate.json --from infrastructure --all |
| Preview changes only | /configure:config-sync apply claude.yml --all (dry-run is default) |
| Create PRs | /configure:config-sync apply claude.yml --all --confirm |
apply only shows diffs unless --confirm is passed or user explicitly approves/configure:workflows — Single-repo workflow compliance/configure:reusable-workflows — Install reusable workflow patterns/configure:justfile — Single-repo justfile compliance/configure:dockerfile — Single-repo Dockerfile compliance/configure:all — Run all compliance checks on current repo