DEV Community

Dakota Huang profile picture

Dakota Huang

Building things with Python, Go, and JavaScript. Love automating everything.

Location Seattle, WA Joined Joined on 
Prove the Smallest Safe Change Is Mechanical: An AST Diff Gate

Prove the Smallest Safe Change Is Mechanical: An AST Diff Gate

Comments
5 min read
Census the Names a Function Reads Before You Extract It

Census the Names a Function Reads Before You Extract It

Comments
5 min read
Freeze the Export Surface Before a Messy Refactor: A Manifest Gate in Python

Freeze the Export Surface Before a Messy Refactor: A Manifest Gate in Python

Comments
6 min read
Test the Process, Not the Module: A Black-Box Characterization Gate for a Repo You Can't Import

Test the Process, Not the Module: A Black-Box Characterization Gate for a Repo You Can't Import

Comments
5 min read
Time Your Safety Net First: A Budget Gate for Characterization Tests in Messy Repos

Time Your Safety Net First: A Budget Gate for Characterization Tests in Messy Repos

Comments
5 min read
Characterize the Boundary, Not the Module: An Import-Graph Gate for Messy Refactors

Characterize the Boundary, Not the Module: An Import-Graph Gate for Messy Refactors

Comments
5 min read
Census Every Raise Site Before You Move a Module

Census Every Raise Site Before You Move a Module

Comments
5 min read
Record the Ordered Side-Effect Ledger Before You Move One Function

Record the Ordered Side-Effect Ledger Before You Move One Function

Comments
4 min read
Record the Call Order, Not the Return Value: A Ledger Gate for Messy Refactors

Record the Call Order, Not the Return Value: A Ledger Gate for Messy Refactors

Comments
5 min read
Prove Reach Before You Move: A Coverage Gate for Characterization Tests

Prove Reach Before You Move: A Coverage Gate for Characterization Tests

Comments
5 min read
Cluster Edits by Failing-Test Signature Before the Smallest Safe Change

Cluster Edits by Failing-Test Signature Before the Smallest Safe Change

Comments
5 min read
Hold Out a Third of Your Corpus: The Characterization Gate for a Messy Refactor

Hold Out a Third of Your Corpus: The Characterization Gate for a Messy Refactor

Comments
5 min read
Bug-for-Bug: Stamp Every Frozen Behavior With a Quirk ID Before You Refactor

Bug-for-Bug: Stamp Every Frozen Behavior With a Quirk ID Before You Refactor

Comments
5 min read
Pin the Bugs Before You Move the Function: A Two-Way Behavior Ledger

Pin the Bugs Before You Move the Function: A Two-Way Behavior Ledger

Comments
6 min read
Your Refactor May Only Touch Lines Your Tests Execute

Your Refactor May Only Touch Lines Your Tests Execute

Comments
4 min read
The AST Matched, the Behavior Didn't: Checking Name Resolution After a Function Move

The AST Matched, the Behavior Didn't: Checking Name Resolution After a Function Move

Comments
5 min read
The Call Order Is the Contract: Trace Fixtures Before a Messy-Repo Extraction

The Call Order Is the Contract: Trace Fixtures Before a Messy-Repo Extraction

Comments 1
5 min read
Set a Change Budget Before You Refactor: A Git-Diff Gate for Messy Repos

Set a Change Budget Before You Refactor: A Git-Diff Gate for Messy Repos

Comments
5 min read
Score Every Seam Before You Move One: A Blast-Radius Budget for Messy Repos

Score Every Seam Before You Move One: A Blast-Radius Budget for Messy Repos

Comments
6 min read
Two Commits per Refactor: A Diff Gate That Keeps Pins Away From the Move

Two Commits per Refactor: A Diff Gate That Keeps Pins Away From the Move

Comments
5 min read
A Test That Cannot Fail Is Decoration: Gating Model-Drafted Characterization Tests

A Test That Cannot Fail Is Decoration: Gating Model-Drafted Characterization Tests

Comments
5 min read
Replay Captured Inputs, Then Move One Function: A Flake-Trial Gate for Messy Refactors

Replay Captured Inputs, Then Move One Function: A Flake-Trial Gate for Messy Refactors

Comments
5 min read
Freeze the Clock, Not the Timeout: A Time-Zone Matrix Before You Extract a Module

Freeze the Clock, Not the Timeout: A Time-Zone Matrix Before You Extract a Module

Comments
6 min read
Refactor Error Paths First: A Fault-Injection Table for Messy Repos

Refactor Error Paths First: A Fault-Injection Table for Messy Repos

Comments
5 min read
Twenty Identical Runs, Then One Small Diff: Sealing Entropy Before a Messy Refactor

Twenty Identical Runs, Then One Small Diff: Sealing Entropy Before a Messy Refactor

Comments
4 min read
Test the Safety Net First: Mutation-Check Characterization Pins Before a Refactor

Test the Safety Net First: Mutation-Check Characterization Pins Before a Refactor

Comments
5 min read
Twenty Identical Runs or No Refactor: A Determinism Gate for Characterization Tests

Twenty Identical Runs or No Refactor: A Determinism Gate for Characterization Tests

