Skip to content

Instantly share code, notes, and snippets.

@cnolanminich
cnolanminich / SKILL.md
Last active August 14, 2026 18:22
run-website-performance-ab
name run-website-performance-ab
description Build, publish, and evaluate website performance changes with controlled browser A/B tests, representative-route discovery, rendered parity checks, and evidence-based keep-or-revert decisions. Supports matched Preview or staging deployments with no user traffic and production rollouts with field telemetry. Use for web performance experiments, bundle or module-graph changes, runtime variants, matched deployments, or requests to compare candidate and control websites without assuming a repository, framework, hosting provider, CMS, authentication system, or fixed route list.

Run Website Performance A/B

Use an exact control and one independently reversible candidate. Preserve unrelated work and never expose credentials, cookies, tokens, environment values, or protected deployment configuration.

1. Discover the website and representative routes

@cnolanminich
cnolanminich / pin_saved_selections.py
Last active June 26, 2026 16:07
pin saved selections
"""CLI for managing Dagster+ saved selections (catalog views) and homepage pins.
A *saved selection* is a ``CatalogView`` — a named, filterable view of the
asset catalog (e.g. "all assets owned by alice", "assets tagged core_kpis").
A pinned saved selection appears on a user's Dagster+ homepage and in the
left-nav saved-selections list.
Besides asset selections, the homepage can also pin **jobs** and asset
groups. A pinned job is stored as a (public) ``CatalogView`` of type ``JOB``
and surfaces as a ``JobPinnableItem``.
@cnolanminich
cnolanminich / code_server_sizing.md
Created April 9, 2026 13:00
Sizing Considerations for Dagster+ ECS non-isolated runs

Dagster+ ECS Sizing Guide: Non-Isolated Runs

Overview

With non-isolated runs, each run executes as a thread inside the long-running code server process. Memory and CPU are shared across all concurrent runs. This guide covers how to profile your runs, size your ECS tasks, configure Dagster's gRPC settings, and decide when to split into multiple replicas.


The Core Sizing Equation

@cnolanminich
cnolanminich / Versioning_assets.md
Last active April 8, 2026 00:36
Asset versioning

Dagster Asset Versioning & Staleness for ML Pipelines

1. code_version: Manually Set, Not Auto-Hashed

code_version is a manually assigned string on the @asset decorator or AssetSpec. Dagster does not automatically hash your function source code.

import dagster as dg

@dg.asset(code_version="1.0.0")
@cnolanminich
cnolanminich / component.py
Created April 6, 2026 14:45
dbt cost insights with a component
from collections.abc import Iterator
import dagster as dg
from dagster_dbt import DbtCliResource, DbtProjectComponent
class DbtProjectWithInsightsComponent(DbtProjectComponent):
"""A DbtProjectComponent subclass that enables Dagster+ Insights.
Chains `.with_insights()` onto the dbt event iterator so that warehouse
SELECT
customer_id,
COUNT(*) AS order_count,
SUM(amount) AS total_spent
FROM orders
GROUP BY customer_id
@cnolanminich
cnolanminich / Doc.md
Created March 12, 2026 09:15
Merge dbt cloud dagster

Step 1 — Understand the Two Starting Repos

Existing dbt Cloud Repo

dbt-cloud-repo/                        # github.com/myorg/dbt-cloud-repo
├── .github/
│   └── workflows/
│       └── dbt_cloud_deploy.yml       # dbt Cloud CI/CD
@cnolanminich
cnolanminich / session_comparison.md
Last active March 12, 2026 20:08
comparing with dagster-demo skill vs. without

Dagster Demo Skill: Session Comparison

Comparison of five Claude Code sessions that received the same prompt, with varying skill configurations and prompt refinements.

The Prompt

All sessions received essentially the same base prompt: create a demo Dagster project with Fivetran → dbt → Snowflake → PowerBI, Alteryx, Domo (migrating off) → Census/Fivetran Activations, with event-driven sensors and observe/orchestrate modes.

skills-10 received an enhanced prompt with additional explicit instructions: "Make sure any component that connects to an external system is using a state-backed component, uses a local cache and writes a set of mock assets using that cache, and that when it executes it logs a sample message and metadata instead of connecting to the external system. When modifying a component that exists, ALWAYS subclass, do not create a custom component."

@cnolanminich
cnolanminich / skills_assessment.md
Created March 9, 2026 15:23
skills evaluation with and without SE skills

Project & Session Comparison

Project Comparison: testing-new-skills vs testing-new-skills-2

Structural Differences

Aspect Project 1 (testing-new-skills) Project 2 (testing-new-skills-2)
dbt project location Inside src/.../defs/dbt_project/ Top-level dbt_project/
dbt mart models account_360, pipeline_summary, lead_conversion_funnel fct_sales_pipeline, dim_account_health, fct_lead_conversion
@cnolanminich
cnolanminich / docs-evaluation.md
Created March 2, 2026 14:48
Dagster Documentation Analysis: 1.6 Release vs. Current (1.12)

Dagster Documentation Analysis: 1.6 Release vs. Current (1.12)

Analysis Date: March 2, 2026


Executive Summary

Between Dagster 1.6 and the current release (1.12.17, as of February 27, 2026), the documentation has undergone a fundamental transformation — not just a cosmetic refresh, but a philosophical and structural overhaul that reflects Dagster's evolution from a flexible orchestration framework into a highly opinionated data platform with prescribed workflows, new abstractions (Components, dg CLI), and a dramatically narrower "happy path" for new users.