Sean Mackesey b36372ac7b Make the copybara partial-clone backfill best-effort (#26762)
## Summary & Motivation

Follow-up to #26761, which broke the sync it was meant to fix. The
partial-clone backfill it
added calls `git fetch --refetch`, a flag introduced in git 2.41. The
copybara image is built on
`eclipse-temurin:21-jre-jammy`, whose git is 2.34.1, so the call fails
with ``error: unknown
option `refetch'`` and the backfill raised, failing the whole job. Build
11719 failed five times
this way. This regressed `dagster-outbound` too, which had been working,
so every master commit
touching `dagster-oss/` would have failed its sync.

A failed backfill should never fail the sync, because the backfill is
defense-in-depth rather
than the actual fix. Without it copybara still fetches whatever the
agent's `--reference` mirror
supplies, which is how the sync worked for as long as it has existed,
and `describe_version =
False` — the other half of #26761, which is working — already removes
the `refs/tags/*` fetch
that was the observed production failure. So this warns and continues
instead of raising.

I got this wrong twice in the same area, and the reason is worth
recording: my local git is
2.50, the integration test exercises the backfill and passes, and
nothing in the test
environment resembles the image's git. The test still can't catch this
class, so the code no
longer depends on the flag being present.

The `CONTRIBUTING.md` wording fix is here to trip the step's gate. The
sync step only runs
`skills-outbound` when `git diff HEAD~1 HEAD` matches `^public/skills/`,
so a code-only change
would restore `dagster-outbound` and skip skills entirely, leaving
`dagster-io/skills` stuck at
`c68a338`. With this file included, one merge restores dagster-outbound
and lets the skills
sync catch up all five outstanding commits. The wording itself was wrong
next to the plugin
listing corrected in #26761: it called them skills where the list names
plugins.

## Test Plan

- `just ruff` and `just ty` clean.
- `tox -e py312` in `integration_tests/copybara-config-tests`: 17
passed. Note this suite runs on
local git 2.50, where `--refetch` succeeds, so it exercises the success
path only — the
regression it missed is precisely why the failure path is now non-fatal.
- Confirmed the version boundary directly in both images rather than
inferring it:
`21-jre-jammy` has git 2.34.1 with no `--refetch` in `git fetch -h`;
`21-jre-noble` has git
2.43.0 and lists `--refetch re-fetch without negotiating common
commits`.
- Not verified end to end until this merges and the next
`public/skills/`-touching commit
triggers a real sync run; the previous build's failure signature
(`unknown option refetch`)
should be replaced by a warning followed by a successful copybara fetch.

## Changelog

NOCHANGELOG

Internal-RevId: 310af18283f23c614583eec7ee13fef8f26fc9fc
2026-09-10 20:47:20 +00:00
2026-09-10 20:47:13 +00:00
2026-03-05 09:50:04 -05:00
2026-09-10 20:47:13 +00:00
2026-03-16 14:12:03 -04:00
2026-09-10 20:47:13 +00:00
2026-09-10 20:47:13 +00:00

dagster-hearts-claude

Dagster Skills

AI assistant skills for building workflows and data pipelines using Dagster. It bundles the dagster-expert skill for authoring pipelines and the Dagster+ MCP server for access to your Dagster+ deployment.

Compatible with Claude Code, Cursor, OpenCode, OpenAI Codex, Pi, and other Agent Skills-compatible tools.

Installation

Claude Code

Install using the Claude plugin marketplace:

/plugin marketplace add dagster-io/skills

/plugin install dagster@dagster

/dagster-expert "What's an asset?"

The plugin includes the Dagster+ MCP server, giving the skill direct access to your deployed organization: runs, assets, deployments, code locations, alert policies, Issues, and insights metrics. Run /mcp to authenticate.

/mcp
# authenticate dagster-plus

Fetch the run logs for the most recent run failure.

The MCP URL points at the US region by default. If your organization is in the EU region, set the following environment variable before launching Claude Code:

export DAGSTER_CLOUD_MCP_URL=https://mcp.agent.eu.dagster.cloud/mcp

Using npx skills

Install using the npx skills command-line:

npx skills add dagster-io/skills

Manual Installation

See full instructions...

Clone the repository and copy skills to your tool's skills directory:

OpenCode:

git clone https://github.com/dagster-io/skills.git
cp -r skills/plugins/dagster/skills/* ~/.config/opencode/skill/

OpenAI Codex:

git clone https://github.com/dagster-io/skills.git
cp -r skills/plugins/dagster/skills/* ~/.codex/skills/

Pi Agent:

git clone https://github.com/dagster-io/skills.git
cp -r skills/plugins/dagster/skills/* ~/.pi/agent/skills/

Upgrading from dagster-expert

The Dagster skill now ships in a plugin named dagster rather than dagster-expert. The skill itself is unchanged and is still invoked with /dagster-expert.

dagster-expert remains installable for now, but has become a stub that carries no Dagster guidance and only points here. To migrate:

/plugin install dagster@dagster

/plugin uninstall dagster-expert

If you install dagster without uninstalling dagster-expert, two plugins provide a skill named dagster-expert and the deprecated stub may be used instead of the real one.

The dagster-expert plugin will be removed in a future release. After that, installations of it report Plugin dagster-expert not found in marketplace dagster and stop loading.

Skills

dagster-expert

Expert guidance for building production-quality Dagster projects, covering CLI commands, asset patterns, automation strategies, and implementation workflows.

What you can do:

  • Create and scaffold projects, assets, schedules, and sensors
  • Understand asset patterns (dependencies, partitions, multi-assets, metadata)
  • Implement automation (declarative automation, schedules, sensors)
  • Use CLI commands (launch, list, check, scaffold, logs)
  • Design project structure and configure environments
  • Follow implementation workflows and best practices
  • Debug issues and validate project configuration

Example prompts:

Create a new Dagster project called analytics
How do I scaffold a new asset?
Show me how to set up declarative automation
What's the proper way to partition my assets?
Help me debug why my materialization failed
How should I structure my project for multiple pipelines?
Launch all assets tagged with priority=high

Dagster+ MCP

Direct access to Dagster+ data about your deployment, including run logs, Insights, and select actions to remediate failures.

The MCP server uses your user permissions when determining the MCP server permissions. To use custom permissions, see the documentation for alternative authentication methods here

What you can do:

  • Launch runs, materialize assets, re-run runs and backfills
  • Fetch run logs
  • Fetch asset definitions and metadata
  • Fetch deployments and deployment information.
  • Create and update alert policies and fetch their notifications
  • Fetch Insights metrics for assets, jobs, and deployments

Example prompts:

Fetch the logs for run <run id>, investigate why it failed, and propose a solution.
What is the materialization success rate over the past month?
How often has the customer_returns_job failed in the past quarter?
What assets in my deployment are not covered by an alert policy?

Contributing

See CONTRIBUTING.md.

dagster logo
S
Description
dagster-expert: Expert guidance for working with Dagster and the dg CLI. ALWAYS use before doing any task that requires knowledge specific to Dagster, or that references…; dignified-python: Opinionated production Python standards with automatic version detection (3.10-3.13). Use when writing, reviewing, or refactoring Python in repos that want…
Readme Apache-2.0 1.4 MiB
Languages
Python 97.7%
Makefile 2.3%