Skip to main content

running-tend

PRQL-specific guidance for tend CI workflows. Adds a standing exception for filing issues in other repos, PR title conventions, CI structure, weekly maintenance tasks, and issue-closing policy on top of the bundled tend-ci-runner skills. Use when operating in CI.

Source facts

Repository
PRQL/prql
Last source activity
September 30, 2026 at 08:08
Detected SKILL.md language
English
Stars
10,922
Forks
263

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
running-tend
description
PRQL-specific guidance for tend CI workflows. Adds a standing exception for filing issues in other repos, PR title conventions, CI structure, weekly maintenance tasks, and issue-closing policy on top of the bundled tend-ci-runner skills. Use when operating in CI.
# Running Tend in PRQL Tend-specific guidance for this repo. Project build commands, test strategy, error conventions, etc. are in `AGENTS.md` — don't duplicate them here. ## Filing issues in other repos Standing exception granted: file directly in agent-equipped targets (per **Filing issues** in the bundled `/tend-ci-runner:act-in-other-repos` skill) without asking permission here first. The default rule (open an issue here asking permission first) still applies when the target shows no agent signals. ## PR conventions - PR titles use conventional commits: `feat:`, `fix:`, `docs:`, `chore:`, `refactor:`, `test:`, `ci:`, `internal:`, `devops:`, `web:`, `refine:` - No scope required (e.g., `fix: resolve date parsing` not `fix(parser): ...`) - Dependabot PRs use `chore:` prefix ## CI structure - Main CI workflow: `tests` (watched by tend-ci-fix) - Dependency management: Dependabot opens dependency PRs; tend-weekly reviews them and runs the tasks under Weekly maintenance below. - **tend's own action is excluded from Dependabot** (`max-sixty/tend` is in the github-actions `ignore` list in `.github/dependabot.yaml`). Tend updates flow through the nightly `tend/update-workflows` regen (`uvx tend init`), which follows structural changes a version-only bump can't — e.g. the 0.1.7 move that split the action into `claude/`/`codex/` subdirectories broke the naive Dependabot bump #6031. Don't re-add `max-sixty/tend` to Dependabot. - Automerge: not configured — `pull-request-target.yaml` only validates PR titles and handles `pr-backport-web` backports. The automerge job was removed in #5753, so bot PRs must be merged manually by a maintainer (or via repo branch-protection auto-merge if a maintainer enables it on the PR). ## Verifying a `rust-toolchain.toml` bump The `update-rust-toolchain` action opens `build: Update rust toolchain version` with nobody owning it, so tend usually pushes the mechanical lint fixes a new clippy demands (the repo compiles with `-D warnings`). **Verify with the matrix's full feature set, not `--features=default`.** The `tests` matrix runs clippy as `--all-targets --no-default-features --features=default,test-dbs-external,lsp`, and code behind `test-dbs-external` — `prqlc/prqlc/tests/integration/dbs/` — is invisible to a `default`-only run. On #6219 (1.96.1 → 1.97.1) a session fixed the 7 `useless_borrows_in_formatting` sites `--features=default` exposed and posted "clean across the workspace", but an 8th in `dbs/runner.rs` was still red — so the posted claim was wrong, not just the branch. A whole-workspace `--all-targets` clippy on a cold cache exceeds the session budget. Scope it to the failing compilation unit instead (~9 minutes): ```sh cargo clippy -p prqlc --test integration --target=x86_64-unknown-linux-gnu \ --no-default-features --features=default,test-dbs-external,lsp -- -D warnings ``` Then scope the resulting claim to match the command: a clean run there clears that one compilation unit, not the workspace — other crates and targets stay unchecked. Name the unit that was verified rather than repeating #6219's "clean across the workspace". ## Verifying a change to the .NET binding `prqlc/bindings/dotnet/` builds and tests from a session, but one sandbox constraint blocks it and doesn't name its own cause. **MSBuild's worker nodes can't start, and say nothing.** Creating an `AF_UNIX` socket is refused sandbox-wide — `socketpair` still works, so ordinary parent/child pipes are unaffected and only cross-process Unix-socket IPC is lost. A multi-node build dies in the node handshake and reports `Build FAILED.` with `0 Error(s)` and no diagnostic at all. **Pass `-m:1` to every `dotnet` command that drives MSBuild** — `build`, `test`, `restore`; `dotnet new` rejects it as an unknown option and doesn't need it. Without it a real failure is indistinguishable from this one, and a single-project build succeeds either way, which is why a quick probe misses it. With that, the whole `test-dotnet` job runs from the repo root: ```sh cargo build -p prqlc-c dotnet build prqlc/bindings/dotnet -m:1 cp target/debug/libprqlc_c.* prqlc/bindings/dotnet/PrqlCompiler/bin/Debug/net*/ cp target/debug/libprqlc_c.* prqlc/bindings/dotnet/PrqlCompiler.Tests/bin/Debug/net*/ dotnet test prqlc/bindings/dotnet -m:1 ``` Restore prints `NU1903` for `Newtonsoft.Json` 9.0.1, pulled in transitively by `Microsoft.NET.Test.Sdk`. It predates any change under review — don't chase it. ## Weekly maintenance These tasks run as Step 3 of the bundled weekly skill (only when `workflows.weekly` is enabled in `.config/tend.yaml`). - **Bump pinned `go-task/setup-task` version.** The action is invoked with a concrete `version:` input to avoid the intermittent `unable to get latest version` failure from `version: 3.x` (see #5836). Dependabot does not update `with:` inputs, so this needs a manual weekly bump. Find the latest release at <https://github.com/go-task/task/releases/latest>; if the current pin is older, update `version: X.Y.Z` in: - `.github/actions/tend-setup/action.yaml` - `.github/workflows/build-web.yaml` - `.github/workflows/test-php.yaml` - `.github/workflows/test-prqlc-c.yaml` Open a single `chore:` PR with the bump. Skip if already at the latest. ## Issue management - Close bot-opened issues once the underlying cause is resolved — don't leave them open for a maintainer. If you (prql-bot) filed an issue (e.g., a nightly "tests failed" issue, a code-quality issue, an infra/upstream bug report) and the fix has merged or the upstream problem has been addressed, close the issue with a short comment citing the resolution (e.g., "Resolved by #NNNN — closing"). Applies to any issue where `author.login == prql-bot`.
View on GitHub