分類一覧(Classification List)作成ルール
業務上の分類(カテゴリ、種別、区分など)を一覧で整理するための標準ルールです。 分類は業務目的に応じて 業務分類(固定)/コード表(システム分類)/動的分類(ユーザー定義) の3種類に分けて管理します。
分類は業務データ辞書(BDD)の enum や画面の選択肢、集計軸として重要な役割を持つため、ここでのルールは他仕様(BDD/ステータス/用語集)と一貫させることを目的とします。
0. 概要
分類(Classification)とは、業務データを意味的にグループ化する構造である。
分類は以下の 3 種類に分類される:
1. 業務分類(Business Classification)
- 業務ロジックに基づいて固定的に存在する分類
- 例:商品区分、顧客種別、売上種別
- 値は少数で変動しないことが多い
- システム依存性は低い
2. コード表(Code List / System Code List)
- システムで使用されるコード値の一覧
- 都道府県コード、支払方法コード、税種別コードなど
- 多くの場合 マスターテーブルとして保持する
- BDD の enum と密接に対応
3. 動的分類(Dynamic Classification)
- ユーザーが自由に作成・編集・削除できる分類
- タグ、ラベル、フォルダ分類など
- BDD の enum にしてはいけない
- システムテーブルで管理し、BDD では string または reference とする
1. メタデータ
分類一覧を1つの YAML ドキュメントとして管理する場合、以下のメタデータを用いる。
| 項目 | 説明 | 必須 |
|---|---|---|
| id | 分類一覧ID(例:cll-xxx-xxxx) | ○ |
| type | domain 固定 | ○ |
| title | 分類一覧名 | ○ |
| status | draft / ready / deprecated | ○ |
| supersedes | 置き換え関係(旧仕様→新仕様) | 任意 |
1.1 ID規約
- 分類一覧IDは正規表現
^cll-[a-z0-9-]+$に合致すること type: domainは画面やAPI仕様と切り離して管理することを示す
2. 記述ルール(共通)
- 日本語の単数形で記載する(例:商品区分、顧客種別)
- 分類を 分類定義 と 値の説明(値一覧) の二つの表で整理する。
- 値はシステム上の識別子として lower-kebab-case を使用する。
- 略語のみの記述や曖昧な説明は避ける。
- システム内部名称のみにしない
2.1 分類定義の説明
分類定義は、「定義項目 / 内容」 の 2 列の表で記述します。
| 列名 | 説明 |
|---|---|
| 対象エンティティ | 分類が属する業務上の主要対象(例:商品、顧客など) |
| 分類定義名 | 分類を表す項目(フィールド)名 |
| 種別 | 「業務分類」「コード表」「動的分類」のいずれか |
| 説明 | 分類が何を意味するか |
2.2 値一覧
値を持つ分類では、以下の列を基本とする。
| 列名 | 説明 |
|---|---|
| 値 | システム上の識別子。lower-kebab-case 推奨 |
| 分類名 | 正式名称。BDD/用語集と整合させる |
| 表示名 | UI や現場で使用される表示用名称 |
| 説明 | 値の意味・成立条件など |
3. 分類の種類別のルール
3.1 業務分類(Business Classification)
特徴
- 業務ロジック上必然的に存在する分類
- 値は少数で固定的
- システム実装に強く依存しない
BDD での扱い
- 値が少ない場合は BDD の
type: enumとして記載してよい。
3.2 コード表(System Code List)
特徴
- システム内で使用される コード値の一覧
- 多くの場合 マスターテーブルとして管理すべき
- 外部連携や識別子として利用される
マスターテーブル化すべき条件
以下のいずれかを満たす:
- 値が多い(10以上)
- 追加・変更・廃止の可能性がある
- 外部システム連携や帳票に必要
- 多言語化が必要
- BDD enum では収まらないメタ情報がある(例:税率、期間)
BDD enum で良いケース
- 値が3〜5個以下
- 業務ルールで固定されている
- ラベル変更の可能性が低い
3.3 動的分類(Dynamic Classification)
特徴
- ユーザーが自由に追加・編集・削除可能
- タグ、ラベル、フォルダ分類などに用いられる
BDD の enum にしてはいけない
- 値の増減に対応できず仕様が破綻するため
BDD での扱い
- type:
stringまたはreferenceとする
標準列
| 値 | 作成者 | 説明 |
4. BDD との関係(重要)
| 分類種類 | BDD の扱い |
|---|---|
| 業務分類 | enum 可能 |
| コード表 | enum または マスターテーブル |
| 動的分類 | enum 禁止、別テーブルで管理 |
5. サンプル(商品区分)
5.1 メタデータ
---
id: cll-product-type
type: domain
title: 商品区分
status: draft
supersedes: []
---5.2 分類定義
| 定義項目 | 内容 |
|---|---|
| 対象エンティティ | 商品 |
| 分類定義名 | 商品区分 |
| 種別 | 業務分類 |
| 説明 | 商品の業務上の上位分類 |
5.3 値一覧
| 値 | 分類名 | 表示名 | 説明 |
|---|---|---|---|
| snack | お菓子 | おやつ | 食品系商品 |
| toy | 玩具 | おもちゃ | 玩具類 |
| drink | 飲料 | ドリンク | 飲み物類 |
6. 生成 AI への指示テンプレート
生成 AI に分類一覧(Classification List: CLL)を作らせるときは、以下のような指示を与えます。
以下のルールに従って、分類一覧(Classification List: CLL) を 1 ファイル作成してください。出力は Markdown とします。
対象は「業務上の分類(カテゴリ・種別・区分など)」の定義です。分類の 種別 は必ず次のいずれかにしてください:
業務分類 / コード表 / 動的分類
禁止: 物理テーブル名・物理カラム名・SQL全文、実装クラス/関数名、API の内部実装詳細、クリック手順など UI 操作の逐語列挙
先頭に YAML Frontmatter を付与し、以下の形式で記述してください(不要な項目は省略可だが、
id/type/title/statusは必須):yaml--- id: cll-<英小文字とハイフンで構成したID> # 例: cll-product-type type: domain title: <分類一覧名> # 例: 商品区分 status: draft # draft / ready / deprecated のいずれか supersedes: [] ---本文には、少なくとも次の見出し(日本語)と表を含めてください:
- 分類定義
- 値一覧
分類定義 は 「定義項目 / 内容」 の 2 列の表で記述し、次の定義項目(行)を含めてください:
対象エンティティ / 分類定義名 / 種別 / 説明
値一覧 は表形式で、次の列を この順序 で必ず含めてください:
値 / 分類名 / 表示名 / 説明
「分類定義名」「分類名」は、業務用語として自然な日本語(日本語単数形)を用い、BDD/用語集と整合 させてください。
「値」はシステム上の識別子として lower-kebab-case を用いてください。
「説明」は、分類(または値)の意味が検証できるように、曖昧表現を避けて簡潔に記載してください。