Name Review
Boundary-aware naming review improves the system's conceptual vocabulary. Do not begin by renaming. First understand the target, its boundaries, and the concepts that names are supposed to carry.
Core Principle
A rename is only an improvement when it makes the system easier to reason about across time, contributors, tools, and boundaries.
Optimize for:
- one concept with one primary name
- one primary name that points to one concept
- related concepts forming coherent name families
- contrasting concepts contrasting clearly
- names that remain clear out of context
When To Use
Use this skill when the user asks to review, improve, audit, defuzz, or design names in:
- a plan, PRD, spec, architecture note, or implementation proposal
- beads, issues, tickets, tasks, or work items
- an existing codebase, package, module, API, schema, CLI, event set, or data model
- a mixed target where plans and code need vocabulary alignment
- any artifact where terms feel overloaded, vague, misleading, inconsistent, or likely to confuse coding agents
Do not use this skill for pure prose copyediting, brand naming, or stylistic polish unless those names also affect system boundaries or implementation concepts.
Required First Move: Determine The Target
Identify the target before reviewing names. The target is usually one or more of:
- plan
- beads or work items
- architecture docs
- existing codebase
- mixed plan plus codebase
If the user has not clearly specified the target and no artifact can be inferred from context, ask which of these you are analyzing before continuing. If there is an obvious artifact in context, state the target assumption and proceed with a bounded review.
Record:
- artifact type and scope
- evidence inspected
- evidence missing
- whether recommendations are review-only or implementation-ready
- whether public contracts or persisted names are in scope
Default to review-only. Do not edit files, rename symbols, rewrite plans, or modify work items unless the user explicitly asks for implementation.
Operating Rules
- Be boundary-first, not word-first.
- Familiarize yourself with the system before judging names.
- Preserve names that are already good.
- Prefer convergence over churn.
- Do not recommend style-only renames.
- Do not invent a cleaner vocabulary that is incompatible with the system's actual meaning.
- Do not flatten real distinctions just because two names look similar.
- Treat public APIs, persisted schemas, event names, CLI commands, URLs, package names, and user-facing names as migration-sensitive.
- Ignore incidental local names unless they create real ambiguity or expose a larger conceptual problem.
- Prefer the smallest set of high-leverage renames.
- Accept "no findings" as a valid outcome when the vocabulary is already clear or the available evidence does not justify churn.
Boundary And System Map
Before evaluating names, build a rough model of the target. Scale depth to evidence and requested scope; do not exhaustively inspect every surface unless the user requested a broad audit, but do not skip this step.
Map:
- major domain concepts
- actors, users, systems, and external integrations
- modules, packages, folders, subsystems, or work streams
- layer boundaries: UI, domain, application, infrastructure, persistence, transport, operations
- ownership boundaries: which module, team, work item, or artifact owns each concept
- lifecycle and state boundaries
- dependency and call relationships
- public interfaces and external contracts
- data model, API, event, job, command, workflow, and storage boundaries
- source and target boundaries for data flow
Distinguish domain concepts from implementation details. Domain names should not be replaced with generic software names unless the domain name is misleading.
Concept And Vocabulary Map
Create a vocabulary map before proposing changes.
For each concept, track:
- concept
- current names used
- locations or surfaces
- owning boundary or module
- adjacent or easily confused concepts
- status: canonical, inconsistent, overloaded, ambiguous, misleading, or acceptable
- whether the name is public, shared internal, or local
Look across all available naming surfaces:
- directories, files, packages, modules
- classes, types, interfaces, schemas, DTOs, records
- functions, methods, commands, jobs, events
- routes, endpoints, database tables and fields, configs
- tests, fixtures, comments, logs, metrics, docs
- plan headings, milestones, beads, issue titles, acceptance criteria
- diagrams, glossary terms, ADRs, operational runbooks
Always check both directions:
- same concept, different names
- same name, different concepts
Same-name/different-concept conflicts are usually higher priority than simple synonym drift because they cause readers and coding agents to merge concepts incorrectly.
Review Lenses
Run the naming review through these lenses and cross-link findings back to the concept map.
| Lens |
Focus |
| Boundary |
Does the name expose, hide, or blur the correct boundary? |
| Concept |
Does the name point to one real concept? |
| Responsibility |
Does the name match what the module or artifact owns? |
| State |
Does the name preserve lifecycle distinctions? |
| Layer |
Does the name mix domain, UI, persistence, infrastructure, or protocol language? |
| Publicness |
Is the rename cost different because the name is external, persisted, or user-facing? |
| Searchability |
Can humans and agents grep, discuss, and trace the concept reliably? |
| Family |
Do related names form a coherent family without weak suffixes? |
Naming Rubric
A strong name is:
- specific, not generic
- bounded to the actual responsibility
- distinguishable from nearby concepts
- consistent with the project's vocabulary
- stable across likely implementation changes
- readable in code, docs, logs, diagrams, tickets, and discussion
- searchable and easy to grep
- role-revealing when the role matters
Useful role words include:
- model
- service
- adapter
- policy
- event
- command
- query
- store
- repository
- schema
- record
- request
- response
- job
- projection
- snapshot
- definition
- execution
Use role words only when they add real boundary information. Do not add suffixes as decoration.
Failure Modes To Check
Look specifically for:
- one word used for multiple concepts
- multiple words used for the same concept
- folder or module names that do not match the responsibility inside
- names that blur ownership, modules, or layers
- names that leak implementation detail into domain language
- domain names replaced by generic software terms
- vague generic names such as
Manager, Helper, Utils, Processor, Handler, Engine, Core, Common, Misc, Data, or Info unless narrowly justified
- weak suffix or prefix distinctions such as
XData, XInfo, XPayload, NewX, X2, BaseX, or CommonX
- unclear state distinctions: draft versus submitted, requested versus actual, template versus instance, definition versus execution, planned versus observed, source versus target, input versus output, internal versus external
- singular/plural inconsistency
- verb/noun inconsistency
- entity/model/schema/DTO/record confusion
- names whose scope is broader or narrower than the thing they name
- clever names that are not explicit
- abbreviations that hide important concepts
- overloaded roots that force readers to rely on surrounding context
- work item titles that sound elegant but no longer identify a concrete deliverable
- architecture component names that say category but not responsibility
- code names that are semantically right but too expensive to change now
Target-Specific Guidance
Plans, PRDs, And Specs
Optimize for implementation-ready concept formation.
Check:
- whether feature names hide multiple concepts
- whether future modules, APIs, schemas, jobs, or events have stable names
- whether product, domain, and implementation terms are mixed
- whether vague terms such as "system", "workflow", "pipeline", "engine", "sync", or "manager" stand in for unresolved design
- whether planned state names distinguish definition, request, execution, observation, and result
Treat plan vocabulary as provisional unless supported by implementation or domain evidence. Prefer vocabulary proposals over hard rename mandates when the design is not yet settled.
Beads, Issues, Tickets, And Work Items
Optimize for executable work boundaries.
Check:
- whether each title names a concrete deliverable
- whether dependencies and sequencing are visible
- whether the name identifies the right layer: product, domain, infra, migration, test, docs, operations
- whether nearby work items use competing names for the same concept
- whether similar titles actually describe different lifecycle phases
- whether acceptance criteria use the same vocabulary as the title
Do not abstract work item names past the point where a contributor can tell what to build.
Architecture Docs
Optimize for responsibility and boundary clarity.
Check:
- whether a named component is a domain concept, module, adapter, storage mechanism, protocol, external system, or UI concept
- whether the name describes what the component owns rather than how it happens to be implemented
- whether external systems are clearly distinguished from internal abstractions
- whether diagram labels, prose, APIs, and schemas use compatible vocabulary
- whether broad names like
Orchestrator, Coordinator, Engine, or Service hide multiple responsibilities
Architecture names should make the next boundary obvious.
Existing Codebases
Optimize for observed usage and safe convergence.
Start with repo instructions, folder structure, entrypoints, tests, schemas, public interfaces, and recent or relevant code paths. Inspect call sites and adjacent names before judging an identifier.
Classify each name as:
- public or external contract
- persisted or serialized contract
- shared internal concept
- module-private concept
- local incidental symbol
For public, persisted, generated, or serialized names, weigh compatibility and migration cost before recommending a rename. When the rename is correct but expensive, mark it "rename later" or "rename when next touched" unless the current name is actively dangerous. Include a concrete migration note: coordinated replacement, version boundary, schema migration, generated artifact update, release note, or "do not rename now."
Mixed Plan Plus Codebase
Compare intended vocabulary with implemented vocabulary without assuming either is canonical.
Classify drift:
- plan term absent from code
- code term absent from plan
- same term, different meaning
- different terms, same meaning
- plan abstraction too broad
- code abstraction too broad
- plan stale after implementation learning
- implementation leaked infrastructure terms into domain language
Align future planned names with the existing canonical vocabulary unless the existing vocabulary is itself the source of confusion.
Recommendation Priority
Prioritize recommendations in this order:
- core domain vocabulary
- subsystem, module, package, or architecture boundary names
- public APIs, schemas, routes, events, commands, and persisted fields
- shared internal types, classes, services, functions, and jobs
- lower-level internals and local names
Use this severity scale:
| Priority |
Meaning |
Typical action |
| P1 |
Same name for different concepts, misleading boundary, or high-risk public confusion |
Rename now or create a concrete migration plan |
| P2 |
Same concept has multiple shared names, or responsibility has drifted |
Rename now if scoped, otherwise rename when next touched |
| P3 |
Scope, state, role, or family naming is weak but contained |
Monitor or rename later |
| P4 |
Style preference or local polish |
Keep |
Do not rename a local symbol if the real problem is the parent concept or boundary.
Usually omit P4 observations unless the user asks for exhaustive notes.
Output Format
For broad or thorough reviews, produce output in this structure:
- Target analyzed
- Boundary and system map
- Observed canonical vocabulary, or proposed canonical vocabulary when supported by evidence
- Naming issues found
- Recommended renames, prioritized
- Risks to prevent going forward
- Open questions or assumptions
For narrow or quick reviews, preserve the same logic but compress the output to target analyzed, high-value naming issues, prioritized recommendations, and assumptions.
For each naming issue, include:
- current name
- location or scope
- intended concept
- why it is confusing
- problem type: semantic, boundary-related, state-related, role-related, public-contract, or stylistic
- evidence inspected
- recommended action: keep, rename now, rename later, or monitor
For each rename recommendation, include:
- proposed new name
- rationale
- confidence
- blast radius
- timing: change immediately, change when next touched, or defer
- migration note when public, persisted, generated, or serialized names are involved
If there are no worthwhile renames, say so. A good name review may preserve the vocabulary and only document why it works.
Common Mistakes
| Mistake |
Correction |
| Starting with a rename list |
Build the boundary and concept map first. |
| Renaming because a word feels generic |
Prove it hides a concept, boundary, state, or responsibility. |
| Normalizing all synonyms |
First decide whether they are truly the same concept. |
| Treating code as the only evidence |
Include docs, tests, schemas, APIs, diagrams, issues, logs, and plans when available. |
| Treating the plan as automatically canonical |
Compare plan and code; decide whether the plan is stale, the code is leaky, or both are valid layers. |
| Ignoring public contracts |
Mark migration-sensitive names and avoid casual churn. |
| Inventing clever families |
Prefer explicit, searchable, boring names that encode real distinctions. |
| Fixating on locals |
Find the highest stable boundary that owns the concept. |
Red Flags
Stop and reframe if you catch yourself saying:
- "This just sounds better."
- "Everything should use one term" before proving concept equivalence.
- "This is only internal" without checking serialization, docs, tests, logs, or generated outputs.
- "The code already knows what this means."
- "The plan name must be right because it came first."
- "The implementation name must be right because it exists."
- "Manager/Helper/Engine is fine because it is common."
Compact Example
Issue:
- current name:
Job
- location or scope: plan headings,
jobs table, worker module, UI task list
- intended concept: three concepts are using one root: durable background execution, user-visible task, and scheduled template
- why confusing: future implementers may merge lifecycle state for template, queued execution, and displayed task
- problem type: semantic and state-related
- evidence inspected: plan milestones, schema draft, worker folder names, UI labels
- recommended action: rename now
Recommendation:
- proposed names:
JobDefinition, JobRun, TaskCard
- rationale: separates definition versus execution versus UI presentation
- confidence: high
- blast radius: medium if schema already exists, low if still in plan
- timing: change immediately before APIs and persistence solidify
Naming rule:
- Use
Definition for reusable configuration, Run for one execution, and UI-specific names only at the presentation boundary. These suffixes are justified because they encode lifecycle and boundary distinctions, not decoration.
1---2name: name-review3description: Use when reviewing or designing names for plans, beads, work items, architecture docs, codebases, APIs, schemas, modules, states, or domain vocabulary where terminology drift, overloaded concepts, boundary ambiguity, or AI-confusing naming may exist.4---56# Name Review78Boundary-aware naming review improves the system's conceptual vocabulary. Do not begin by renaming. First understand the target, its boundaries, and the concepts that names are supposed to carry.910## Core Principle1112A rename is only an improvement when it makes the system easier to reason about across time, contributors, tools, and boundaries.1314Optimize for:15- one concept with one primary name16- one primary name that points to one concept17- related concepts forming coherent name families18- contrasting concepts contrasting clearly19- names that remain clear out of context2021## When To Use2223Use this skill when the user asks to review, improve, audit, defuzz, or design names in:24- a plan, PRD, spec, architecture note, or implementation proposal25- beads, issues, tickets, tasks, or work items26- an existing codebase, package, module, API, schema, CLI, event set, or data model27- a mixed target where plans and code need vocabulary alignment28- any artifact where terms feel overloaded, vague, misleading, inconsistent, or likely to confuse coding agents2930Do not use this skill for pure prose copyediting, brand naming, or stylistic polish unless those names also affect system boundaries or implementation concepts.3132## Required First Move: Determine The Target3334Identify the target before reviewing names. The target is usually one or more of:35- plan36- beads or work items37- architecture docs38- existing codebase39- mixed plan plus codebase4041If the user has not clearly specified the target and no artifact can be inferred from context, ask which of these you are analyzing before continuing. If there is an obvious artifact in context, state the target assumption and proceed with a bounded review.4243Record:44- artifact type and scope45- evidence inspected46- evidence missing47- whether recommendations are review-only or implementation-ready48- whether public contracts or persisted names are in scope4950Default to review-only. Do not edit files, rename symbols, rewrite plans, or modify work items unless the user explicitly asks for implementation.5152## Operating Rules5354- Be boundary-first, not word-first.55- Familiarize yourself with the system before judging names.56- Preserve names that are already good.57- Prefer convergence over churn.58- Do not recommend style-only renames.59- Do not invent a cleaner vocabulary that is incompatible with the system's actual meaning.60- Do not flatten real distinctions just because two names look similar.61- Treat public APIs, persisted schemas, event names, CLI commands, URLs, package names, and user-facing names as migration-sensitive.62- Ignore incidental local names unless they create real ambiguity or expose a larger conceptual problem.63- Prefer the smallest set of high-leverage renames.64- Accept "no findings" as a valid outcome when the vocabulary is already clear or the available evidence does not justify churn.6566## Boundary And System Map6768Before evaluating names, build a rough model of the target. Scale depth to evidence and requested scope; do not exhaustively inspect every surface unless the user requested a broad audit, but do not skip this step.6970Map:71- major domain concepts72- actors, users, systems, and external integrations73- modules, packages, folders, subsystems, or work streams74- layer boundaries: UI, domain, application, infrastructure, persistence, transport, operations75- ownership boundaries: which module, team, work item, or artifact owns each concept76- lifecycle and state boundaries77- dependency and call relationships78- public interfaces and external contracts79- data model, API, event, job, command, workflow, and storage boundaries80- source and target boundaries for data flow8182Distinguish domain concepts from implementation details. Domain names should not be replaced with generic software names unless the domain name is misleading.8384## Concept And Vocabulary Map8586Create a vocabulary map before proposing changes.8788For each concept, track:89- concept90- current names used91- locations or surfaces92- owning boundary or module93- adjacent or easily confused concepts94- status: canonical, inconsistent, overloaded, ambiguous, misleading, or acceptable95- whether the name is public, shared internal, or local9697Look across all available naming surfaces:98- directories, files, packages, modules99- classes, types, interfaces, schemas, DTOs, records100- functions, methods, commands, jobs, events101- routes, endpoints, database tables and fields, configs102- tests, fixtures, comments, logs, metrics, docs103- plan headings, milestones, beads, issue titles, acceptance criteria104- diagrams, glossary terms, ADRs, operational runbooks105106Always check both directions:107- same concept, different names108- same name, different concepts109110Same-name/different-concept conflicts are usually higher priority than simple synonym drift because they cause readers and coding agents to merge concepts incorrectly.111112## Review Lenses113114Run the naming review through these lenses and cross-link findings back to the concept map.115116| Lens | Focus |117| --- | --- |118| Boundary | Does the name expose, hide, or blur the correct boundary? |119| Concept | Does the name point to one real concept? |120| Responsibility | Does the name match what the module or artifact owns? |121| State | Does the name preserve lifecycle distinctions? |122| Layer | Does the name mix domain, UI, persistence, infrastructure, or protocol language? |123| Publicness | Is the rename cost different because the name is external, persisted, or user-facing? |124| Searchability | Can humans and agents grep, discuss, and trace the concept reliably? |125| Family | Do related names form a coherent family without weak suffixes? |126127## Naming Rubric128129A strong name is:130- specific, not generic131- bounded to the actual responsibility132- distinguishable from nearby concepts133- consistent with the project's vocabulary134- stable across likely implementation changes135- readable in code, docs, logs, diagrams, tickets, and discussion136- searchable and easy to grep137- role-revealing when the role matters138139Useful role words include:140- model141- service142- adapter143- policy144- event145- command146- query147- store148- repository149- schema150- record151- request152- response153- job154- projection155- snapshot156- definition157- execution158159Use role words only when they add real boundary information. Do not add suffixes as decoration.160161## Failure Modes To Check162163Look specifically for:164- one word used for multiple concepts165- multiple words used for the same concept166- folder or module names that do not match the responsibility inside167- names that blur ownership, modules, or layers168- names that leak implementation detail into domain language169- domain names replaced by generic software terms170- vague generic names such as `Manager`, `Helper`, `Utils`, `Processor`, `Handler`, `Engine`, `Core`, `Common`, `Misc`, `Data`, or `Info` unless narrowly justified171- weak suffix or prefix distinctions such as `XData`, `XInfo`, `XPayload`, `NewX`, `X2`, `BaseX`, or `CommonX`172- unclear state distinctions: draft versus submitted, requested versus actual, template versus instance, definition versus execution, planned versus observed, source versus target, input versus output, internal versus external173- singular/plural inconsistency174- verb/noun inconsistency175- entity/model/schema/DTO/record confusion176- names whose scope is broader or narrower than the thing they name177- clever names that are not explicit178- abbreviations that hide important concepts179- overloaded roots that force readers to rely on surrounding context180- work item titles that sound elegant but no longer identify a concrete deliverable181- architecture component names that say category but not responsibility182- code names that are semantically right but too expensive to change now183184## Target-Specific Guidance185186### Plans, PRDs, And Specs187188Optimize for implementation-ready concept formation.189190Check:191- whether feature names hide multiple concepts192- whether future modules, APIs, schemas, jobs, or events have stable names193- whether product, domain, and implementation terms are mixed194- whether vague terms such as "system", "workflow", "pipeline", "engine", "sync", or "manager" stand in for unresolved design195- whether planned state names distinguish definition, request, execution, observation, and result196197Treat plan vocabulary as provisional unless supported by implementation or domain evidence. Prefer vocabulary proposals over hard rename mandates when the design is not yet settled.198199### Beads, Issues, Tickets, And Work Items200201Optimize for executable work boundaries.202203Check:204- whether each title names a concrete deliverable205- whether dependencies and sequencing are visible206- whether the name identifies the right layer: product, domain, infra, migration, test, docs, operations207- whether nearby work items use competing names for the same concept208- whether similar titles actually describe different lifecycle phases209- whether acceptance criteria use the same vocabulary as the title210211Do not abstract work item names past the point where a contributor can tell what to build.212213### Architecture Docs214215Optimize for responsibility and boundary clarity.216217Check:218- whether a named component is a domain concept, module, adapter, storage mechanism, protocol, external system, or UI concept219- whether the name describes what the component owns rather than how it happens to be implemented220- whether external systems are clearly distinguished from internal abstractions221- whether diagram labels, prose, APIs, and schemas use compatible vocabulary222- whether broad names like `Orchestrator`, `Coordinator`, `Engine`, or `Service` hide multiple responsibilities223224Architecture names should make the next boundary obvious.225226### Existing Codebases227228Optimize for observed usage and safe convergence.229230Start with repo instructions, folder structure, entrypoints, tests, schemas, public interfaces, and recent or relevant code paths. Inspect call sites and adjacent names before judging an identifier.231232Classify each name as:233- public or external contract234- persisted or serialized contract235- shared internal concept236- module-private concept237- local incidental symbol238239For public, persisted, generated, or serialized names, weigh compatibility and migration cost before recommending a rename. When the rename is correct but expensive, mark it "rename later" or "rename when next touched" unless the current name is actively dangerous. Include a concrete migration note: coordinated replacement, version boundary, schema migration, generated artifact update, release note, or "do not rename now."240241### Mixed Plan Plus Codebase242243Compare intended vocabulary with implemented vocabulary without assuming either is canonical.244245Classify drift:246- plan term absent from code247- code term absent from plan248- same term, different meaning249- different terms, same meaning250- plan abstraction too broad251- code abstraction too broad252- plan stale after implementation learning253- implementation leaked infrastructure terms into domain language254255Align future planned names with the existing canonical vocabulary unless the existing vocabulary is itself the source of confusion.256257## Recommendation Priority258259Prioritize recommendations in this order:2601. core domain vocabulary2612. subsystem, module, package, or architecture boundary names2623. public APIs, schemas, routes, events, commands, and persisted fields2634. shared internal types, classes, services, functions, and jobs2645. lower-level internals and local names265266Use this severity scale:267268| Priority | Meaning | Typical action |269| --- | --- | --- |270| P1 | Same name for different concepts, misleading boundary, or high-risk public confusion | Rename now or create a concrete migration plan |271| P2 | Same concept has multiple shared names, or responsibility has drifted | Rename now if scoped, otherwise rename when next touched |272| P3 | Scope, state, role, or family naming is weak but contained | Monitor or rename later |273| P4 | Style preference or local polish | Keep |274275Do not rename a local symbol if the real problem is the parent concept or boundary.276277Usually omit P4 observations unless the user asks for exhaustive notes.278279## Output Format280281For broad or thorough reviews, produce output in this structure:2822831. Target analyzed2842. Boundary and system map2853. Observed canonical vocabulary, or proposed canonical vocabulary when supported by evidence2864. Naming issues found2875. Recommended renames, prioritized2886. Risks to prevent going forward2897. Open questions or assumptions290291For narrow or quick reviews, preserve the same logic but compress the output to target analyzed, high-value naming issues, prioritized recommendations, and assumptions.292293For each naming issue, include:294- current name295- location or scope296- intended concept297- why it is confusing298- problem type: semantic, boundary-related, state-related, role-related, public-contract, or stylistic299- evidence inspected300- recommended action: keep, rename now, rename later, or monitor301302For each rename recommendation, include:303- proposed new name304- rationale305- confidence306- blast radius307- timing: change immediately, change when next touched, or defer308- migration note when public, persisted, generated, or serialized names are involved309310If there are no worthwhile renames, say so. A good name review may preserve the vocabulary and only document why it works.311312## Common Mistakes313314| Mistake | Correction |315| --- | --- |316| Starting with a rename list | Build the boundary and concept map first. |317| Renaming because a word feels generic | Prove it hides a concept, boundary, state, or responsibility. |318| Normalizing all synonyms | First decide whether they are truly the same concept. |319| Treating code as the only evidence | Include docs, tests, schemas, APIs, diagrams, issues, logs, and plans when available. |320| Treating the plan as automatically canonical | Compare plan and code; decide whether the plan is stale, the code is leaky, or both are valid layers. |321| Ignoring public contracts | Mark migration-sensitive names and avoid casual churn. |322| Inventing clever families | Prefer explicit, searchable, boring names that encode real distinctions. |323| Fixating on locals | Find the highest stable boundary that owns the concept. |324325## Red Flags326327Stop and reframe if you catch yourself saying:328- "This just sounds better."329- "Everything should use one term" before proving concept equivalence.330- "This is only internal" without checking serialization, docs, tests, logs, or generated outputs.331- "The code already knows what this means."332- "The plan name must be right because it came first."333- "The implementation name must be right because it exists."334- "Manager/Helper/Engine is fine because it is common."335336## Compact Example337338Issue:339- current name: `Job`340- location or scope: plan headings, `jobs` table, worker module, UI task list341- intended concept: three concepts are using one root: durable background execution, user-visible task, and scheduled template342- why confusing: future implementers may merge lifecycle state for template, queued execution, and displayed task343- problem type: semantic and state-related344- evidence inspected: plan milestones, schema draft, worker folder names, UI labels345- recommended action: rename now346347Recommendation:348- proposed names: `JobDefinition`, `JobRun`, `TaskCard`349- rationale: separates definition versus execution versus UI presentation350- confidence: high351- blast radius: medium if schema already exists, low if still in plan352- timing: change immediately before APIs and persistence solidify353354Naming rule:355- Use `Definition` for reusable configuration, `Run` for one execution, and UI-specific names only at the presentation boundary. These suffixes are justified because they encode lifecycle and boundary distinctions, not decoration.