pub-pipeline/skills/pub-pipeline/SKILL.md
Detect project type and route to the appropriate publication workflow. Routes R packages to the CRAN/JOSS pipeline, Python packages to PyPI publishing, or asks for clarification if ambiguous.
npx skillsauth add queelius/claude-anvil pub-pipelineInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Detect the current project type and route to the appropriate publication workflow.
Check the current working directory for project type indicators:
| Check | Project Type | Route To |
|-------|-------------|----------|
| DESCRIPTION file with Package: field | R package | /r-publish (the r-pub-pipeline skill) |
| pyproject.toml or setup.py or setup.cfg | Python package | /pypi-publish (the pypi-publish skill) |
| Multiple types detected | Ambiguous | Ask the user which workflow to run |
| None detected | Unknown | Ask the user what they want to publish |
Search the current directory for:
DESCRIPTION (R package indicator — verify it contains a Package: field)pyproject.toml, setup.py, setup.cfg (Python package indicators)Read .claude/pub-pipeline.local.md if it exists. If missing, inform the user and offer to create one from the template at ${CLAUDE_PLUGIN_ROOT}/docs/user-config-template.md.
Based on detection, invoke the appropriate ecosystem skill. If the project type is ambiguous (e.g., both DESCRIPTION and pyproject.toml exist), present options to the user and ask which publication workflow to run.
| Ecosystem | Skills | Commands |
|-----------|--------|----------|
| R packages | cran-audit, joss-audit, joss-draft, r-pub-pipeline | /cran-audit, /joss-audit, /joss-draft, /r-publish |
| Python packages | pypi-publish | /pypi-publish |
${CLAUDE_PLUGIN_ROOT}/docs/user-config-template.md — Shared user config templatetools
This skill should be used when the user asks about research directions, open problems, future work, or follow-up research from the academic literature. Trigger phrases include "open problems in X", "what's next for Y", "future work for paper Z", "research directions on T", "salient follow-up research", "what should I work on next in", "find me follow-up research unrelated to my prior work", "broad survey of W", "neglected directions in V". Routes the request to the right Vista MCP tool, reads back the structured paper sections, and synthesizes research directions in the conversation.
testing
Discover latent themes in the metafunctor corpus. Use when the user wants to find implicit through-lines across their blog posts, surface recurring ideas they have not consciously framed as a series, or get candidate themes for a synthesis post. Reads titles, descriptions, and tags; proposes 3 themes that connect 4+ posts each, each with a single-sentence through-line. Output is a proposal, not a draft. Trigger phrases include "find themes in my posts", "what threads connect my writing", "latent themes in my corpus", "scribe".
development
Use when drafting prose sections for a bookwright (technical non-fiction) project. Encodes the Bernoulli-textbook workflow: atom-outward design, deferral discipline, running threads, page budgets, Path A subagent pattern, header comment block convention.
testing
Use when drafting or executing a paired notebook for a bookwright chapter. Covers when notebooks are required vs optional, numerical-sanity-target convention, exec-from-fresh-kernel requirement, and stack-specific execution commands (Jupyter/R Markdown/Quarto).