fix-the-assumption-not-the-hack
When a new feature invalidates an assumption the current design rests on, rethink the pattern rather than land a tweak that technically satisfies the request.
Skill by kasofsk
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/kasofsk-fix-the-assumption-not-the-hack
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fix-the-assumption-not-the-hack
What's inside
- Skill name
fix-the-assumption-not-the-hack- Description
- When a new feature invalidates an assumption the current design rests on, rethink the pattern rather than land a tweak that technically satisfies the request. Use when a change does not fit the existing design, when a workaround needs a long comment to justify itself, when weighing a quick patch against a small refactor, or when noticing an architectural improvement while making an unrelated change.
- License
- MIT
- Instructions
- 51 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Fix the Assumption, Not the Hack ## Core principle Constantly be thinking about minor refactors and architectural improvements. When a new feature invalidates an assumption the current design was built on, the default move is to **fix the assumption** — rethink the pattern — rather than land a tweaky hack that technically satisfies the request. ## How we get there ### 1. Recognize the fork in the road Modern software development has humans writing very little code directly, with agents both writing and increasingly reviewing it. In that world, this situation will arise many, many times: a feature wants to be added, and the agent is presented with two options — - **The hack**: a tweak that gets exactly to where the request was, typically needing a long comment to explain and justify itself (see the **comments-describe-the-code** practice — that comment is the tell). - **The rethink**: a slightly more expensive change that revisits the pattern, because this new feature has invalidated an assumption the old pattern rested on. The first skill is simply noticing that you're standing at this fork. ### 2. Default to the rethink When these situations arise, we typically want to fix the assumption. The extra cost is real but bounded and paid once; the hack's cost compounds — it misleads every future reader about how the system actually works, and it invites the next change to stack another tweak on top. ### 3. Design for beyond the prompt's lifetime The system being manipulated will extend far beyond this prompt's lifetime. The goal is not "exactly what was requested, as cheaply as possible" — it is a system that is **maximally maintainable at any point in time**. A change is finished when the codebase afterward looks like it was designed with the new requirement in mind, not patched to tolerate it. ## Why this matters Every hack encodes a lie: it leaves the old assumption in place while the system quietly violates it. Agents working at high velocity can accumulate these lies far faster than humans ever could — or, with a habit of small continuous refactors, can pay down assumptions the moment they break, keeping the architecture honest at every commit.
From kasofsk/blessed-practices, MIT.
More from kasofsk/blessed-practices
- 0.524score
comments-describe-the-code
kasofsk
Write comments about the code itself, never about the prompt, conversation, or moment that produced it — and treat a long justifying comment as a signal the…
SkillBFreshness: BClaude Code +9 - 0.524score
design-with-known-limits
kasofsk
Design systems with explicit correctness limits, failure modes, and operational assumptions instead of automatically engineering every weakness away.
SkillBFreshness: BClaude Code +9 - 0.524score
diminishing-returns
kasofsk
Pursue the highest-value work first and stop when the expected value of the next improvement no longer justifies its full cost.
SkillBFreshness: BClaude Code +9 - 0.524score
domain-modelling
kasofsk
Shape the contents of the domain core — ubiquitous language, aggregates as consistency boundaries, entities versus value objects, making illegal states…
SkillBFreshness: BClaude Code +9 - 0.524score
idiomatic-by-default
kasofsk
Take the community-standard path for the language, framework, or ecosystem unless there is an articulable reason not to, and don't escalate a decision the…
SkillBFreshness: BClaude Code +9 - 0.524score
illegal-states-unrepresentable
kasofsk
Make illegal states unrepresentable with precise types, discriminated variants, and boundary parsing.
SkillBFreshness: BClaude Code +9 - 0.524score
layering
kasofsk
Decide where code goes and which way its dependencies point — inward-pointing source dependencies, what the domain, application, adapter and infrastructure…
SkillBFreshness: BClaude Code +9 - 0.524score
modular-and-layered-code
kasofsk
Architect so a future agent can act at a single layer — strict tested contracts between layers, testing concentrated at domain boundaries, pure logic kept…
SkillBFreshness: BClaude Code +9 - 0.524score
push-back-and-verify-assumptions
kasofsk
Treat the operator as a fellow engineer — challenge naive or wrong premises, state assumptions explicitly, keep asking until they are right, and stop rather…
SkillBFreshness: BClaude Code +9 - 0.524score
write-the-present-not-the-diff
kasofsk
Write prose that states what is true now, without narrating the correction, the superseded claim, or the path that got there.
SkillBFreshness: BClaude Code +9 - 0.494score
dependencies
kasofsk
Add, remove, upgrade, or pin a dependency with the ecosystem's package manager instead of hand-editing the manifest.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Last commit (this folder)
- Aug 20, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/kasofsk/blessed-practices
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from kasofsk
- 0.524score
comments-describe-the-code
kasofsk
Write comments about the code itself, never about the prompt, conversation, or moment that produced it — and treat a long justifying comment as a signal the…
SkillBFreshness: BClaude Code +9 - 0.524score
design-with-known-limits
kasofsk
Design systems with explicit correctness limits, failure modes, and operational assumptions instead of automatically engineering every weakness away.
SkillBFreshness: BClaude Code +9 - 0.524score
diminishing-returns
kasofsk
Pursue the highest-value work first and stop when the expected value of the next improvement no longer justifies its full cost.
SkillBFreshness: BClaude Code +9 - 0.524score
domain-modelling
kasofsk
Shape the contents of the domain core — ubiquitous language, aggregates as consistency boundaries, entities versus value objects, making illegal states…
SkillBFreshness: BClaude Code +9 - 0.524score
idiomatic-by-default
kasofsk
Take the community-standard path for the language, framework, or ecosystem unless there is an articulable reason not to, and don't escalate a decision the…
SkillBFreshness: BClaude Code +9 - 0.524score
illegal-states-unrepresentable
kasofsk
Make illegal states unrepresentable with precise types, discriminated variants, and boundary parsing.
SkillBFreshness: BClaude Code +9
Cite this page
fix-the-assumption-not-the-hack skill. Agent Mart. https://agentmart.dev/skills/kasofsk-fix-the-assumption-not-the-hack (last updated 2026-10-24)