@g1cloud/bpmn-modeler-next 5.0.0-alpha.43 → 5.0.0-alpha.45

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -54,6 +54,16 @@ export interface GeometryEdge {
54
54
  waypoints: GeometryPoint[];
55
55
  /** 이 간선이 자기 끝점으로 삼는 도형 id 들 — 그 도형과의 교차는 도킹이라 관통이 아니다. */
56
56
  endpoints: readonly string[];
57
+ /**
58
+ * 방향 있는 끝점 — `'throughpass'`(B-63) 의 입력. ⚠ **`endpoints` 로 대신할 수 없다**: 두 생성
59
+ * 경로 모두 `[source, target]` 순으로 담지만 falsy 를 걸러내므로 한쪽이 없으면 남은 하나가
60
+ * `[0]` 으로 올라와 **방향이 뒤바뀐다**. 관통은 유입·유출을 가르는 술어라 방향을 틀리면
61
+ * 표본 50(유입 0 = 눌러앉음)과 표본 51(유입 2 = 지나감)의 판정이 뒤집힌다.
62
+ *
63
+ * 둘 다 있을 때만 관통 판정의 입력이 된다(없으면 침묵 — 오탐보다 침묵).
64
+ */
65
+ source?: string;
66
+ target?: string;
57
67
  /** 이름이 있는 간선의 외부 라벨 bounds(있을 때만). `label-on-shared-segment` 의 입력. */
58
68
  label?: GeometryLabel;
59
69
  }
@@ -188,9 +198,83 @@ export type GeometryFinding =
188
198
  */
189
199
  | {
190
200
  kind: 'group-overlap-unreadable';
201
+ reason: 'orphan';
191
202
  groups: [string, string];
192
203
  shapes: string[];
193
204
  }
205
+ /**
206
+ * 한 그룹 상자 안에서 **자기 멤버가 과반이 아니다**(B-62) — 상자 안 흐름 노드의 절반 이상이
207
+ * *남의 그룹 멤버이거나 무소속*이라 사람은 그 상자가 무슨 단계인지 읽을 근거를 잃는다. 표본 50
208
+ * 에서 사용자가 지목하고 포기했다("배송그룹에 에 반품이 포함되어있는게 좀 이상한것 같아서
209
+ * 확인해야 수정할 수 있을것 같아") — 실측 = `Grp_deliver` 안 18 = 자기 8 · **남의 8** · 무소속 2.
210
+ *
211
+ * 🔴 **같은 kind 안의 다른 축이다 — `reason` 으로 가른다.** `'orphan'` 은 *두 상자의 겹침 영역*에
212
+ * 갇힌 **무소속**을 세고(B-60), 이쪽은 *상자 하나 전체*에서 **비자기**를 센다. 표본 50 이 둘을
213
+ * 갈랐다: `'orphan'` 축은 그 상자에서 **무소속 2 만** 보고했는데 사람이 본 것은 **남의 멤버 8**
214
+ * 이었다(§0 ③ — 술어가 짚는 자리는 맞았고 *세는 것*이 틀렸다).
215
+ *
216
+ * 🔴 **비율로 가르지 말 것 — 네 번 기각됐다.** 「남의 멤버 개수 ≥ K」는 표본 32(사용자 **수용**)를
217
+ * 오탐하고(남의 4), 「공유 ≥ 단독」 순수 기하도 같은 케이스를 오탐한다. 판별자는 개수도 겹침
218
+ * 비율도 아니라 **자기 단계가 그 상자에서 과반인가**다 — 50% 는 고른 임계가 아니라 판독의 정의다.
219
+ *
220
+ * 근거(오탐): 실무 16문서 **0**(레거시라 `bwl:members` 가 0건 = 술어의 입력이 없다 → 멤버 미선언
221
+ * 그룹은 제외한다). 사용자 저장본 57종의 그룹 116개 중 **4건**, fixture 56종의 그룹 165개 중
222
+ * **6건**이고 **전부 사용자가 포기한 회차**(표본 44·47·49·50)의 산출물이다. 수용 회차(표본 32·48)는
223
+ * 전량 침묵.
224
+ *
225
+ * ⚠ **`'orphan'` 축의 처방이 이 축을 끈다** — 무소속을 멤버에 넣으면(B-60 의 대가 0 수단) 자기가
226
+ * 늘어 과반이 회복된다. 그러나 **남의 멤버를 자기 것으로 만드는 것은 의미를 훼손한다**(표본 50 에서
227
+ * 에이전트가 *"그림이 거짓말을 하게 된다"* 며 스스로 거부했다). 수단은 단계 경계를 다시 잡는 것이다.
228
+ *
229
+ * `group` = 그 상자 · `shapes` = 상자 안의 비자기 흐름 노드(남의 멤버 + 무소속 · id 오름차순).
230
+ */
231
+ | {
232
+ kind: 'group-overlap-unreadable';
233
+ reason: 'minority';
234
+ group: string;
235
+ shapes: string[];
236
+ }
237
+ /**
238
+ * 다른 단계의 흐름이 이 상자를 **지나간다**(B-63) — 상자 안에 든 *남의 그룹 멤버*로 시퀀스가
239
+ * 밖에서 들어와(유입 ≥1) 밖으로 나간다(유출 ≥1). 사람은 상자가 어디서 끝나는지 읽을 수 없다.
240
+ * 표본 51 에서 사용자가 지목하고 포기했다("입고예정일안내 → 입고대기종료 에 이르는 노테이션이
241
+ * 배송 그룹에 일부 속해서 **관통**하는데 속하지 않을것 같다") — 증언의 단어가 그대로 술어다.
242
+ *
243
+ * 🔴 **`'minority'` 와 상보다 — 상위집합이 아니다.** 같은 `Grp_deliver` 인데 형상이 정반대였다:
244
+ * 표본 50 은 남의 멤버 8 이 들어있지만 **유입 0**(반품 체인의 `Start_ret_cs` 가 상자 안에 있다
245
+ * = 밖에서 들어오지 않고 **눌러앉았다**) 이고, 표본 51 은 유입 2 · 유출 3 으로 **지나간다**.
246
+ * 사용자 증언의 단어도 갈렸다 — 표본 50 *"반품이 **포함**되어있는게"* vs 표본 51 *"**관통**하는데"*.
247
+ * ⇒ `'minority'` 는 **양**(들어앉은 정도)을, 이 축은 **위상**(지나감)을 잰다. 각각이 잡는 회차가
248
+ * 다르고 합쳐야 포기 6회차를 덮는다.
249
+ *
250
+ * 🔴 **무소속을 세지 말 것 — 세면 술어가 `'minority'` 의 상위집합이 되어 얼굴이 중복된다.**
251
+ * N20 실측: 「비자기(남의 멤버 + 무소속) 관통」으로 재면 `'minority'` 발화가 **전부 포함**되고
252
+ * (저장본·fixture 양쪽에서 "minority 만" = 0) 기저가 **17~20%** 로 뛴다. 무소속 게이트웨이 하나가
253
+ * 지나가는 형상(`Grp_intake` — 저장본에서 **다섯 회차 반복**)이 전량 오탐으로 들어오기 때문이다.
254
+ * 사용자가 지목한 것은 *"일부 **속해서**"* = 남의 멤버다.
255
+ *
256
+ * ⚠ **단일 노드 통과는 세지 않는다**(`foreign → foreign` 간선 ≥1 요구) — 노드 하나가 지나가는
257
+ * 것은 "경계에 걸친 것" 으로 읽히고, 여러 노드가 이어져 들어앉아야 "다른 단계가 들어와 있다" 로
258
+ * 읽힌다. 위상 조건이지 임계가 아니다(≥2 = "단일이 아니다"). 검정 성적은 이 조건 유무와 같고
259
+ * 기저만 6.5% → 4.1% 로 내려간다.
260
+ *
261
+ * 🔴 **판별자로 「양」을 재지 말 것 — 다섯 번 무너졌다**(개수 · 비율 72%수용/70%포기 · gap ·
262
+ * 순수기하 · 과반). 이 축은 위상이라 고를 숫자가 없다.
263
+ *
264
+ * 근거(오탐): 실무 16문서 **0**(레거시는 `bwl:members` 0건 = 술어의 입력이 없다). 저장본 58종의
265
+ * 그룹 123개 중 **5건**, fixture 58종의 그룹 178개 중 **10건**이고 **전부 사용자가 포기한 회차**
266
+ * (표본 44·46·47·49·51)의 산출물이다. 수용 회차는 전량 침묵 — 표본 32(`g12-v4` = 남의 4 가
267
+ * 있지만 유입 0·유출 0 인 **완결 체인**이라 귀속이 모호하지 않다 · **N66 통과**)와 표본 48.
268
+ * 놓치는 두 회차도 정합하다 — 표본 50 은 `'minority'` 가 잡고, 표본 45 는 근인이 면 과점유(B-55)다.
269
+ *
270
+ * `group` = 그 상자 · `shapes` = 상자를 지나가는 남의 멤버(id 오름차순).
271
+ */
272
+ | {
273
+ kind: 'group-overlap-unreadable';
274
+ reason: 'throughpass';
275
+ group: string;
276
+ shapes: string[];
277
+ }
194
278
  /**
195
279
  * **세 그룹 이상이 한 영역을 동시에 덮는다**(B-59) — 그 영역 안의 도형은 세 단계에 한꺼번에 속한
196
280
  * 것처럼 보여 어느 단계인지 읽을 수 없다. 표본 46 에서 사용자가 지목했다("그룹 중첩이 많아서