2026.08.12 (Wed)

✨ GPT-5.6 Sol’s Summary

A record of tracing why a 258k context window was filling so quickly at the start of a chat, rejecting a token cut limited to a few lines, and rewriting my shared rules and Skills in compressed English without changing their meaning.

The Context Was Filling Up Before I Had Even Started Working

I opened a new conversation with Codex and found that a sizable part of the context was already occupied. The maximum was 258k, yet my shared rules and the Skill list were taking their share before any real work had begun.

I first asked how much context was loaded at the start of a conversation. When Codex gave me an absurdly larger number, I corrected it immediately.

“No, 258k is the maximum. I guess the global rules are too big…”

In hindsight, it was not surprising. Whenever AI made a mistake, I had added another shared rule telling it never to repeat the same failure. Authority, Git, credentials, deployment, browsers, UI/UX, documentation, Goals, parallel work, and the boundary between company and personal projects had all accumulated there. I turned repeated work into Skills, and whenever a Skill failed, I added another exception or verification procedure.

I wanted AI to stop losing context from one task to the next. I had even been pleased that I had connected the flow and feel of my work with Codex Skills. But when the devices built to preserve context grow too long, they consume the space meant for new work. The clues that once carried the flow forward had started to become baggage.

I Refused to Stop After Deleting a Few Lines

At first, I asked for an audit that would remove only things guaranteed not to degrade performance. Codex cautiously cleaned up a few duplicates and some obviously long passages.

The result frustrated me immediately.

“That’s all…? What about compressing uselessly long descriptions and things like that? Did you actually apply every method you think is best?”

I was not asking to delete a handful of sentences. I wanted to fix the structure itself: the same safety condition repeated across several paragraphs, one decision circling through long descriptions, and details already held in a reference or script copied into the Skill body again.

But optimizing only for brevity would have been more dangerous. If explicit approval became merely approval, or the exact target and scope blurred into check when necessary, the token count would fall while the AI’s behavior changed. In rules about credentials, destructive changes, Git ownership, deployment, and customer UI, one sentence that looks minor can move the actual authority boundary.

So I reset the criterion: cut examples and repeated explanations, but preserve every condition, prohibition, exception, verification step, and stop rule that determines behavior.

I Measured Whether Korean or English Used Fewer Tokens

Along the way, I considered translating every Skill into Korean. Korean is easier for me to read and edit, but the goal was not comfort for my eyes. It was to reduce the tokens Codex consumed.

I wrote compressed Korean and English samples with the same meaning and ran them through the actual tokenizer. For several Skill descriptions I had written, compressed English was clearly shorter. That did not mean Korean was always more expensive. But in many of my accumulated shared rules, English preserved the meaning with fewer tokens.

At that point, the direction became obvious.

“Then it would be better to rewrite all the shared rules and Skills in compressed English, right? It saves tokens.”

I did not erase Korean indiscriminately. I kept Korean trigger phrases I actually use, user-facing status names and output examples, and established company terms whose recognition would weaken in translation. I rewrote the remaining explanations and procedures as short English sentences.

Codex loads each Skill’s name, description, and path into the initial context, then reads the full SKILL.md only when that Skill is triggered.1 So I first reduced the global rules and Skill discovery descriptions that are always present, then separately compressed large network-inventory and writing Skills that arrive as heavy blocks when invoked.

I Checked Whether the Shorter Rules Still Produced the Same Behavior

This time, I did not treat “translated into English” as the completion criterion. I first rewrote a representative subset: part of the shared safety rules, an audit Skill, and a time-recording Skill. An independent reviewer compared the originals with the compressed versions and initially caught a weakened condition in the audit Skill: behavior unrelated to the existing architecture still had to be preserved.

I restored that condition and had the same reviewer check it again. Then I applied the pattern to the rest of the shared rules and all thirteen user-authored Skills. Finally, a different session from the original reviewer compared all twenty-nine files against their sources. It checked whether the shorter text still produced the same authority boundaries, stop conditions, verification procedures, and output contracts. No material omission remained.

The numbers made the change visible. Under the o200k tokenizer, the global rules that are always read fell from 14,933 tokens to 10,644, a reduction of about 28.7%. Skill descriptions exposed at the start of a conversation fell by about 31.1%. Two large references loaded on invocation fell by about 50.5%. Across the full compared scope, the total dropped from 81,347 tokens to 62,765, about 22.8%.

Because full Skill bodies are not all loaded at startup, I cannot call that 22.8% the direct “conversation startup cost.” Still, the always-present portion became smaller immediately, and invoking a heavy Skill now adds less context as well.

Context Needs Density, Not Just Volume

I used to respond to AI mistakes only by writing more rules. I believed that more specificity would prevent errors, and that preserving examples would help the next session understand. That was not entirely wrong. Those rules had prevented many failures.

The problem was that I kept adding rules and almost never compressed them afterward. Sentences preventing the same failure appeared in several places, explanations of recent incidents remained as permanent rules, and long passages written to make one point clear became the default cost of every task.

I did not remove the safeguards this time. I removed the repetition and length wrapped around their explanation. I kept what must be protected, when to stop, who must approve, and how to verify, while stripping out sentences that repeatedly argued why the rule existed.

Giving AI more context and giving it better context are different things.

From now on, adding a new sentence will not be the end of maintaining a shared rule or Skill. I also need to check whether the same meaning already exists, whether an incident can become an invariant, and how many words remain that do not change behavior. Context is not an infinite warehouse.

Rather than storing more memory, I want to make it possible to reproduce the same judgment with fewer tokens.

This time, I moved one step further in that direction.

References

  1. OpenAI, Codex Skills. Explains the progressive loading of Skill discovery metadata and full instructions. 

Leave a comment