一、④段整套同步(用户选候选 A)
- 新增 `references/stage-proto-doc/assets/产品文档模板.html`(16 KB/247 行,从备份拷、转 LF)。
- ④段 SKILL.md 换成备份 15:28 那版,并按模板口径改齐:
· 「产品文档框架」从「四块+一附录」改成**六节** —— 页面结构/功能清单/使用场景/操作流程/
跨页与界面状态/待确认与偏离;与模板同构,⛔ 不从空白页重写结构。
· 编号从 R/S/F 改成 **P 页面/S 场景/F 功能/J 二级功能**,各自唯一、按展示顺序通排。
· 保留旧版有价值的要求:每项功能补齐 做什么/入口在哪/输入边界/异常与恢复;重点功能三处标红;
横向流程图每步写清页面/功能/操作/完成判据。
· 完成标准「七节」→「六节」,自查清单同步换掉「需求」那批条目,补模板与配图两条。
· 路径 `designs/<项目>/` → `docs/pm/<项目>/ui/`(2 处)。
· 补回本机那条「每份产出文档开头都要有一张图」的引用(指向主 skill,段内不复述)。
- 主 skill 同步:四段结构表④行、④段沿革、画图小节(④段画页面结构图 + 用户路径)。
二、open-design 移到技能根(用户选候选 A)
- `git mv product-planning/references/stage-delivery/assets/open-design → open-design/`(4178 文件)。
- `.gitignore` 白名单加 `!/open-design/` —— 否则移出去就不再纳入版本控制。
- 引用改 11 处:路径形态 `assets/open-design/...` → `<技能根>/open-design/...`;
「随段携带的自带件」改称「同根技能」;「路径怎么找」那条改成自带件(段内相对路径)与
同根技能(`<技能根>/<技能名>/`)两类分开写。
- open-design 自己的 ATTRIBUTION.md 两处同步(它现在与 oil-ui-pro 同层)。
- 副作用(有益):命名闸门读数由 2063 降到 225 —— 此前它把 open-design 里 919 个第三方 md
当成规则一起扫了;现在只扫本包 23 个 md。已确认④段的 H1 与 4a/4b/4c 子步仍在检查范围内。
三、验收
- check_naming.py --ws E:/ProgramData/AIProject/contentm_agent = 通过 225 / 失败 0 / 提示 27。
- 活文件里 `assets/open-design` 残留 0;工作区 CRLF 文件 0。
166 lines
7.3 KiB
JSON
166 lines
7.3 KiB
JSON
{
|
||
"brand_name": "ST. LUKES",
|
||
"greeting": "Hey Lukmon, glad to have you back! 🙌",
|
||
"search_placeholder": "Search doctors, patients, rooms…",
|
||
"search_shortcut": "⌘K",
|
||
"secondary_action_label": "Export CSV",
|
||
"primary_action_label": "Add new",
|
||
|
||
"user": {
|
||
"name": "Lukmon Olabode",
|
||
"role": "Admin",
|
||
"av_class": "av-orange",
|
||
"initial": "L"
|
||
},
|
||
|
||
"nav_main_label": "Main Menu",
|
||
"nav_main": [
|
||
{ "label": "Dashboard", "active_class": "active", "count": "" },
|
||
{ "label": "Message", "active_class": "", "count": "10" },
|
||
{ "label": "Schedule", "active_class": "", "count": "" },
|
||
{ "label": "Notification", "active_class": "", "count": "12" },
|
||
{ "label": "Transaction", "active_class": "", "count": "" }
|
||
],
|
||
|
||
"nav_management_label": "Management",
|
||
"nav_management": [
|
||
{ "label": "Doctor", "active_class": "", "count": "" },
|
||
{ "label": "Medicine", "active_class": "", "count": "" },
|
||
{ "label": "Bedroom", "active_class": "", "count": "" },
|
||
{ "label": "Appointment", "active_class": "", "count": "" },
|
||
{ "label": "Patient", "active_class": "", "count": "" }
|
||
],
|
||
|
||
"pro_card": {
|
||
"tag": "Pro",
|
||
"title": "Pssst!",
|
||
"body": "Your subscription expires in 9 days.",
|
||
"primary_label": "Renew",
|
||
"secondary_label": "Cancel"
|
||
},
|
||
|
||
"kpi_a": {
|
||
"label": "Total doctors",
|
||
"value": "1,089",
|
||
"trend_class": "down",
|
||
"trend_label": "↓ 4.2%",
|
||
"caption": "An increase of 20 doctors in the last 7 days.",
|
||
"strip_class": "stripe-amber"
|
||
},
|
||
"kpi_b": {
|
||
"label": "Total bookings",
|
||
"value": "17,610",
|
||
"trend_class": "up",
|
||
"trend_label": "↑ 5.5%",
|
||
"caption": "Last 7 days: 5,231 → 8,323 visitors.",
|
||
"strip_class": "stripe-blue",
|
||
"mini_stat": "1,635 today"
|
||
},
|
||
"kpi_c": {
|
||
"label": "Available rooms",
|
||
"value": "8,450",
|
||
"trend_class": "up",
|
||
"trend_label": "↑ 462",
|
||
"rows": [
|
||
{ "label": "General room", "value": "100" },
|
||
{ "label": "Private room", "value": "75" }
|
||
]
|
||
},
|
||
"kpi_d": {
|
||
"label": "Total visitors",
|
||
"value": "29,709",
|
||
"trend_class": "up",
|
||
"trend_label": "↑ 3.5%",
|
||
"caption": "Top 3 in-demand clinics this month.",
|
||
"strip_class": "stripe-amber",
|
||
"mini_stat": "1,070 today"
|
||
},
|
||
|
||
"chart": {
|
||
"title": "Patient overview",
|
||
"dropdown_label": "Last 6 months",
|
||
"legend_a": "Total patients",
|
||
"legend_b": "Avg. hospitalized",
|
||
"legend_c": "Avg. outpatient care",
|
||
"bars": [
|
||
{ "x": "34", "y": "148", "h": "92" },
|
||
{ "x": "58", "y": "108", "h": "132" },
|
||
{ "x": "120", "y": "124", "h": "116" },
|
||
{ "x": "144", "y": "92", "h": "148" },
|
||
{ "x": "206", "y": "96", "h": "144" },
|
||
{ "x": "230", "y": "56", "h": "184" },
|
||
{ "x": "292", "y": "156", "h": "84" },
|
||
{ "x": "316", "y": "116", "h": "124" },
|
||
{ "x": "378", "y": "140", "h": "100" },
|
||
{ "x": "402", "y": "100", "h": "140" },
|
||
{ "x": "464", "y": "120", "h": "120" },
|
||
{ "x": "488", "y": "80", "h": "160" },
|
||
{ "x": "550", "y": "160", "h": "80" },
|
||
{ "x": "574", "y": "128", "h": "112" }
|
||
],
|
||
"x_labels": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul"]
|
||
},
|
||
|
||
"calendar": {
|
||
"month_label": "March 2025",
|
||
"dow": ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"],
|
||
"days": [
|
||
{ "label": "23", "modifier": "muted" }, { "label": "24", "modifier": "muted" }, { "label": "25", "modifier": "muted" }, { "label": "26", "modifier": "muted" }, { "label": "27", "modifier": "muted" }, { "label": "28", "modifier": "muted" }, { "label": "1", "modifier": "" },
|
||
{ "label": "2", "modifier": "" }, { "label": "3", "modifier": "" }, { "label": "4", "modifier": "" }, { "label": "5", "modifier": "" }, { "label": "6", "modifier": "" }, { "label": "7", "modifier": "" }, { "label": "8", "modifier": "active" },
|
||
{ "label": "9", "modifier": "" }, { "label": "10", "modifier": "" }, { "label": "11", "modifier": "" }, { "label": "12", "modifier": "" }, { "label": "13", "modifier": "" }, { "label": "14", "modifier": "" }, { "label": "15", "modifier": "" },
|
||
{ "label": "16", "modifier": "" }, { "label": "17", "modifier": "" }, { "label": "18", "modifier": "" }, { "label": "19", "modifier": "" }, { "label": "20", "modifier": "" }, { "label": "21", "modifier": "" }, { "label": "22", "modifier": "" },
|
||
{ "label": "23", "modifier": "" }, { "label": "24", "modifier": "" }, { "label": "25", "modifier": "" }, { "label": "26", "modifier": "" }, { "label": "27", "modifier": "" }, { "label": "28", "modifier": "" }, { "label": "29", "modifier": "" }
|
||
]
|
||
},
|
||
|
||
"activity": {
|
||
"title": "Activity Detail · Mar 8",
|
||
"events": [
|
||
{ "av_class": "blue", "name": "Dr. Sarah · post-op review", "time": "11:00 am" },
|
||
{ "av_class": "pink", "name": "Dental staff meetup", "time": "3:00 pm" },
|
||
{ "av_class": "violet", "name": "Ola Muhammad intake", "time": "4:00 pm" }
|
||
],
|
||
"add_label": "+ Add item"
|
||
},
|
||
|
||
"donut": {
|
||
"title": "Top 3 most requested clinics",
|
||
"center_label": "Total patients",
|
||
"center_num": "534",
|
||
"segment_b": { "dasharray": "120 240", "dashoffset": "0" },
|
||
"segment_c": { "dasharray": "35 240", "dashoffset": "-120" },
|
||
"legend": [
|
||
{ "value": "120", "label": "Dental" },
|
||
{ "value": "249", "label": "Cardiology" },
|
||
{ "value": "165", "label": "Surgery" }
|
||
]
|
||
},
|
||
|
||
"schedule": {
|
||
"title": "Doctors's schedule",
|
||
"stats": [
|
||
{ "value": "51", "small": "Total", "label": "Available" },
|
||
{ "value": "23", "small": "Total", "label": "Unavailable" },
|
||
{ "value": "09", "small": "Total", "label": "Leave" }
|
||
],
|
||
"list_header_label": "List of Doctor",
|
||
"doctors": [
|
||
{ "av_class": "av-blue", "initial": "P", "name": "Peter Bashir", "role": "Anesthesiologist", "status_class": "avail", "status_label": "Available" },
|
||
{ "av_class": "av-violet", "initial": "D", "name": "Deborah Fagbemi", "role": "Cardiologist", "status_class": "unav", "status_label": "Unavailable" },
|
||
{ "av_class": "av-rose", "initial": "H", "name": "Hannah Diongoli", "role": "Dermatologist", "status_class": "avail", "status_label": "Available" },
|
||
{ "av_class": "av-amber", "initial": "A", "name": "Aisha Bello", "role": "Pediatrician", "status_class": "leave", "status_label": "Leave" }
|
||
]
|
||
},
|
||
|
||
"appointments": {
|
||
"title": "Today's appointments",
|
||
"list": [
|
||
{ "av_class": "av-pink", "initial": "R", "name": "Ruth Tubonimi", "role": "Gastroenterology · room 204", "date": "Today", "time": "09:40" },
|
||
{ "av_class": "av-amber", "initial": "J", "name": "Joseph Obiano", "role": "Psychiatry · video call", "date": "Today", "time": "10:25" },
|
||
{ "av_class": "av-mint", "initial": "T", "name": "Timothy Jibrin", "role": "Hematology · room 117", "date": "Today", "time": "11:00" },
|
||
{ "av_class": "av-violet", "initial": "E", "name": "Elizabeth Kanu", "role": "Ophthalmology · room 09", "date": "Today", "time": "02:15" },
|
||
{ "av_class": "av-blue", "initial": "S", "name": "Simon Garba", "role": "Otolaryngology · room 21", "date": "Today", "time": "03:40" }
|
||
]
|
||
}
|
||
}
|