When Your Tools Start Fitting in Your Head, Your Files Stop Fitting in Git

Gleb Sokolov

Hatched by Gleb Sokolov

Jul 16, 2026

9 min read

68%

0

The hidden problem is not file size. It is mental size.

What if the real reason teams drown in oversized repositories is not that they store too much, but that they think about storage too narrowly? A giant file in version control is usually treated as a hygiene issue, something to ignore, compress, or blacklist. Yet the deeper problem is not just bytes on disk. It is the way modern development accumulates invisible complexity faster than our habits for managing it.

That is why the seemingly unrelated worlds of prompting libraries and tools and ignoring files by size belong in the same conversation. One is about helping people work with language models through reusable scaffolding. The other is about helping people keep bloated artifacts out of source control. Together they point to a larger principle: good systems do not merely automate tasks, they set boundaries around complexity.

The question underneath both is the same: how do you keep a working environment powerful without letting it become unmanageable?


The real currency of engineering is not data, but attention

A repository is not just a place where code lives. It is a shared cognitive space. Every file you commit asks for future attention, even if only indirectly. Large binaries, generated artifacts, model outputs, and accidental dumps are expensive not because they are large in isolation, but because they distort the signal of what matters.

That is where file size filtering becomes more than housekeeping. It is a form of attention governance. If your version history contains everything, then every clone, diff, review, and backup inherits the burden of irrelevance. The repository stops being a precise instrument and becomes a storage closet.

The same logic appears in prompting libraries and tools. At first glance, these tools seem like convenience layers, little wrappers that make it easier to call models or standardize prompts. But their deeper purpose is organizational: they reduce the number of ways humans can repeat the same fragile work. Instead of every engineer inventing their own prompt conventions, parsing routines, and retry logic, the team shares a small set of patterns that preserve attention for higher-order decisions.

The most valuable tool is often the one that removes the need to remember one more rule.

This is the subtle link between pruning files and structuring prompts. Both are attempts to stop the environment from consuming the operator.


Why every flexible system eventually needs a boundary

We often celebrate flexibility as if it were free. But flexibility has a dark side: without constraints, it invites drift. Repositories absorb generated assets, temporary exports, model logs, and massive archives because all of them are technically possible to store. Prompting workflows do the same when every project invents its own ad hoc formats, templates, and instructions.

The result is the same in both cases: the system becomes full of things that are permissible but not portable.

A useful mental model here is to distinguish between working memory and archival mass:

  • Working memory is what needs to stay small, fast, and inspectable.
  • Archival mass is what can exist somewhere else, if needed, but should not dominate the active workspace.

Git is brilliant when it tracks the first category. It becomes awkward when asked to become a warehouse for the second. Likewise, prompt libraries shine when they encode reusable patterns. They become less useful when they try to become a giant cemetery of one-off prompts, ever-growing and impossible to reason about.

Imagine a chef’s counter. The knives, cutting boards, and ingredients in active use belong there. The bulk flour bags, spare pans, and seasonings can live nearby, but not all on the counter at once. A cluttered counter is not just untidy. It slows judgment. The same is true of a repository or a prompting stack.

The deeper discipline is not exclusion for its own sake. It is placement. Knowing what belongs in the active surface and what belongs in a separate layer is what makes the whole system workable.


Prompting libraries and gitignore rules are both forms of architecture

Most teams think of tools like prompting libraries as ergonomic helpers and ignore rules as maintenance scripts. That framing is too small. Both are architectural moves, because both define the shape of what counts as first-class in a system.

A prompting library does not just shorten prompts. It creates a shared grammar for interaction. It says that some behaviors are repeatable enough to codify, while others should remain flexible. It turns language into infrastructure. Similarly, an ignore rule does not just hide files. It defines the perimeter of what the repository is for.

This is why size-based ignoring can feel deceptively simple. You might think the rule is merely “exclude files larger than some threshold.” But the real decision is conceptual: What kinds of artifacts deserve versioned citizenship, and what kinds should be treated as disposable byproducts?

That distinction matters because version control is often misused as a substitute for storage strategy. If a file exists, it gets committed. If a prompt exists, it gets copied into the nearest notebook. Over time, the system stops reflecting design and starts reflecting convenience.