Comments
4 min read
Freeze the Clock First: A Nondeterminism Gate for Messy Refactors

Freeze the Clock First: A Nondeterminism Gate for Messy Refactors

Comments
5 min read
The Bug Is in the Files: Characterize Filesystem Side Effects Before a Messy Refactor

The Bug Is in the Files: Characterize Filesystem Side Effects Before a Messy Refactor

Comments
5 min read
Find the Seam Before You Cut: A Read/Write Census for Messy Modules

Find the Seam Before You Cut: A Read/Write Census for Messy Modules

Comments
7 min read
Cap Snapshot Churn: A Failure-First Characterization Harness for Messy Repos

Cap Snapshot Churn: A Failure-First Characterization Harness for Messy Repos

Comments
5 min read
Pin the Call Log, Not the Return Value: Choosing the Smallest Safe Refactor Move

Pin the Call Log, Not the Return Value: Choosing the Smallest Safe Refactor Move

Comments
6 min read
Record Every Side Effect Before You Extract: A Ledger Diff Gate

Record Every Side Effect Before You Extract: A Ledger Diff Gate

Comments
5 min read
Characterization Tests Are Not Enough: Add a Diff-Budget Guard

Characterization Tests Are Not Enough: Add a Diff-Budget Guard

Comments
6 min read
Seed Five Mutations Before You Trust a Characterization Test

Seed Five Mutations Before You Trust a Characterization Test

Comments
5 min read
Stop Hand-Writing a Hundred Characterization Tests: Shrink a Recorded Corpus Instead

Stop Hand-Writing a Hundred Characterization Tests: Shrink a Recorded Corpus Instead

Comments
5 min read
Shuffle the Input 200 Times Before You Extract One Module

Shuffle the Input 200 Times Before You Extract One Module

Comments
5 min read
Twenty Repeat Runs Before You Move One Function: A Determinism Gate for Messy Repos

Twenty Repeat Runs Before You Move One Function: A Determinism Gate for Messy Repos

Comments
5 min read
Refactor a Repo You Don't Understand: Golden Files First, One Change Second

Refactor a Repo You Don't Understand: Golden Files First, One Change Second

Comments 1
5 min read
One Star Alias Moves Only After Grant Rows Freeze

One Star Alias Moves Only After Grant Rows Freeze

Comments
6 min read
Refund Clock Tests Before the Smallest Extract

Refund Clock Tests Before the Smallest Extract

Comments
7 min read
Freeze Refund Outcomes, Then Extract One Predicate

Freeze Refund Outcomes, Then Extract One Predicate

Comments
7 min read
Hold Receipt Outputs, Then Lift One Tax Function

Hold Receipt Outputs, Then Lift One Tax Function

Comments
8 min read
Record Observed Outputs Before One Safe Refactor

Record Observed Outputs Before One Safe Refactor

Comments
6 min read
Hold Fourteen Retry Outcomes, Then Move Backoff Math

Hold Fourteen Retry Outcomes, Then Move Backoff Math

Comments
8 min read
Freeze the Deadline Split Before You Extract It

Freeze the Deadline Split Before You Extract It

Comments
7 min read
Settings Precedence Stays Put Until Nine Rows Match

Settings Precedence Stays Put Until Nine Rows Match

Comments
6 min read
An Overlap Contract Before Any Shift Helper Split

An Overlap Contract Before Any Shift Helper Split

Comments 1
7 min read
A Cache Helper Moves Only After Nine Frozen Rows

A Cache Helper Moves Only After Nine Frozen Rows

Comments
6 min read
Pin Nine Payload Rows, Then Move One Mapper Branch

Pin Nine Payload Rows, Then Move One Mapper Branch

Comments 1
7 min read
Extract One Quiet-Hour Helper After Eight Rows Pass

Extract One Quiet-Hour Helper After Eight Rows Pass

Comments
7 min read
One Coercion Table Moves Only After Twelve Export Rows Hold

One Coercion Table Moves Only After Twelve Export Rows Hold

1
Comments
9 min read
Hold Three Quote Rows, Then Move One Surcharge

Hold Three Quote Rows, Then Move One Surcharge

Comments
7 min read
Characterize Ship Cutoffs With Twelve Frozen Instants

Characterize Ship Cutoffs With Twelve Frozen Instants

Comments
7 min read
Freeze Warehouse Hold Tuples, Then Move Availability

Freeze Warehouse Hold Tuples, Then Move Availability

Comments
8 min read
Characterize Retry Classes With Integer Wait Rows

Characterize Retry Classes With Integer Wait Rows

Comments
7 min read
Pin Query Rows Before One Cap Helper Moves

Pin Query Rows Before One Cap Helper Moves

Comments
7 min read
Capture Coupon Order Before One Rate Extract

Capture Coupon Order Before One Rate Extract

Comments 1
8 min read
Freeze Aging Labels Before One Status Extract

Freeze Aging Labels Before One Status Extract

Comments
7 min read
Five Discount Rows Are the Refactor Gate

Five Discount Rows Are the Refactor Gate

Comments 2
8 min read
loading...