backend-pr-workflow
Pedantic Diversio backend dev workflow Skill that enforces ClickUp-linked branch/PR naming, PR hygiene, safe Django migrations, and downtime-safe schema changes for Django4Lyfe-style backends.
What this skill does
# Backend PR Workflow Skill
## When to Use This Skill
Use this Skill whenever you are:
- Creating or reviewing a backend PR that touches Django models, migrations, or
production data.
- Preparing a PR for Django4Lyfe / Workforce backend or a similar repo that
uses ClickUp as the primary ticket system.
- Planning a release or hotfix and want to ensure the workflow (branches, tags,
and migrations) is correct and downtime-safe.
If local `AGENTS.md` / `CLAUDE.md` in the target repo conflict with anything
here, **treat those files as the source of truth** and use this Skill as the
default baseline.
## Example Prompts
- “Use the `backend-pr-workflow` skill to review this Django4Lyfe PR’s branch name, ClickUp linkage, migrations, and downtime-safety. Here are the branch name, base branch, and PR title: …”
- “Before I open this backend PR, run `backend-pr-workflow` on my planned title, description, and migration summary and tell me all `[BLOCKING]` and `[SHOULD_FIX]` issues.”
- “For this hotfix PR on Django4Lyfe, use `backend-pr-workflow` to check that my base branch, title, and release plan follow our backend workflow.”
- “I’ve added a new nullable field and a backfill migration. Use `backend-pr-workflow` to verify that my migrations and rollout plan are downtime-safe.”
## Severity Tags & Output Shape
When this Skill reviews a PR or workflow plan, the response **must** be
structured and tagged:
- Start with a 1–3 sentence summary of what was checked.
- Then use sections:
- `What’s aligned` – bullets of things that follow the workflow.
- `Needs changes` – bullets with severity tags:
- `[BLOCKING]` – must fix before merge or deploy.
- `[SHOULD_FIX]` – important but not strictly blocking for merge.
- `[NIT]` – minor consistency or documentation suggestions.
Each bullet in `Needs changes` should:
- Point to the specific item (branch name, PR title, description, migration
file, release plan).
- State the problem **and** the concrete correction the author should make.
Example bullet:
- `[BLOCKING] Branch name 'feature/my-thing' does not follow the required 'clickup_<ticket_id>' convention, and CI may not run. Rename to something like 'clickup_GH-1234_my-thing'.`
## Inputs This Skill Expects
Before giving a full review, this Skill should gather:
- The **repository** and context (e.g. Django4Lyfe backend / monolith).
- The **branch name**.
- The **PR title** and **PR description** (or the planned ones).
- The **base branch** (what the PR targets: `release`, `master`, etc.).
- Whether the PR:
- Includes Django model changes.
- Adds, modifies, or deletes migrations.
- Is a normal feature/bugfix, a hotfix, or a release PR.
If any of these are missing or unclear, ask the user to provide them before
doing a full workflow review.
## Checklist 1 – ClickUp & Branch / PR Naming
This Skill treats **ClickUp linkage as non-negotiable**.
### 1.1 Branch name
Check the branch name:
- It **must** start with `clickup_<custom_ticket_id>`:
- Examples:
- `clickup_GH-785`
- `clickup_GH-785_world_domination`
- The ticket ID **must** be the ClickUp **custom ticket ID** (e.g. `GH-785`),
not the numeric internal ID.
- Rationale:
- CI (e.g. CircleCI) is configured to run only for branches starting with
`clickup_`.
- ClickUp uses the custom ticket ID to automatically link branches, PRs, and
commits to tickets.
If the branch does not follow this pattern, emit:
- `[BLOCKING]` – with a suggested corrected branch name.
### 1.2 Multi-repo work and sub-tickets
When a feature spans multiple repositories, enforce:
- Do **not** reuse the same ClickUp ID across multiple repos.
- Instead, require:
- One **parent** ClickUp ticket for the overall feature.
- Separate **sub-tickets** per repo:
- Backend: `GH-2961`
- Frontend: `GH-2962`
- Data Science: `GH-2963`
- Infra: `GH-2964`
- Each sub-ticket gets its own branch, PR, and commit series, following the
same naming rules.
Explain risks of reusing the same ID across repos:
- Automation may update status prematurely or incorrectly.
- PRs from different repos can be linked to the wrong task.
- Ownership and progress become ambiguous.
If the user appears to be reusing the same ID across repos, emit:
- `[SHOULD_FIX]` – recommending sub-tickets and distinct branch/PR naming.
### 1.3 Commit messages
Check or remind the user that:
- **All commits** for the PR should start with the ticket ID:
- `GH-785: Find another meaning of life`
- This is often enforced by `commit_msg_hook.py` and pre-commit hooks, but the
Skill should still call out obvious violations.
If commit messages clearly lack ticket IDs (based on user input), emit:
- `[SHOULD_FIX]` – asking the author to fix future commits and, where
practical, to rewrite recent history before merge.
### 1.4 PR title
The PR title must:
- Begin with `[<clickup_ticket_id>]`.
- Example: `[GH-785] Found meaning of life`
If not, emit:
- `[BLOCKING]` – and propose a corrected title that includes the ticket ID.
Remind the user that:
- Correct titles allow ClickUp to auto-link the PR and expose PR status,
reviewers, and activity directly in the ticket.
## Checklist 2 – WIP Signalling & Base Branch
### 2.1 WIP / draft status
Check whether the work is still in progress:
- If the author indicates the PR is not ready for review yet:
- The PR should be in **draft** mode, or
- The title or label should clearly include `WIP` / `[WIP]`.
If not, emit:
- `[SHOULD_FIX]` – asking the author to convert to draft or annotate the PR as
WIP to avoid premature review.
### 2.2 Base branch selection
Confirm the base branch matches the project’s release workflow:
- **Normal feature / bugfix work**:
- Base branch should be `release` (for repos following the Django4Lyfe
pattern).
- **Hotfix** that must bypass the current `release` contents:
- Base branch should be `master`.
If a PR targets the wrong base branch:
- Emit `[BLOCKING]` and recommend the correct base, explaining whether the
change belongs in `release` or should be a `master` hotfix.
If the repo’s docs specify a different default (e.g. custom long-lived branches
documented in `CLAUDE.md`), follow that instead.
## Checklist 3 – PR Description & Self-Review
This Skill expects PR authors to be their own first reviewer.
### 3.1 PR description quality
Check that the description (or planned description):
- Follows any existing PR template for the repo, if one exists.
- Clearly explains:
- What changed.
- Why it changed (the problem or goal).
- Whether there are any **breaking changes** and what reviewers should
inspect carefully.
- Any required secrets, DB dumps, or setup information, with guidance to
share secrets via 1Password / Slack and to clean up messages.
- Any manual steps needed for deploy:
- Env vars to add/update.
- Buckets or external resources to create.
- Management commands or scripts to run.
- Whether a DB snapshot is recommended before deploy (for heavy data
changes).
If key context is missing, emit:
- `[SHOULD_FIX]` – listing the missing items and suggesting how to include
them.
### 3.2 Self-review checklist
Prompt the author to confirm they have checked:
- Branch is up to date with the base branch; diff is not polluted by unrelated
files.
- All debugging code is removed:
- No `print()` / `ipdb` / `pdb` left behind.
- Tests have been added or updated for new functionality.
- Tests are passing in CI.
- Pre-commit hooks and coding conventions have been applied.
- Code coverage has not regressed significantly.
- For Django changes: migrations have been cleaned up and regenerated if there
were multiple schema iterations.
If any of these fail obviously based on the PR description or user input, emit
appropriate `[SHOULD_FIX]` or `[BLOCKING]` bullets.
## Checklist 4 – Releases, Hotfixes, and Tags
This Skill enforces a clean release flow.
### 4.1 Normal release floRelated in Backend & APIs
jfrog
IncludedInteract with the JFrog Platform via the JFrog CLI and REST/GraphQL APIs. Use this skill when the user wants to manage Artifactory repositories, upload or download artifacts, manage builds, configure permissions, manage users and groups, work with access tokens, configure JFrog CLI servers, search artifacts, manage properties, set up replication, manage JFrog Projects, run security audits or scans, look up CVE details, query exposures scan results from JFrog Advanced Security, manage release bundles and lifecycle operations, aggregate or export platform data, or perform any JFrog Platform administration task. Also use when the user mentions jf, jfrog, artifactory, xray, distribution, evidence, apptrust, onemodel, graphql, workers, mission control, curation, advanced security, exposures, or any JFrog product name.
cupynumeric-migration-readiness
IncludedPre-migration readiness assessor for porting NumPy to cuPyNumeric. Use BEFORE substantial porting work begins when the user asks whether code will scale on GPU, whether they should migrate to cuPyNumeric, which NumPy patterns transfer cleanly, what must be refactored before porting, or mentions pre-port assessment, scaling analysis, or refactor planning. Inspect the user's source code, look up NumPy usage, cross-reference the cuPyNumeric API support manifest, and distinguish distributed-scaling-friendly patterns from blockers such as unsupported APIs, scalar synchronization, host round-trips, Python/object-heavy control flow, shape/data-dependent branching, and in-place mutation hazards. Produce a verdict of READY, LIGHT REFACTOR, SIGNIFICANT REFACTOR, or NOT RECOMMENDED, with concrete refactor pointers.
alibabacloud-data-agent-skill
IncludedInvoke Alibaba Cloud Apsara Data Agent for Analytics via CLI to perform natural language-driven data analysis on enterprise databases. Data Agent for Analytics is an intelligent data analysis agent developed by Alibaba Cloud Database team for enterprise users. It automatically completes requirement analysis, data understanding, analysis insights, and report generation based on natural language descriptions. This tool supports: discovering data resources (instances/databases/tables) managed in DMS, initiating query or deep analysis sessions, real-time progress tracking, and retrieving analysis conclusions and generated reports. Use this Skill when users need to query databases, analyze data trends, generate data reports, ask questions in natural language, or mention "Data Agent", "data analysis", "database query", "SQL analysis", "data insights".
token-optimizer
IncludedReduce OpenClaw token usage and API costs through smart model routing, heartbeat optimization, budget tracking, and native 2026.2.15 features (session pruning, bootstrap size limits, cache TTL alignment). Use when token costs are high, API rate limits are being hit, or hosting multiple agents at scale. The 4 executable scripts (context_optimizer, model_router, heartbeat_optimizer, token_tracker) are local-only — no network requests, no subprocess calls, no system modifications. Reference files (PROVIDERS.md, config-patches.json) document optional multi-provider strategies that require external API keys and network access if you choose to use them. See SECURITY.md for full breakdown.
resend-cli
IncludedUse this skill when the task is specifically about operating Resend from an AI agent, terminal session, or CI job via the official resend CLI: installing/authenticating the CLI, sending/listing/updating/cancelling emails, batch sends, domains and DNS, webhooks and local listeners, inbound receiving, contacts, topics, segments, broadcasts, templates, API keys, profiles, or debugging Resend CLI/API failures. Trigger on mentions of Resend CLI, `resend`, `resend doctor`, `resend emails send`, `resend domains`, `resend webhooks listen`, `resend emails receiving`, or agent-friendly terminal automation.
alibabacloud-odps-maxframe-coding
IncludedUse this skill for MaxFrame SDK development and documentation navigation on Alibaba Cloud MaxCompute (ODPS). Helps answer MaxFrame API, concept, official example, and supported pandas API questions; create data processing programs; read/write MaxCompute tables; debug jobs (remote or local); and build custom DPE runtime images. Trigger when users mention MaxFrame, MaxCompute with MaxFrame, ODPS table processing, DPE runtime, MaxFrame docs/examples, DataFrame/Tensor operations, or GPU runtime setup. Works for both English and Chinese queries about Alibaba Cloud data processing with MaxFrame.