Outcome

Agents that write production-quality code

Without context, agents generate implementations that break patterns, miss dependencies, and fail tests.

Unblocked gives them the architectural decisions and conventions behind your system so the first draft actually fits.

Without Unblocked
Broke backwards compatibility
12 compilation failures
Cascading module breaks
Quality Bar
FAILED
With Unblocked
Backwards compatibility preserved
Tests pass across modules
Matches team patterns
Quality Bar
PASSED

The experiment

We ran the same engineering task twice: once with Unblocked and once without it, using the same coding agent, codebase, and prompt.

>

Task: Introduce adaptive thinking mode for supported Claude 4.6 models while maintaining backwards compatibility with existing code using the deprecated budget_token method.

The results with Unblocked

Without Unblocked
1.Auto-detect adaptive mode for 4.6 models
2.Convert ReasoningEffort to auto-switch
3.Add custom serializers for null handling
4.Add unit tests for thinking mode
Broke backwards compat (auto-detect, no opt-in)
12 compilation failures across modules
Cascading Bedrock module breaks
Batch provider API redesigned 3 times
Unnecessary custom serializers added
Quality Bar Failed
With Unblocked
1.Opt-in via useAdaptiveThinking: Boolean
2.Model-aware config (supportsAdaptive flag)
3.All modules: direct API, Bedrock, batch
4.19 unit tests + API integration tests
5.Nullable fields via kotlinx defaults
Opt-in preserves all existing behavior
Caught batch provider gap in plan review
No custom serializers needed (simpler)
Extension functions match team patterns
Quality Bar Passed
Quality Assessment

With context, the agent passed every quality check. Without it, the output cost more to correct than it saved to produce.

Quality scorecard

Four criteria any engineer expects.

Validation & Integration Tests

Without UB:
2.5/10
With UB:
9/10

Without Unblocked:

Unit tests only — no API integration, no Bedrock or batch coverage. Bugs in 2 of 3 modules would ship undetected.

With Unblocked:

19 unit tests + API integration tests across all 3 modules. Regressions caught before merge.

Doesn't Break Existing Implementation

Without UB:
2/10
With UB:
9/10

Without Unblocked:

Auto-detect silently changed behavior for all budget_token callers — breaking every existing integration if not caught by human review.

With Unblocked:

Opt-in default (false) preserves all existing behavior. Zero risk to current callers, no review flags.

DRY Code, High Quality Bar

Without UB:
3.5/10
With UB:
9/10

Without Unblocked:

Added custom serializers the team doesn't use, redesigned the batch API 3 times. All of it would need to be ripped out in review.

With Unblocked:

Used kotlinx defaults and existing serialization patterns. Single clean pass, nothing to rework.

Respects Our Conventions

Without UB:
2/10
With UB:
9/10

Without Unblocked:

Used a factory method pattern foreign to the codebase, causing 12 compilation failures. Every module would need rewriting to match team style.

With Unblocked:

Extension functions match existing team patterns. Zero compilation failures — merged without style feedback.