claude-code - 💡(How to fix) Fix Plan files should have semantic names, not random three-word slugs [1 comments, 2 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
anthropics/claude-code#46864Fetched 2026-04-12 13:31:03
View on GitHub
Comments
1
Participants
2
Timeline
3
Reactions
0
Timeline (top)
labeled ×2commented ×1

Code Example

enzim-tauri2-gemma4-pivot-1744358400.md
auth-middleware-rewrite-1744444800.md
ci-runner-provisioning-1744531200.md
RAW_BUFFERClick to expand / collapse

Problem

Plan files are auto-named with random three-word identifiers (e.g. wiggly-booping-dragonfly.md). The model that creates the plan has full context about the project, task, and session — yet the naming discards all of that context in favor of randomness. In a directory with multiple plans, the only way to find the right one is to open each file.

Proposal

Default plan file names to a semantic pattern derived from the session context. For example:

enzim-tauri2-gemma4-pivot-1744358400.md
auth-middleware-rewrite-1744444800.md
ci-runner-provisioning-1744531200.md

Pattern: {project-or-theme}-{brief-intent}-{epoch}.md

The epoch suffix guarantees uniqueness without requiring randomness. The semantic prefix makes plans identifiable at a glance in ls, tab-completion, and conversation references.

Why not keep random as a fallback?

The entity generating the name is a language model that has already spent tokens understanding the task. There is no scenario where it lacks context to produce a meaningful name. A random fallback is an invitation to take the cheap path — and every random name is a future grep someone has to run. If the model can write a 10,000-token architecture plan, it can write a 5-word filename.

Additionally, random names impose a recurring token cost: every session that needs to reference the plan must spend tokens re-discovering what wiggly-booping-dragonfly refers to. Semantic names amortize that cost to zero.

extent analysis

TL;DR

Update the plan file naming logic to use a semantic pattern derived from the session context, ensuring uniqueness with an epoch suffix.

Guidance

  • Identify the code responsible for generating the random three-word identifiers and replace it with a function that constructs a semantic filename based on the project, task, and session context.
  • Ensure the new filename pattern includes an epoch suffix to guarantee uniqueness, as proposed in the pattern {project-or-theme}-{brief-intent}-{epoch}.md.
  • Verify that the language model has access to the necessary context information to generate meaningful filenames.
  • Test the updated naming logic to ensure it produces consistent and identifiable filenames.

Example

// Example filename generation function
function generateFilename(project, intent, epoch) {
  return `${project}-${intent}-${epoch}.md`;
}

Notes

The proposed solution relies on the language model having sufficient context to generate meaningful filenames. If the model's context is incomplete or unreliable, the semantic naming approach may not be effective.

Recommendation

Apply the workaround by updating the plan file naming logic to use the proposed semantic pattern, as it provides a more identifiable and efficient way to manage plan files.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING