@rse/specbook 1.2.12 → 1.2.14

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.
@@ -1350,9 +1350,6 @@ div.titlepage .author {
1350
1350
  font-size: 1.25rem;
1351
1351
  margin-top: 2rem;
1352
1352
  }
1353
- div.titlepage p.description {
1354
- margin: 2rem 0 0.5rem 0;
1355
- }
1356
1353
  div.titlepage table.meta {
1357
1354
  margin: 1rem auto 0 auto;
1358
1355
  color: var(--theme-color-specbook-muted);
@@ -1363,6 +1360,22 @@ div.titlepage table.meta td {
1363
1360
  padding: 0rem 0.5rem;
1364
1361
  text-align: left;
1365
1362
  }
1363
+ /* the description of the title object is the abstract closing the
1364
+ title page: justified, the follow-up paragraphs indented */
1365
+ div.titlepage p.description,
1366
+ div.titlepage div.description {
1367
+ margin: 3rem auto 0.5rem auto;
1368
+ max-width: 44rem;
1369
+ text-align: justify;
1370
+ hyphens: auto;
1371
+ }
1372
+ div.titlepage div.description p {
1373
+ margin: 0;
1374
+ }
1375
+ div.titlepage div.description p + p:not(.rationale) {
1376
+ margin-top: 0.4rem;
1377
+ text-indent: 3rem;
1378
+ }
1366
1379
  /* the fuzzy search tab (screen-only): the middle tab riding right of
1367
1380
  the brand bar between the info tab and the folding
1368
1381
  tab (as wide as those, fixed independent of the content
@@ -151,7 +151,7 @@
151
151
  optional: true
152
152
  - name: THEME-STYLE
153
153
  desc: The theme style.
154
- value: enum(dark,light)
154
+ value: enum(Dark,Light)
155
155
  optional: true
156
156
  - name: THEME-TONE
157
157
  desc: The theme color tone.
@@ -347,7 +347,8 @@
347
347
  diagram:
348
348
  type: hub
349
349
  center: self
350
- nodes: "[[TERM:*]], [[PREMISE:*]], [[RULE:*]], [[DM.ENTITY:*]], [[ROLE:*]], [[PERSONA:*]]"
350
+ nodes: "[[TERM:*]], [[PREMISE:*]], [[RULE:*]], [[DM.ENTITY:*]], [[ROLE:*]], [[PERSONA:*]],
351
+ [[WORKFLOW:*]], [[CONVENTION:*]], [[CV.ENTITY:*]]"
351
352
  labeled: true
352
353
  qualified: true
353
354
  config:
@@ -441,8 +442,8 @@
441
442
  diagram:
442
443
  type: hub
443
444
  center: self
444
- nodes: "[[ROLE:*]], [[TERM:*]], [[PERSONA:*]], [[ACTIVITY:*]], [[USE-CASE:*]],
445
- [[CV.ENTITY:*]]"
445
+ nodes: "[[ROLE:*]], [[TERM:*]], [[PERSONA:*]], [[WORKFLOW:*]], [[ACTIVITY:*]],
446
+ [[USE-CASE:*]], [[TRANSITION:*]], [[CV.ENTITY:*]]"
446
447
  labeled: true
447
448
  qualified: true
448
449
  config:
@@ -494,8 +495,8 @@
494
495
  optional: true
495
496
  - name: GENDER
496
497
  desc: >
497
- The gender of the persona: `male`, `female`, or `diverse`.
498
- value: enum(male,female,diverse)
498
+ The gender of the persona: `Male`, `Female`, or `Diverse`.
499
+ value: enum(Male,Female,Diverse)
499
500
  optional: true
500
501
  - name: AGE
501
502
  desc: >
@@ -519,9 +520,9 @@
519
520
  optional: true
520
521
  - name: PROFICIENCY
521
522
  desc: >
522
- The technical and domain skill level of the persona: `novice`,
523
- `intermediate`, or `expert`.
524
- value: enum(novice,intermediate,expert)
523
+ The technical and domain skill level of the persona: `Novice`,
524
+ `Intermediate`, or `Expert`.
525
+ value: enum(Novice,Intermediate,Expert)
525
526
  optional: true
526
527
  - name: GOAL
527
528
  desc: >
@@ -1099,8 +1100,9 @@
1099
1100
  type: hub
1100
1101
  center: self
1101
1102
  nodes: "[[USE-CASE:*]], [[ROLE:*]], [[PERSONA:*]], [[STEP:*]], [[ACTIVITY:*]],
1102
- [[FR.REQUIREMENT:*]], [[RULE:*]], [[TRANSITION:*]], [[PERMISSION:*]],
1103
- [[PRINCIPLE:*]], [[CV.ENTITY:*]]"
1103
+ [[FR.REQUIREMENT:*]], [[RULE:*]], [[DM.ENTITY:*]], [[TRANSITION:*]],
1104
+ [[PERMISSION:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]], [[CV.ENTITY:*]],
1105
+ [[TEST-CASE:*]]"
1104
1106
  labeled: true
1105
1107
  qualified: true
1106
1108
  config:
@@ -1269,7 +1271,8 @@
1269
1271
  diagram:
1270
1272
  type: hub
1271
1273
  center: self
1272
- nodes: "[[DM.ENTITY:*]], [[FR.REQUIREMENT:*]], [[USE-CASE:*]]"
1274
+ nodes: "[[DM.ENTITY:*]], [[FR.REQUIREMENT:*]], [[USE-CASE:*]], [[LIFECYCLE:*]],
1275
+ [[FV.COMPONENT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]], [[TEST-CASE:*]]"
1273
1276
  edges: "[[RELATION:*]]"
1274
1277
  labeled: true
1275
1278
  qualified: true
@@ -1374,18 +1377,21 @@
1374
1377
  attributes (an "association class") is reified as an entity of its own,
1375
1378
  related from both sides.
1376
1379
  optional: true
1380
+ format:
1381
+ maxTableColumns: 5
1377
1382
  props:
1378
1383
  - name: TARGET
1379
1384
  desc: Reference to the DATA-MODEL entity the directed relation targets.
1380
1385
  value: "[[DM.ENTITY:*]]"
1381
1386
  - name: KIND
1382
1387
  desc: >
1383
- The kind of the directed relation: `association` for a plain
1384
- reference to an independent target entity, `aggregation` for a
1385
- shared part-of relation whose target outlives the entity, or
1386
- `composition` for an exclusive part-of relation whose target is
1387
- owned by and deleted with the entity; defaults to `association`.
1388
- value: enum(association,aggregation,composition)
1388
+ The kind of the directed relation: `Association` for a plain
1389
+ reference to an independent target entity, `Aggregation` for a
1390
+ (optionally even shared) part-of relation whose target outlives
1391
+ the entity, or `Composition` for an exclusive part-of relation
1392
+ whose target is owned by and deleted with the entity; defaults to
1393
+ `Association`.
1394
+ value: enum(Association,Aggregation,Composition)
1389
1395
  optional: true
1390
1396
  - name: ARITY
1391
1397
  desc: >
@@ -1693,7 +1699,7 @@
1693
1699
  diagram:
1694
1700
  type: hub
1695
1701
  center: self
1696
- nodes: "[[INTERFACE:*]], [[TYPE:*]], [[ENDPOINT:*]]"
1702
+ nodes: "[[INTERFACE:*]], [[TYPE:*]], [[ENDPOINT:*]], [[FV.COMPONENT:*]]"
1697
1703
  labeled: true
1698
1704
  qualified: true
1699
1705
  config:
@@ -1778,7 +1784,7 @@
1778
1784
  diagram:
1779
1785
  type: hub
1780
1786
  center: self
1781
- nodes: "[[TYPE:*]], [[INTERFACE:*]]"
1787
+ nodes: "[[TYPE:*]], [[INTERFACE:*]], [[ENDPOINT:*]]"
1782
1788
  deep: true
1783
1789
  labeled: true
1784
1790
  qualified: true
@@ -2183,7 +2189,8 @@
2183
2189
  diagram:
2184
2190
  type: hub
2185
2191
  center: self
2186
- nodes: "[[PRINCIPLE:*]], [[PERSONA:*]], [[STEP:*]], [[USE-CASE:*]], [[PATTERN:*]]"
2192
+ nodes: "[[PRINCIPLE:*]], [[PERSONA:*]], [[STEP:*]], [[USE-CASE:*]], [[CONVENTION:*]],
2193
+ [[PATTERN:*]], [[ELEMENT:*]], [[DECISION:*]]"
2187
2194
  labeled: true
2188
2195
  qualified: true
2189
2196
  config:
@@ -2350,7 +2357,7 @@
2350
2357
  diagram:
2351
2358
  type: hub
2352
2359
  center: self
2353
- nodes: "[[PATTERN:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]]"
2360
+ nodes: "[[PATTERN:*]], [[PRINCIPLE:*]], [[STORYBOARD:*]], [[DECISION:*]]"
2354
2361
  deep: true
2355
2362
  labeled: true
2356
2363
  qualified: true
@@ -2440,7 +2447,7 @@
2440
2447
  diagram:
2441
2448
  type: hub
2442
2449
  center: self
2443
- nodes: "[[STORYBOARD:*]], [[PERSONA:*]], [[SCENARIO:*]], [[PATTERN:*]]"
2450
+ nodes: "[[STORYBOARD:*]], [[PERSONA:*]], [[SCENARIO:*]], [[PATTERN:*]], [[MOCKUP:*]]"
2444
2451
  deep: true
2445
2452
  labeled: true
2446
2453
  qualified: true
@@ -2803,7 +2810,7 @@
2803
2810
  type: hub
2804
2811
  center: self
2805
2812
  nodes: "[[FV.COMPONENT:*]], [[FR.REQUIREMENT:*]], [[INTERFACE:*]], [[DM.ENTITY:*]],
2806
- [[TACTIC:*]], [[DECISION:*]]"
2813
+ [[UNIT:*]], [[NODE:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
2807
2814
  labeled: true
2808
2815
  qualified: true
2809
2816
  properties:
@@ -2918,6 +2925,7 @@
2918
2925
  diagram:
2919
2926
  type: hub
2920
2927
  center: self
2928
+ nodes: "[[TS.TIER:*]], [[TS.TIER:*.COMPONENT:*]], [[DV.TIER:*]]"
2921
2929
  hierarchy: true
2922
2930
  properties:
2923
2931
  - PRODUCT
@@ -2942,8 +2950,8 @@
2942
2950
  diagram:
2943
2951
  type: hub
2944
2952
  center: self
2945
- nodes: "[[TS.TIER:*.COMPONENT:*]], [[FV.COMPONENT:*]], [[TACTIC:*]],
2946
- [[DECISION:*]]"
2953
+ nodes: "[[TS.TIER:*.COMPONENT:*]], [[FV.COMPONENT:*]], [[CONCERN:*]],
2954
+ [[TACTIC:*]], [[DECISION:*]]"
2947
2955
  labeled: true
2948
2956
  qualified: true
2949
2957
  properties:
@@ -3512,7 +3520,7 @@
3512
3520
  type: hub
3513
3521
  center: self
3514
3522
  nodes: "[[DV.TIER:*]], [[AREA:*]], [[NODE:*]], [[NETWORK:*]], [[FV.COMPONENT:*]],
3515
- [[UNIT:*]], [[TACTIC:*]], [[DECISION:*]]"
3523
+ [[UNIT:*]], [[CONCERN:*]], [[TACTIC:*]], [[DECISION:*]]"
3516
3524
  labeled: true
3517
3525
  qualified: true
3518
3526
  properties:
@@ -3799,7 +3807,7 @@
3799
3807
  center: self
3800
3808
  nodes: "[[TACTIC:*]], [[NR.REQUIREMENT:*]], [[FV.COMPONENT:*]], [[UNIT:*]],
3801
3809
  [[ASPECT:*]], [[NODE:*]], [[DM.ENTITY:*]], [[CONCERN:*]], [[DECISION:*]],
3802
- [[TS.TIER:*.COMPONENT:*]]"
3810
+ [[TS.TIER:*.COMPONENT:*]], [[TEST-CASE:*]]"
3803
3811
  labeled: true
3804
3812
  qualified: true
3805
3813
  properties:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rse/specbook",
3
- "version": "1.2.12",
3
+ "version": "1.2.14",
4
4
  "publishConfig": { "access": "public" },
5
5
  "description": "Markdown-based Specification Format (API, CLI and MCP service)",
6
6
  "license": "Apache-2.0",
@@ -40,8 +40,8 @@
40
40
  "glob": "13.0.6",
41
41
  "picomatch": "4.0.7",
42
42
  "es-toolkit": "1.52.0",
43
- "fastify": "5.12.4",
44
- "@fastify/websocket": "11.3.0",
43
+ "fastify": "5.12.5",
44
+ "@fastify/websocket": "11.3.1",
45
45
  "@modelcontextprotocol/sdk": "1.30.0",
46
46
  "zod": "4.6.5"
47
47
  },
@@ -55,7 +55,7 @@
55
55
  "globals": "17.12.0",
56
56
  "markdownlint": "0.41.1",
57
57
  "markdownlint-cli2": "0.23.2",
58
- "@types/node": "26.5.1",
58
+ "@types/node": "26.6.1",
59
59
  "@types/picomatch": "4.0.3",
60
60
  "@types/subset-font": "2.3.0",
61
61
  "@types/nunjucks": "3.2.6",