ビジネスコンテキストフロー(業務像モデル)を作成
中文简介正在准备中。当前显示原文说明。
MSP計画に基づいて要求分析ツリーの優先要素を色分けハイライト表示
中文简介正在准备中。当前显示原文说明。
查看安装方法安装前可以查看交给 AI 代理的指令内容。
追加指示(引数): $ARGUMENTS
MSP(Minimum Sellable Product)計画で特定された優先要素を、要求分析ツリーのDrawIOモデル上で色分けハイライト表示します。
目的:
前提条件:
/msp-plan が実行済みであるoutput/requirement-tree.json が存在するoutput/msp-plan.md が存在するoutput/drawio/requirement-tree.drawio が存在する| 優先度 | 対象 | fillColor | strokeColor |
|---|---|---|---|
| 必須要件(Must Have) | IT要求・活動・業務要求・目的 | #DC143C(クリムゾン) | #8B0D1C(濃いクリムゾン) |
| 差別化要件(Should Have) | IT要求・活動・業務要求・目的 | #4169E1(ロイヤルブルー) | #1E3A8A(濃いロイヤルブルー) |
| 変更なし | ビジョン・コンセプト | - | - |
重要:
Glob ツールで以下のファイルの存在を確認する:
input/idea.md(必須)output/requirement-tree.json(必須)output/msp-plan.md(必須)output/drawio/requirement-tree.drawio(必須)存在しない場合は、先に該当するコマンドを実行するようユーザーに通知する。
output/drawio/requirement-tree.drawio が存在することを確認する(このコマンドは既存ファイルを上書き更新するため、削除不要)。
Read ツールで以下を読み込む:
output/msp-plan.md - MSP計画(優先要素の特定に使用)output/requirement-tree.json - 要求分析ツリーの構造データ(階層関係の把握に使用)Read ツールで以下を読み込む:
output/drawio/requirement-tree.drawio - DrawIOファイルoutput/msp-plan.md を分析し、以下の2つのカテゴリに分類する:
「必須要件(Must Have)」セクションから以下を抽出:
「差別化要件(Should Have)」セクションから以下を抽出:
output/requirement-tree.json を使用して、MSP要素の上位階層を特定する:
必須要件(Must Have)の上位要素:
差別化要件(Should Have)の上位要素:
重要: 色分けは以下の順序で処理し、必須要件を優先する:
Pythonスクリプトを使用してDrawIOファイルのXMLを編集する:
import re
# ファイルを読み込み
with open('output/drawio/requirement-tree.drawio', 'r', encoding='utf-8') as f:
content = f.read()
# 必須要件(Must Have)の要素IDリスト(IT要求、活動、業務要求、目的)
must_have_ids = set([
# ここにMSP計画から抽出した必須要件の要素IDを列挙
# 例: "it1_2_1", "act1_1_1", "br1_2_1", "obj1_2"
])
# 差別化要件(Should Have)の要素IDリスト(IT要求、活動、業務要求、目的)
# 注意: must_have_idsに含まれるIDは除外すること
should_have_ids = set([
# ここにMSP計画から抽出した差別化要件の要素IDを列挙
# 例: "it2_2_1", "act1_3_4", "br2_2_1", "obj2_2"
])
# 差別化要件から必須要件と重複するIDを除外(必須要件を優先)
should_have_ids = should_have_ids - must_have_ids
def get_id(line):
"""id属性を取得"""
match = re.search(r'id="([^"]+)"', line)
return match.group(1) if match else ""
def update_colors(line, fill_color, stroke_color):
"""色を更新"""
if 'fillColor=#' in line:
line = re.sub(r'fillColor=#[a-fA-F0-9]+', f'fillColor={fill_color}', line)
if 'strokeColor=#' in line:
line = re.sub(r'strokeColor=#[a-fA-F0-9]+', f'strokeColor={stroke_color}', line)
return line
# 行ごとに処理
lines = content.splitlines()
new_lines = []
for line in lines:
if 'mxCell' in line and 'id=' in line:
cell_id = get_id(line)
# ビジョンとコンセプトはスキップ
if cell_id == "vision" or cell_id.startswith("concept"):
new_lines.append(line)
continue
# 必須要件(クリムゾン)を先に処理
if cell_id in must_have_ids:
line = update_colors(line, "#DC143C", "#8B0D1C")
# 差別化要件(ロイヤルブルー)は必須要件に含まれない場合のみ
elif cell_id in should_have_ids:
line = update_colors(line, "#4169E1", "#1E3A8A")
new_lines.append(line)
content = '\n'.join(new_lines)
# 結果を出力
with open('output/drawio/requirement-tree.drawio', 'w', encoding='utf-8') as f:
f.write(content)
変更例:
<!-- 変更前(通常の業務要求) -->
<mxCell id="xxx" value="対象の業務要求名" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" ...>
<!-- 変更後(必須要件 - クリムゾン) -->
<mxCell id="xxx" value="対象の業務要求名" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DC143C;strokeColor=#8B0D1C;" ...>
<!-- 変更後(差別化要件 - ロイヤルブルー) -->
<mxCell id="xxx" value="対象の業務要求名" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#4169E1;strokeColor=#1E3A8A;" ...>
Pythonスクリプト内でファイルを直接更新する。
Glob ツールで output/drawio/requirement-tree.drawio の存在を確認。
ファイルが存在しない場合は、手順6に戻り再実行する。
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
ビジネスコンテキストフロー(業務像モデル)を作成
中文简介正在准备中。当前显示原文说明。
共通手順
中文简介正在准备中。当前显示原文说明。
活動を作る時の観点を説明する
中文简介正在准备中。当前显示原文说明。
ビジネスコンテキストフローを作る時の観点を説明する
中文简介正在准备中。当前显示原文说明。
業務要求を作る時の観点を説明する
中文简介正在准备中。当前显示原文说明。
言葉(キャッチコピー)を作る時の観点を説明する
中文简介正在准备中。当前显示原文说明。