@windyroad/itil 1.1.1 → 1.1.2

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.
@@ -497,5 +497,5 @@
497
497
  }
498
498
  },
499
499
  "name": "wr-itil",
500
- "version": "1.1.1"
500
+ "version": "1.1.2"
501
501
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@windyroad/itil",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "ITIL-aligned IT service management for Claude Code (problem, and future incident/change skills)",
5
5
  "bin": {
6
6
  "windyroad-itil": "./bin/install.mjs"
@@ -511,7 +511,7 @@ function renderStatus(map, storiesDir, mapPath) {
511
511
  * alongside colour.
512
512
  * ------------------------------------------------------------------------- */
513
513
 
514
- const BADGE_GLYPH = { 'b-live': '\u2713', 'b-next': '\u2192', 'b-later': '\u25c7', 'b-defect': '\u26a0' };
514
+ const BADGE_GLYPH = { 'b-live': '\u2713', 'b-next': '\u2192', 'b-defect': '\u26a0' };
515
515
 
516
516
  /** Status as a class. Derived, never an authored badge — a hand-written R1/R2
517
517
  * ordinal duplicated the RFC identity and collided with it. */
@@ -7,7 +7,7 @@
7
7
  --card: #f6f6f6; --card-line: #767676;
8
8
  --live-fg: #0b5d1e; --live-bg: #e4f4e8; --live-line: #0b5d1e;
9
9
  --next-fg: #0b3a66; --next-bg: #e2eefb; --next-line: #0b3a66;
10
- --later-fg: #6b3a00; --later-bg: #f6ead6; --later-line: #6b3a00;
10
+ --later-fg: #6b3a00;
11
11
  --defect-fg: #8c1d18; --defect-bg: #fdecea; --defect-line: #8c1d18;
12
12
  --focus: #0b3a66;
13
13
  }
@@ -17,7 +17,7 @@
17
17
  --card: #1f2228; --card-line: #8a919c;
18
18
  --live-fg: #7fe0a0; --live-bg: #123020; --live-line: #7fe0a0;
19
19
  --next-fg: #97c6f5; --next-bg: #10263c; --next-line: #97c6f5;
20
- --later-fg: #f0c58a; --later-bg: #33260f; --later-line: #f0c58a;
20
+ --later-fg: #f0c58a;
21
21
  --defect-fg: #ffb4ab; --defect-bg: #3b1512; --defect-line: #ffb4ab;
22
22
  --focus: #97c6f5;
23
23
  }
@@ -28,7 +28,7 @@
28
28
  --card: #f6f6f6; --card-line: #767676;
29
29
  --live-fg: #0b5d1e; --live-bg: #e4f4e8; --live-line: #0b5d1e;
30
30
  --next-fg: #0b3a66; --next-bg: #e2eefb; --next-line: #0b3a66;
31
- --later-fg: #6b3a00; --later-bg: #f6ead6; --later-line: #6b3a00;
31
+ --later-fg: #6b3a00;
32
32
  --defect-fg: #8c1d18; --defect-bg: #fdecea; --defect-line: #8c1d18;
33
33
  --focus: #0b3a66;
34
34
  }
@@ -38,7 +38,7 @@
38
38
  --card: #1f2228; --card-line: #8a919c;
39
39
  --live-fg: #7fe0a0; --live-bg: #123020; --live-line: #7fe0a0;
40
40
  --next-fg: #97c6f5; --next-bg: #10263c; --next-line: #97c6f5;
41
- --later-fg: #f0c58a; --later-bg: #33260f; --later-line: #f0c58a;
41
+ --later-fg: #f0c58a;
42
42
  --defect-fg: #ffb4ab; --defect-bg: #3b1512; --defect-line: #ffb4ab;
43
43
  --focus: #97c6f5;
44
44
  }
@@ -47,7 +47,16 @@ body { font-family: system-ui, sans-serif; color: var(--fg); background: var(--b
47
47
  max-width: 1500px; margin: 0 auto; padding: 1.5rem 1rem 3rem; line-height: 1.5; }
48
48
  h1 { font-size: 1.5rem; margin: 0 0 .5rem; }
49
49
  p { max-width: 74ch; }
50
- a { color: var(--focus); }
50
+ /* The underline is the channel; the colour is not. Reference links render
51
+ INSIDE runs of prose ("closes P160, P424", "Traces: STORY-018"), and those
52
+ runs sit in --muted containers (.t-ref, .s-problems, .traces) — so the real
53
+ comparison is --focus against --muted: 1.58:1 light and 1.09:1 dark, against
54
+ the 3:1 that technique G183 wants before colour alone may carry a link. In
55
+ dark mode the two tones are all but identical.
56
+ The UA already draws this underline. Stating it means a later
57
+ `text-decoration: none` reads as the SC 1.4.1 regression it is (failure
58
+ technique F73) rather than as a tidy-up. */
59
+ a { color: var(--focus); text-decoration: underline; }
51
60
  /* Required on every interactive element, not just links: the theme toggle
52
61
  (if a host adds one) and the scroll region both take focus. */
53
62
  /* :focus first as a fallback for engines without :focus-visible. The two rules
@@ -72,14 +81,25 @@ button:focus-visible,
72
81
  thing distinguishing the three states. */
73
82
  .b-live { color: var(--live-fg); background: var(--live-bg); border-color: var(--live-line); }
74
83
  .b-next { color: var(--next-fg); background: var(--next-bg); border-color: var(--next-line); }
75
- .b-later { color: var(--later-fg); background: var(--later-bg); border-color: var(--later-line); }
76
84
  /* A row with no RFC identity, or whose stories close no problem. Deliberately
77
- red rather than the amber `.b-later` used for scheduled-later work: this is
78
- not "later", it is wrong, and it needs an edit before the map is ratified.
85
+ red rather than amber: this is not "later", it is wrong, and it needs an edit
86
+ before the map is ratified. There is no amber resting state the `.b-later`
87
+ badge that once named one was retired with it, because a row could sit there
88
+ untraced indefinitely and feel accounted for.
79
89
  7.97:1 light, 9.50:1 dark; the glyph carries it as a second channel. */
80
90
  .b-defect { color: var(--defect-fg); background: var(--defect-bg); border-color: var(--defect-line); }
81
91
 
82
- .scroll { overflow-x: auto; padding-bottom: .5rem; }
92
+ /* scroll-padding-left is load-bearing, not cosmetic. `th.slice` below is
93
+ sticky-left with an opaque background over the leftmost ~96px of this
94
+ scrollport, and browsers align a focused element flush with the scrollport
95
+ edge — under the header. The .t-ref links are narrower than the column, so
96
+ they are hidden ENTIRELY, which is SC 2.4.11 (AA) rather than 2.4.12 (AAA).
97
+ 104px = the 96px column plus the 3px focus ring, its 2px offset, and
98
+ clearance: 96 + 3 + 2 = 101, so 104 clears with 3px spare. The column is
99
+ 96px at every width that scrolls — its `width: 10%` resolves to 94px of the
100
+ 940px minimum, so the `min-width` governs, and under the 640px query where
101
+ `min-width` drops to 72px the 94px percentage takes over instead. */
102
+ .scroll { overflow-x: auto; padding-bottom: .5rem; scroll-padding-left: 104px; }
83
103
  table.map { border-collapse: collapse; width: 100%; min-width: 940px; }
84
104
  table.map caption { text-align: left; color: var(--muted); font-size: .85rem; margin-bottom: .5rem; }
85
105
  /* Activity headers across the top are the backbone: the user journey. */