Good architecture resists that slide. It introduces friction at exactly the right places:

  1. Generated artifacts should be easy to reproduce, not easy to commit.
  2. Prompt patterns should be reusable, not endlessly duplicated.
  3. Large or volatile outputs should have a path outside the core workflow.
  4. Human effort should be spent on decisions, not on policing repetition.

The common thread is that architecture is not just about structure. It is about protecting meaning from noise.


The best systems do not scale by accretion. They scale by curation.

Many teams imagine scaling as accumulation. More files, more prompts, more utilities, more examples, more logs, more everything. But healthy systems scale differently. They scale by curating what stays close and what gets externalized.

Think about what makes a prompting library genuinely useful. It is not the sheer number of templates. It is the degree to which the library captures recurring intent. A strong library helps you express, in a compact form, things you would otherwise explain over and over. It is a compression scheme for human judgment.

Now compare that to a repository policy that filters files by size. The objective is not to delete useful information. The objective is to prevent bulky or volatile artifacts from masquerading as essential context. It is a compression scheme for operational clarity.

Both are examples of selective compression. They do not minimize information indiscriminately. They preserve the parts that support understanding and remove the parts that mostly create drag.

This leads to a practical test: if something is large, ask whether it is large because it is meaningful or because it is unprocessed. A training output, an exported dataset, a rendered report, or a generated image may be important, but that does not automatically mean it belongs in the center of version control. Likewise, a prompt may be long because it is precise, or long because no one has yet extracted the reusable pattern from it.

The difference is crucial. Mature systems make the distinction explicit.

Size is often a symptom. The real question is whether the thing is carrying signal, or merely carrying baggage.


A practical framework: surface, seam, and storage

To design saner workflows, use a three layer model:

1. Surface

This is the active workspace. It should be small, legible, and optimized for daily decisions. In Git, this means source code, configuration, and the smallest set of necessary fixtures. In prompting workflows, this means the standard templates, common patterns, and canonical instructions.

2. Seam

This is where transformation happens. Files are generated, prompts are parameterized, outputs are validated, and artifacts move between states. The seam is where automation belongs, because it is where repeatable work accumulates.

3. Storage

This is the archive, the cache, the external bucket, the dataset store, the model output repository, or the artifact registry. It can be large, but it should not be confused with the core workspace.

The mistake many teams make is allowing storage to leak into the surface. Large binaries end up in Git. One-off prompts are copied into every ticket. Temporary outputs become permanent fixtures. Over time, the surface thickens, and every task becomes harder.

This framework also clarifies why tooling matters. Prompting libraries are useful when they help manage the seam. Ignore rules are useful when they keep the surface clean. Both are less about power than about discipline in motion.

A healthy system does not ask every person to manually remember the boundary. It builds the boundary into the workflow.


Key Takeaways

  • Treat repository size as an attention problem, not just a storage problem. Large files are costly because they make the whole system harder to reason about.
  • Separate what must be worked on from what merely must be kept. Put active, inspectable material on the surface, and move bulky or volatile artifacts to storage.
  • Use prompting libraries to compress recurring judgment. If a prompt pattern is repeated, encode it once so the team stops reinventing it.
  • Prefer curation over accumulation. Systems scale better when they preserve only the artifacts that increase clarity and reuse.
  • Ask whether large artifacts are meaningful or just unprocessed. A big file, like a long prompt, may signal missing structure rather than necessary complexity.

The deeper lesson: good tools shrink the distance between intent and action

The best engineering tools do something almost paradoxical. They expand what you can do while shrinking what you need to think about. A prompting library lets you express a sophisticated interaction pattern without rebuilding the scaffolding each time. A size-aware ignore strategy keeps your repository from being clogged with material that obscures what the project actually is.

This is not just convenience. It is a philosophy of work. The highest function of tooling is not to make everything possible. It is to make the important things easier to preserve, easier to repeat, and harder to drown in noise.

That is why file hygiene and prompt hygiene are not separate habits. They are both expressions of the same maturity: knowing that a system becomes powerful not when it contains everything, but when it clearly distinguishes between the core, the seam, and the surplus.

In that sense, the question is never really whether a file is too large or a prompt too verbose. The deeper question is whether your workflow still has a shape you can understand. When it does, tools serve you. When it does not, they merely help you scale confusion.

The real win is not a smaller repository or a shorter prompt. It is a system that remains legible as it grows, so that complexity stays under human control instead of quietly taking over.

Sources

← Back to Library

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 🐣