Why Your Tools Should Be Strict Where Your Attention Is Loose
Hatched by min dulle
Jul 30, 2026
9 min read
2 views
68%
The hidden problem is not complexity. It is ambiguity.
Most people think the struggle with modern work is too much information. That is only half true. The deeper problem is that our tools increasingly ask for precision in the wrong places and offer flexibility in the places where we need structure most.
A type system forces you to be explicit about what a value can be. A productivity assistant tempts you with the opposite promise: let the machine handle the vague parts, and you stay in motion. At first glance, these seem like different worlds, one for developers, one for note takers, managers, and students. But they are really addressing the same human weakness: we are bad at holding ambiguity in our heads for long without either overcomplicating things or dropping them entirely.
That is why the most useful software is not the software that does everything for you. It is the software that helps you decide where to be precise, where to be loose, and where to let the system carry the burden of consistency.
The real value of intelligent tools is not automation. It is disciplined reduction of ambiguity.
Precision is not the opposite of ease
There is a common fantasy about good tools: the best ones make work effortless. But effortless work is rarely high quality work. What good tools actually do is lower the cost of being correct.
Think about a strongly typed system. It does not remove effort. It removes hidden effort. Instead of discovering a mistake after deployment, you are forced to confront it while you are still building. That friction feels inconvenient in the moment, but it protects you from much larger problems later. The system does not let you pretend that a value is something it is not.
Now think about an AI assistant inside a note taking or workspace app. Its promise is similar, if less visible. It tries to reduce the cognitive cost of drafting, summarizing, organizing, and searching. But here is the trap: if the assistant is too generous, it can create the illusion that a vague thought has been clarified when it has only been cosmetically improved. A clean summary is not the same as a clear idea.
This is the central tension: where should the tool insist on correctness, and where should it preserve creative uncertainty? If it insists too much, it becomes rigid and annoying. If it insists too little, it becomes flattering and unreliable.
The best systems understand that friction is not always a bug. Sometimes friction is what turns a rough intention into a durable structure.
The same design principle lives in code and cognition
Strict types and AI assisted workflows look unrelated until you notice that both are trying to solve the same design challenge: how to keep a system from drifting into nonsense.
In code, nonsense appears as invalid states, mismatched data, and assumptions that silently fail. In cognition, nonsense appears as notes that are easy to generate but hard to use, plans that feel productive but never become action, and summaries that are polished enough to hide the fact that nothing meaningful was decided.
A useful mental model is to think of every system as having two layers:
- The expressive layer, where ideas can be loose, exploratory, and incomplete.
- The constraint layer, where the system checks whether those ideas can survive contact with reality.
A typed language pushes more burden into the constraint layer. A smart assistant often tries to ease the expressive layer. But the mature use of any tool is not to maximize either one. It is to decide deliberately how they balance.
For example, consider building a task system in a workspace app. If every task can be written vaguely, with no owner, no due date, and no outcome, then the list becomes a graveyard of intentions. If every task must be perfectly specified before it can exist, then nobody will create tasks at all. The right design is usually somewhere in between: allow quick capture, then enforce structure as the item becomes important.
That pattern mirrors TypeScript itself. You can start with looser representations, then narrow them as the logic becomes clearer. The point is not purity. The point is progressive commitment.
The real power of AI is not generation. It is guided narrowing.
Many people judge AI tools by how much they can produce. But output volume is a misleading metric. A better question is whether the tool helps you move from broad possibility to usable specificity.
A note taking assistant that can brainstorm ten headings is useful. A note taking assistant that can distinguish between a meeting summary, a decision log, a project brief, and a next step list is much more valuable. Why? Because it helps you choose a form that matches your intent.
That is the hidden connection to advanced types in programming. In a type rich system, different shapes encode different meanings. A user object is not a project object. A result is not an error. A nullable field is not the same as a missing field. The distinctions matter because they prevent accidental equivalence.
Human work suffers from the same problem. We collapse too many things into the same vague container called “notes,” “ideas,” or “tasks.” Then we wonder why nothing is easy to find, trust, or act on. Smart assistance should not simply create more content. It should help us preserve meaningful differences.
A useful AI does not just answer questions. It helps you keep categories intact.
This is especially important because we often misuse intelligence as a substitute for structure. We ask a tool to infer what we should have specified. That can feel magical, but it weakens the system if it becomes the default. Magic scales poorly when repeated thousands of times.
The most robust workflows are not those with the most clever automation. They are the ones where the automation handles the repetitive, obvious, low consequence work, while the human enforces the boundaries that give the work its shape.
A framework for deciding what should be strict
If you want a practical way to think about this, use a simple rule: make the system strict where mistakes are expensive, and make it flexible where exploration is the point.
That sounds obvious until you try to apply it. In practice, many systems do the opposite. They are permissive where they should be exact, and exact where they should be permissive.
Here is a useful test:
1. Is the thing reversible?
If yes, loosen it. If you can easily edit, delete, or revise the output, then the system can afford to be permissive. Drafting a note, brainstorming names, or capturing a rough idea should feel fast and forgiving.
2. Is the thing operationally binding?
If yes, tighten it. If a field controls behavior, permissions, billing, deployment, or accountability, then the system needs stricter checks. A wrong assumption here creates real cost.
3. Will the user regret ambiguity later?
If yes, require structure now. Many problems are not caused by missing information, but by information that was captured in a way that could not survive later use.
4. Is the tool helping decide or merely decorate?
If it only makes things look better, be suspicious. A polished note with no actionable structure is often just aesthetic debt.
This framework applies to software design, team workflows, and personal knowledge management. It also explains why some AI features feel transformative for a week and then become noise. They produce fluency, but not necessarily durability.
The goal is not to make everything rigid. The goal is to make the system increasingly trustworthy as the stakes rise.
The best systems compress uncertainty without erasing it
Here is the most useful way to connect these ideas: strong tooling should not eliminate uncertainty too early. It should compress uncertainty until it becomes manageable.
In programming, a type system compresses possible states into a smaller, safer set. You do not eliminate complexity. You reorganize it so that the impossible states become impossible, or at least visible.
In a workspace or AI assisted environment, the equivalent move is to take a sprawling, ambiguous input and compress it into a form that can be acted on without pretending the ambiguity never existed. A messy meeting transcript can become a decision summary, but the summary should retain the difference between what was agreed, what was inferred, and what remains open.
That distinction matters because people often confuse compression with deletion. Compression preserves signal in a denser form. Deletion removes signal altogether. Good AI should compress, not erase.
Imagine a project manager using an assistant to summarize a planning session. A bad summary says, “The team agreed on the launch strategy.” A better one says, “The team tentatively agreed on a phased launch, pending pricing confirmation and legal review.” The second version is more valuable because it preserves uncertainty in a usable way. It does not flatten reality into false certainty.
That is exactly what advanced types do in code. They keep track of the edge cases so the program cannot casually forget them.
The deeper lesson: structure is a form of care
There is an ethical dimension to all of this. We often talk about structure as if it were bureaucratic, but structure is actually a way of respecting future readers, future collaborators, and your future self.
A typed interface says, in effect, “I am going to tell you what this thing is so you do not have to guess.” A well designed AI workflow says, “I am going to reduce your search cost, but not at the expense of misleading you.” Both are acts of consideration.
This is why the best tools are not simply smarter. They are more honest about uncertainty.
That honesty shows up in small design choices:
- Distinguishing drafts from decisions.
- Separating generated text from verified facts.
- Marking optional fields instead of quietly filling them with defaults.
- Making the user confirm important actions rather than assuming intent.
These are not just technical niceties. They are ways of preventing confusion from becoming institutionalized.
The more powerful a tool becomes, the more important this discipline is. Without it, intelligence turns into plausible drift, where everything looks helpful until nobody can remember which parts are true, which parts are provisional, and which parts are merely convenient.
Key Takeaways
- Use strictness where mistakes become expensive. Let systems enforce correctness around decisions, permissions, data integrity, and irreversible actions.
- Allow looseness where exploration matters. Drafting, brainstorming, and early capture should be quick, low friction, and easy to revise.
- Prefer compression over simplification. Good tools reduce complexity without erasing important distinctions.
- Watch for decorative intelligence. If a feature makes output prettier but not more trustworthy, it is creating aesthetic debt.
- Preserve uncertainty explicitly. Tag drafts, tentative conclusions, and open questions so they do not masquerade as facts.
Conclusion: the future belongs to systems that know what not to guess
The most important question in designing software, workflows, and even personal systems is not how much intelligence you can add. It is where intelligence should stop and structure should begin.
A world flooded with automation does not need more guessing. It needs better boundaries. It needs tools that know when to insist, when to infer, and when to leave uncertainty visible. That is what makes a system trustworthy, not just convenient.
So the next time you evaluate a tool, do not ask only whether it is smart. Ask a deeper question: Does it help me hold the right things loosely and the right things tightly? If the answer is yes, you are not just using software. You are building a more honest relationship with complexity.
Sources
Hatch New Ideas with Glasp AI 🐣
Glasp AI allows you to hatch new ideas based on your curated content. Let's curate and create with Glasp AI :)
Start Hatching 🐣