2026.05.25 (μ›”)

✨ GPT-5.5 Summary γ€€

A record of reopening a stalled GitHub Pages blog, separating Daily Review from AI conversation archives, and restarting it as a public record system.

Today I reopened the blog.

This was not just about writing one post. It was about bringing a stalled GitHub Pages blog back into a state where I could actually work on it again.

The starting point was the May 25 Daily Review. That post was a declaration that I would start recording daily again, and at the same time, it contained too much at once. Anger over the reservist death incident, disgust toward politics, self-checking around faith and execution, the idea of using AI as a self-management tool, and the decision to restart the blog were all inside one post.

At first, I thought that was fine.

Since it was the first day of the restart, I thought I could leave even the conversation that pushed me there. But when I actually looked at the file, it was not a Daily Review. It was closer to a conversation archive than a daily record. If I attach a thousands-of-lines-long full conversation to a Daily Review, that post is no longer a record I can continue every day.

So today’s first decision was simple.

Separate Daily Review from the AI conversation archive.

I Started by Setting the Conditions

To restart the blog, I needed an operable structure before a dramatic declaration.

The conditions were these.

  • Keep Daily Review light enough to write every day.
  • Separate long AI conversations into archive posts.
  • Make conversation archives look like posts, not exporter dumps.
  • Mask profanity and aggressive expressions for public reading.
  • Visually distinguish user messages from AI responses.
  • Make each post’s category immediately visible in archive lists.
  • Prevent code blocks or long conversation cards from pushing the screen sideways on mobile.

Written like this, it sounds like cleanup work.

But in reality, it was removing the biggest thing blocking the blog restart. If the first restart post is too large, I will stop again from the next day. Today’s core was not to make a post bigger. It was to make the blog usable enough that I could keep writing again.

I Took the Full Conversation Out of Daily Review

At first, I put the full conversation inside the May 25 Daily Review in a collapsed section.

But this approach quickly showed its limits.

Daily Review should record the day’s wins and losses, outputs, body log, and avoidance log. If a conversation transcript of almost 2,900 lines enters that post, the post’s character becomes blurry. Readers get confused, and I do not want to keep using that same format the next day.

So I separated the conversation into its own post.

_posts/daily-review/2026-05/2026-05-25-2026-05-25.md
_posts/diary/ai/2026-05-25-reservist-anger-to-blog-restart.md

On the Daily Review side, I reduced the massive conversation dump and created a separate conversation archive.

This was the core.

A daily record remains a daily record. A conversation archive remains a conversation archive. Do not mix the two.

I Turned an Exporter Dump into a Post

An AI conversation export is hard to read if pasted as-is.

Search logs, image links that may expire, repeated metadata, and miscellaneous structures from the middle of the conversation all get mixed together. If I publish it that way, it is β€œrecorded,” but it is not a β€œpost.” It can remain on the blog, but it will not be read.

So I converted the conversation archive into a card structure.

<section class="conversation-entry conversation-entry--user">
  <div class="conversation-meta">Me Β· 2026.05.25 09:12:38</div>
  <div class="conversation-body">
    ...
  </div>
</section>

User messages are highlighted in a yellow-ish tone, and AI responses use a quieter background. I created classes such as conversation-meta, conversation-body, conversation-mask, and conversation-code. Profanity remains visible as ***, but does not jump out directly in the public post.

This was not just CSS decoration.

It was the process of turning a conversation into public material. Without completely erasing the original, I wanted blog readers to follow where the topic changed, who said what, and why the conversation led to the restart declaration.

I Reorganized the Metadata Too

After separating the post, another issue appeared.

If the archive list only shows the title and date, it is hard to tell whether a post is a Daily Review, an AI archive, a development log, or a tip. If the blog is going to grow again, context needs to appear from the list itself.

So I added category display to _includes/archive-single.html.

I mapped daily-review to Daily Review, diary to Diary, ai to AI, and github-pages-blog to GitHub Pages Blog. Instead of printing raw categories, I converted them into names actual readers see.

At first, I placed the category chips below the body metadata, but they quickly looked too scattered. I revised it again so the date metadata and category chips sit on the same line.

Date / Category chips / Summary

This small change improved the information density of archive lists. It also matters from a portfolio perspective. It makes the blog look less like a place that simply writes posts and more like a system that distinguishes content types and improves navigation.

I Fixed the Parts That Broke on Mobile

Once conversation cards and code blocks were added, mobile issues followed.

If long sentences, quotes, code blocks, and copy buttons push the screen sideways, the blog immediately looks rough. In particular, the Minimal Mistakes code copy button is convenient, but on narrow screens, the button itself can create overflow.

So I fixed several things right away.

.conversation-entry {
  overflow-wrap: break-word;
}

.conversation-body {
  min-width: 0;
}

.clipboard-copy-button {
  overflow: hidden;
}

I also adjusted margins for headings, blockquotes, and first/last paragraphs inside conversation cards. On mobile, I reduced card padding and internal heading sizes.

These fixes are not very visible. But from a portfolio perspective, they are important. It means I did not stop after attaching a feature. I followed the actual screen and polished the parts that broke.

What Changed Today

Today’s changes can be summarized roughly like this.

Organized blog operation rules in AGENTS.md and _project/blog-system/README.md
Removed the full conversation from Daily Review
Created a separate AI conversation archive post
Added conversation-entry based conversation card styles
Defined profanity masking and omitted-attachment rules
Added category chips to archive lists
Organized date metadata and category chip layout
Unified conversation timestamps in Korean notation
Applied conversation cards
Fixed mobile overflow in conversation cards and code copy buttons

Looking at the commit flow, quite a lot happened in a short time.

d3fb3d5  clean blog project files
1d36a01  clean #87 transcript
1d9ab13  restore #87 toc
ccb9139  archive #87 transcript
310b3af  show archive categories
4579858  refine archive post metadata
fb3516b  localize conversation timestamps
0564866  apply conversation cards
244a4a5  prevent mobile copy-code overflow

In one sentence:

I turned the blog restart declaration into an actually operable record system.

Result

Today, the blog reopened.

But more importantly, it was not just that one post went up. The structure was restored.

Daily Review stayed as a record that can continue every day, and long AI conversations were separated into dedicated archives. The conversation archive became readable public material instead of an exporter dump. I added category context to archive lists, and I fixed the parts that broke on mobile.

This was not a flashy feature addition. But as the first step in reviving the blog, it was exactly right.

If I am going to write again, the blog cannot be just an emotional storage room. It has to be an operable system. What I did today was restore the minimum skeleton of that system.

I like this point from a portfolio perspective too.

The problem was clear. The first restart post had become too large and risked breaking the daily record system. The solution was not simple deletion. I separated content types, built UI, reorganized metadata, and polished mobile rendering.

It is easy to say I am starting the blog again.

Today, I turned that sentence into file structure, templates, styles, metadata, and mobile screens.

Leave a comment