@agile-team/wl-skills-gate 0.9.0 → 0.9.1
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.
- package/CHANGELOG.md +6 -0
- package/README.md +82 -70
- package/assets/brand-tokens.json +144 -27
- package/assets/wl-bd-logo-dark.svg +29 -0
- package/assets/wl-bd-logo.svg +29 -0
- package/assets/wl-brand-lockup-dark.svg +1 -0
- package/assets/wl-brand-lockup.svg +1 -0
- package/assets/wl-design-logo-dark.svg +29 -0
- package/assets/wl-design-logo.svg +29 -0
- package/assets/wl-gate-logo-dark.svg +29 -38
- package/assets/wl-gate-logo.svg +29 -37
- package/assets/wl-kit-logo-dark.svg +29 -0
- package/assets/wl-kit-logo.svg +29 -0
- package/assets/wl-mark-small.svg +3 -0
- package/assets/wl-mark.svg +3 -11
- package/assets/wl-test-logo-dark.svg +29 -0
- package/assets/wl-test-logo.svg +29 -0
- package/assets/wl-ui-logo-dark.svg +29 -0
- package/assets/wl-ui-logo.svg +29 -0
- package/assets/wl-wordmark-dark.svg +5 -0
- package/assets/wl-wordmark.svg +5 -0
- package/lib/onboard-complete.js +1 -1
- package/lib/onboard-config.js +1 -1
- package/package.json +1 -1
- package/scripts/lib-tests/onboard-complete.test.mjs +4 -4
- package/scripts/lib-tests/onboard.test.mjs +4 -4
- package/templates/onboarding/backend/java-unit.mjs +1 -1
- package/templates/onboarding/backend/quality-tools.package.json +2 -2
- package/templates/quality/rules.lock.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
## [0.9.1] — 2026-10-15
|
|
2
|
+
|
|
3
|
+
- 重写 README:按实际能力梳理定位、接入步骤、使用场景与验证入口,完整细节保留在对应手册。
|
|
4
|
+
- 统一 World Leading 精密工业系列 Logo,提供深浅色版本并纳入 npm 发布内容。
|
|
5
|
+
- 接入固定依赖同步至 Kit 2.33.1、UI 1.22.1、BD 0.41.1,完整接入同时核对对应实际安装版本。
|
|
6
|
+
|
|
1
7
|
# 0.9.0 — 2026-10-15
|
|
2
8
|
|
|
3
9
|
- 修复接入环境与依赖准备、候选Review上下文和索引、删除/暂存区修复恢复、真实阻断与必要环境关闭、消息隔离。
|
package/README.md
CHANGED
|
@@ -1,114 +1,126 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<picture>
|
|
3
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ChenyCHENYU/wl-skills-gate/
|
|
4
|
-
<img src="https://raw.githubusercontent.com/ChenyCHENYU/wl-skills-gate/
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/ChenyCHENYU/wl-skills-gate/main/assets/wl-gate-logo-dark.svg" />
|
|
4
|
+
<img src="https://raw.githubusercontent.com/ChenyCHENYU/wl-skills-gate/main/assets/wl-gate-logo.svg" width="100%" alt="WL skills-gate · World Leading · Quality Automation" />
|
|
5
5
|
</picture>
|
|
6
6
|
</p>
|
|
7
7
|
|
|
8
|
-
<p align="center">
|
|
9
|
-
<strong>从提交检查到复验关闭的质量工程执行包</strong><br />
|
|
10
|
-
自动接入 · 脚本修复与复扫 · 九维 Review · 构建发布门禁
|
|
11
|
-
</p>
|
|
8
|
+
<p align="center"><strong>让项目检查、修复复扫、九维 Review 与构建发布接成一条可验证的质量流程。</strong></p>
|
|
12
9
|
|
|
13
10
|
<p align="center">
|
|
14
|
-
<a href="https://www.npmjs.com/package/@agile-team/wl-skills-gate"><img src="https://img.shields.io/npm/v/@agile-team/wl-skills-gate?color=
|
|
15
|
-
<img src="https://img.shields.io/badge/Node.js-%E2%89%A522.12-
|
|
16
|
-
<img src="https://img.shields.io/badge/runtime_dependencies-0-
|
|
17
|
-
<a href="./LICENSE"><img src="https://img.shields.io/badge/license-authorization_required-64748B" alt="Authorization required" /></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@agile-team/wl-skills-gate"><img src="https://img.shields.io/npm/v/@agile-team/wl-skills-gate?color=087A7D&label=npm" alt="npm version" /></a>
|
|
12
|
+
<img src="https://img.shields.io/badge/Node.js-%E2%89%A522.12-172634" alt="Node.js 22.12 or later" />
|
|
13
|
+
<img src="https://img.shields.io/badge/runtime_dependencies-0-087A7D" alt="Zero runtime dependencies" />
|
|
18
14
|
</p>
|
|
19
15
|
|
|
20
16
|
<p align="center">
|
|
21
|
-
<a href="
|
|
22
|
-
<a href="#接入后怎么运行">运行流程</a> ·
|
|
23
|
-
<a href="#wl-系列怎么配合">包与目录</a> ·
|
|
24
|
-
<a href="./templates/ci">CI 模板</a> ·
|
|
25
|
-
<a href="./docs/README.md">完整文档</a> ·
|
|
26
|
-
<a href="./CHANGELOG.md">更新记录</a>
|
|
17
|
+
<a href="#快速接入">快速接入</a> · <a href="#日常怎么用">日常流程</a> · <a href="#流水线怎么接">流水线接线</a> · <a href="./docs/README.md">技术手册</a>
|
|
27
18
|
</p>
|
|
28
19
|
|
|
29
|
-
|
|
20
|
+
## 解决什么
|
|
30
21
|
|
|
31
|
-
|
|
22
|
+
Gate 是质量执行与裁决层,复用项目已有检查器和适用的 WL 规则包。检查、报告、机械修复、复扫和通知由脚本执行,不调用大模型 API。
|
|
32
23
|
|
|
33
|
-
Gate
|
|
34
|
-
|
|
35
|
-
|
|
|
36
|
-
|
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
| 构建成功就被当作闭环 | 分别记录检查、Review、构建、部署和复验;满足关闭条件才结项 |
|
|
24
|
+
| 场景 | Gate 提供什么 | 能看到什么 |
|
|
25
|
+
| --- | --- | --- |
|
|
26
|
+
| 日常提交 | Hook 自动运行分档检查 | 问题位置、规则、修复建议与阻断原因 |
|
|
27
|
+
| 问题整改 | 预览方案 → 本人确认 → 白名单脚本 → 复扫 | 修前修后变化、剩余问题与回归项 |
|
|
28
|
+
| Code Review | 汇总九维证据,生成待确认草稿 | 非作者逐维确认后的正式 Review |
|
|
29
|
+
| 合并与发布 | 核验候选 SHA、必需检查、Review、制品和目标环境 | 绑定本次代码与制品的放行或拒绝结果 |
|
|
30
|
+
| 问题跟进 | 分类通知、认领、超时对账、独立复验 | 可追溯的处理与关闭记录 |
|
|
41
31
|
|
|
42
32
|
**九维范围:** 提交 · 分支 · 编码 · UI 与交互 · Code Review · 测试 · 扫描门禁 · CI/CD · 工程治理。
|
|
43
33
|
|
|
44
|
-
##
|
|
34
|
+
## 快速接入
|
|
45
35
|
|
|
46
|
-
|
|
36
|
+
由技术经理在**实际 Git 项目根目录**接入一次。准备 Node.js ≥22.12、项目固定的包管理器和原有构建工具;安装源使用团队批准的 HTTPS registry。
|
|
47
37
|
|
|
48
|
-
|
|
38
|
+
### 1. 预览项目接入计划
|
|
49
39
|
|
|
50
40
|
```bash
|
|
51
|
-
npx --yes @agile-team/wl-skills-gate@
|
|
52
|
-
--root
|
|
41
|
+
npx --yes @agile-team/wl-skills-gate@latest onboard \
|
|
42
|
+
--root . --complete --registry https://registry.npmjs.org
|
|
53
43
|
```
|
|
54
44
|
|
|
55
|
-
|
|
45
|
+
查看识别的项目类型、依赖版本、文件差异、Hook 和阻断项。脚本与模板随 Gate 包交付,无需从文档复制拼装。
|
|
46
|
+
|
|
47
|
+
| 项目 | 依赖装在哪里 | 业务构建 |
|
|
48
|
+
| --- | --- | --- |
|
|
49
|
+
| PC Vue 管理端,如 `wl-ui-produce` | 项目 `package.json`:Gate / Kit / UI | 保留原前端构建 |
|
|
50
|
+
| Java/Maven,如 `wl-produce` | `quality-tools/package.json`:Gate / BD | 保留 Maven,Node 工具不进入 jar |
|
|
51
|
+
|
|
52
|
+
`quality-tools/` 只是 Java 仓库里的 Node 工具依赖目录。内置后端配套针对 `wl-produce` PL 模块;其他 Maven 项目先由负责人配置模块与必测。移动端、UniApp 不套用 PC 配套。
|
|
53
|
+
|
|
54
|
+
### 2. 确认并应用这份计划
|
|
56
55
|
|
|
57
56
|
```bash
|
|
58
|
-
npx --yes @agile-team/wl-skills-gate@
|
|
59
|
-
--root
|
|
60
|
-
--apply --plan-hash "
|
|
57
|
+
npx --yes @agile-team/wl-skills-gate@latest onboard \
|
|
58
|
+
--root . --complete --registry https://registry.npmjs.org \
|
|
59
|
+
--apply --plan-hash "<本次返回的 planHash>" --confirm
|
|
61
60
|
```
|
|
62
61
|
|
|
63
|
-
|
|
62
|
+
程序按计划安装固定依赖、同步规则、配置 Hook、执行首扫与提交说明正反验证。首次安装后如出现原生规则或 POM 新差异,会返回新的待确认阶段;用同一入口重新预览、确认后续跑。
|
|
64
63
|
|
|
65
|
-
|
|
64
|
+
### 3. 验证本地与远端效果
|
|
66
65
|
|
|
67
|
-
|
|
|
68
|
-
| --- | --- |
|
|
69
|
-
|
|
|
70
|
-
|
|
|
66
|
+
| 验收点 | 成功依据 |
|
|
67
|
+
| --- | --- |
|
|
68
|
+
| 本地接入 | 返回 `local-validated-awaiting-remote-acceptance`;首扫通过、合规提交说明通过、违规说明被拦截 |
|
|
69
|
+
| 首份质量报告 | 打开 `quality-reports/quality-report.html`;结构化结果在 `quality-summary.json` |
|
|
70
|
+
| 接入执行记录 | `quality-reports/onboarding/execution.json` 显示本次实际阶段与结果 |
|
|
71
|
+
| 远端强制检查 | 按下节接线,在真实 MR / 构建中验证失败拒绝、通过放行与消息送达 |
|
|
72
|
+
|
|
73
|
+
本地接入通过后,再完成 CI、Review、通知和部署验收。完整步骤与状态说明见 [接入指南](./docs/17-onboarding.md)。
|
|
71
74
|
|
|
72
|
-
|
|
75
|
+
## 日常怎么用
|
|
73
76
|
|
|
74
|
-
|
|
77
|
+
开发者正常提交、推送;Hook 自动检查。以 `wl-ui-produce` 修改订单列表为例:
|
|
75
78
|
|
|
76
|
-
|
|
|
79
|
+
| 步骤 | 开发者 / 负责人做什么 | 系统给出什么 |
|
|
77
80
|
| --- | --- | --- |
|
|
78
|
-
|
|
|
79
|
-
|
|
|
80
|
-
|
|
|
81
|
-
|
|
|
82
|
-
|
|
|
81
|
+
| 提交前 | 按原流程暂存、提交代码 | 快速检查;有阻断显示具体位置和建议 |
|
|
82
|
+
| 推送前 | 正常推送 | 标准检查、HTML 报告;已配置 Review 策略时自动生成九维草稿 |
|
|
83
|
+
| 处理问题 | 在已生成的编辑器任务中选择“预览脚本修复”,核对并确认 | 执行批准的机械脚本、自动复扫,展示差异;语义问题保留人工处理 |
|
|
84
|
+
| 发起 Review | 非作者查看代码、补齐实际交互与业务证据、逐维确认 | 绑定当前候选与证据的正式 Review |
|
|
85
|
+
| 构建发布 | 通过受控流水线推进 | 核验本次候选、检查和制品;部署后独立复验再关闭问题 |
|
|
83
86
|
|
|
84
|
-
|
|
87
|
+
同口径的修前修后报告才展示质量变化。扫描通过、Review 确认、发布授权和问题关闭分别核验;一项通过不会代替其余步骤。
|
|
85
88
|
|
|
86
|
-
|
|
89
|
+
## 流水线怎么接
|
|
87
90
|
|
|
88
|
-
|
|
91
|
+
由 GitLab / Jenkins 维护者接线,项目负责人确认规则与必测,通知负责人配置群与分类。执行模板都在本包中。
|
|
89
92
|
|
|
90
|
-
|
|
|
91
|
-
| --- | --- |
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
| `quality-tools/` | Java 仓库的 Node 工具目录,里面安装 Gate / BD;不是另一个包 |
|
|
93
|
+
| 接线内容 | 入口 | 验证方式 |
|
|
94
|
+
| --- | --- | --- |
|
|
95
|
+
| GitLab MR、候选与受保护分支 | [CI 模板](./templates/ci) · [GitLab 指南](./docs/06-gitlab.md) | 违规候选不能合并,真实必需作业齐全 |
|
|
96
|
+
| Jenkins 构建、制品与部署 | [Jenkins 指南](./docs/07-jenkins.md) | SHA、制品摘要、目标环境一致,缺证据拒绝推进 |
|
|
97
|
+
| 真实 CI 证据、身份与 Review | [可信 CI 采集](./docs/18-ci-source.md) · [九维 Review](./docs/19-nine-dimension-review.md) | 旧报告、缺证据、自审与过期批准被拒绝 |
|
|
98
|
+
| 飞书通知、认领、超时与复验 | [中央执行接线](./templates/platform/README.md) | 实际送达、失败重试、认领和独立关闭均留记录 |
|
|
97
99
|
|
|
98
|
-
|
|
100
|
+
项目检查作业与受控签发、部署、通知作业隔离。Hook 提供早反馈;服务端强制检查负责防绕过。
|
|
99
101
|
|
|
100
|
-
##
|
|
102
|
+
## 按需深入
|
|
101
103
|
|
|
102
|
-
| 要做什么 |
|
|
104
|
+
| 要做什么 | 文档 |
|
|
103
105
|
| --- | --- |
|
|
104
|
-
|
|
|
105
|
-
|
|
|
106
|
-
|
|
|
107
|
-
|
|
|
108
|
-
| 验证、升级与排障 | [完整索引](./docs/README.md) · [自测与环境验收](./docs/09-selftest-coverage.md) · [更新记录](./CHANGELOG.md) |
|
|
106
|
+
| 调整检查器、范围、等级与例外 | [策略配置](./docs/02-config.md) · [适配器](./docs/05-adapters.md) |
|
|
107
|
+
| 维护修复白名单、漂移检查与回滚 | [修复闭环](./docs/04-fix-loop.md) |
|
|
108
|
+
| 只读定位问题,减少重复扫描与上下文 | [低 token 执行](./docs/14-low-token-execution.md) · [Java 报告分级](./docs/15-java-report-triage.md) |
|
|
109
|
+
| 排查接入与环境问题 | [项目与运维集成](./docs/16-project-ci-integration.md) · [完整索引](./docs/README.md) |
|
|
109
110
|
|
|
110
|
-
|
|
111
|
+
检查退出码:`0` 通过,`1` 质量阻断,`2` 执行或证据无效。后两者都需要处理,不得以历史绿报告替代本轮结果。
|
|
111
112
|
|
|
112
|
-
|
|
113
|
+
## WL 系列
|
|
113
114
|
|
|
114
|
-
|
|
115
|
+
**WL = World Leading。** 按职责组合,未使用的包无需安装。
|
|
116
|
+
|
|
117
|
+
| 包 | 职责 |
|
|
118
|
+
| --- | --- |
|
|
119
|
+
| **Gate** | 统一接入、检查裁决、修复复扫、Review 与发布证据 |
|
|
120
|
+
| [Kit](https://github.com/ChenyCHENYU/wl-skills-kit) | PC Vue 管理端需求、契约、代码生成与工程规范 |
|
|
121
|
+
| [UI](https://github.com/ChenyCHENYU/wl-skills-ui) | PC 管理端设计令牌、样式与交互质量 |
|
|
122
|
+
| [BD](https://github.com/ChenyCHENYU/wl-skills-bd) | Java 后端规范、契约与检查能力 |
|
|
123
|
+
| [Test](https://github.com/ChenyCHENYU/wl-skills-test) | 测试设计、执行与结果验证 |
|
|
124
|
+
| [Design](https://github.com/ChenyCHENYU/wl-skills-design) | 需求与设计模型、交付契约 |
|
|
125
|
+
|
|
126
|
+
使用授权见 [LICENSE](./LICENSE)。问题反馈请附包版本、执行命令和脱敏报告,提交至 [Issues](https://github.com/ChenyCHENYU/wl-skills-gate/issues)。
|
package/assets/brand-tokens.json
CHANGED
|
@@ -1,45 +1,162 @@
|
|
|
1
1
|
{
|
|
2
|
-
"schemaVersion":
|
|
3
|
-
"
|
|
4
|
-
"
|
|
2
|
+
"schemaVersion": 2,
|
|
3
|
+
"brand": "World Leading",
|
|
4
|
+
"acronym": "WL",
|
|
5
|
+
"series": "World Leading",
|
|
6
|
+
"product": "skills-gate",
|
|
5
7
|
"tagline": "Automated quality workflow",
|
|
6
8
|
"mark": {
|
|
7
9
|
"file": "wl-mark.svg",
|
|
8
|
-
"viewBox": "0 0
|
|
10
|
+
"viewBox": "0 0 256 168",
|
|
9
11
|
"color": "currentColor",
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
12
|
+
"minimumWidthPx": 48,
|
|
13
|
+
"smallVariant": {
|
|
14
|
+
"file": "wl-mark-small.svg",
|
|
15
|
+
"minimumWidthPx": 32,
|
|
16
|
+
"opticalAdjustment": "L moves 8 viewBox units to preserve a 2px gap at 32px width"
|
|
17
|
+
},
|
|
18
|
+
"clearSpace": "At least half the cap height",
|
|
19
|
+
"construction": {
|
|
20
|
+
"wPath": "M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z",
|
|
21
|
+
"lPath": "M181 24H205L174 112H226L218 136H142Z",
|
|
22
|
+
"language": "Precision-cut W and forward-cut L; preserve geometry across products"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"wordmark": {
|
|
26
|
+
"light": "wl-wordmark.svg",
|
|
27
|
+
"dark": "wl-wordmark-dark.svg",
|
|
28
|
+
"viewBox": "0 0 760 160"
|
|
13
29
|
},
|
|
14
30
|
"banner": {
|
|
15
|
-
"viewBox": "0 0
|
|
31
|
+
"viewBox": "0 0 1280 340",
|
|
16
32
|
"light": "wl-gate-logo.svg",
|
|
17
33
|
"dark": "wl-gate-logo-dark.svg",
|
|
18
|
-
"cornerRadius":
|
|
34
|
+
"cornerRadius": 16
|
|
19
35
|
},
|
|
20
36
|
"palette": {
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
"paper": "#
|
|
27
|
-
"
|
|
28
|
-
"
|
|
29
|
-
"textMutedLight": "#
|
|
30
|
-
"textMutedDark": "#
|
|
37
|
+
"obsidian": "#0B1119",
|
|
38
|
+
"graphite": "#111E2C",
|
|
39
|
+
"ink": "#172634",
|
|
40
|
+
"platinum": "#F0F4F6",
|
|
41
|
+
"silver": "#B8C3CE",
|
|
42
|
+
"paper": "#F7F8F8",
|
|
43
|
+
"gateLight": "#087A7D",
|
|
44
|
+
"gateDark": "#8DDEDC",
|
|
45
|
+
"textMutedLight": "#637686",
|
|
46
|
+
"textMutedDark": "#8E9FAF"
|
|
31
47
|
},
|
|
32
48
|
"typography": {
|
|
33
|
-
"family": "
|
|
34
|
-
"productSize":
|
|
35
|
-
"productWeight":
|
|
36
|
-
"
|
|
37
|
-
"
|
|
49
|
+
"family": "Helvetica Neue, Inter, Helvetica, Arial, sans-serif",
|
|
50
|
+
"productSize": 90,
|
|
51
|
+
"productWeight": 550,
|
|
52
|
+
"productTracking": -4,
|
|
53
|
+
"brandSize": 16,
|
|
54
|
+
"brandTracking": 3.15,
|
|
38
55
|
"taglineSize": 20
|
|
39
56
|
},
|
|
40
57
|
"extension": {
|
|
41
|
-
"shared": [
|
|
42
|
-
|
|
43
|
-
|
|
58
|
+
"shared": [
|
|
59
|
+
"WL monogram",
|
|
60
|
+
"WORLD LEADING below the monogram",
|
|
61
|
+
"Fixed brand/product zones",
|
|
62
|
+
"Product title with skills- prefix",
|
|
63
|
+
"Metadata and glyph grid"
|
|
64
|
+
],
|
|
65
|
+
"perProduct": [
|
|
66
|
+
"Package suffix",
|
|
67
|
+
"Module accent",
|
|
68
|
+
"Functional geometric symbol",
|
|
69
|
+
"Functional tagline",
|
|
70
|
+
"Exact npm package identifier"
|
|
71
|
+
],
|
|
72
|
+
"accentSuggestions": {
|
|
73
|
+
"gate": "#8DDEDC",
|
|
74
|
+
"kit": "#9CC5FF",
|
|
75
|
+
"ui": "#CCB8FF",
|
|
76
|
+
"test": "#E7A7B8",
|
|
77
|
+
"design": "#EAAF8A",
|
|
78
|
+
"bd": "#DFC291"
|
|
79
|
+
},
|
|
80
|
+
"examples": [
|
|
81
|
+
"skills-gate",
|
|
82
|
+
"skills-kit",
|
|
83
|
+
"skills-ui",
|
|
84
|
+
"skills-test",
|
|
85
|
+
"skills-design",
|
|
86
|
+
"skills-bd"
|
|
87
|
+
]
|
|
88
|
+
},
|
|
89
|
+
"production": {
|
|
90
|
+
"smallMarks": "Single flat color, no gradients",
|
|
91
|
+
"lightTheme": "Flat ink mark",
|
|
92
|
+
"darkTheme": "Subtle silver gradient is optional in banners",
|
|
93
|
+
"masterFiles": "All assets are native editable SVG"
|
|
94
|
+
},
|
|
95
|
+
"brandLockup": {
|
|
96
|
+
"light": "wl-brand-lockup.svg",
|
|
97
|
+
"dark": "wl-brand-lockup-dark.svg",
|
|
98
|
+
"arrangement": "WL above WORLD LEADING"
|
|
99
|
+
},
|
|
100
|
+
"packageFamily": {
|
|
101
|
+
"gate": {
|
|
102
|
+
"displayName": "skills-gate",
|
|
103
|
+
"npmName": "@agile-team/wl-skills-gate",
|
|
104
|
+
"category": "QUALITY AUTOMATION",
|
|
105
|
+
"tagline": "Checks · Review · Release",
|
|
106
|
+
"darkAccent": "#8DDEDC",
|
|
107
|
+
"lightAccent": "#087A7D",
|
|
108
|
+
"light": "wl-gate-logo.svg",
|
|
109
|
+
"dark": "wl-gate-logo-dark.svg"
|
|
110
|
+
},
|
|
111
|
+
"kit": {
|
|
112
|
+
"displayName": "skills-kit",
|
|
113
|
+
"npmName": "@agile-team/wl-skills-kit",
|
|
114
|
+
"category": "FRONTEND ENGINEERING",
|
|
115
|
+
"tagline": "Standards · Contracts · Workflows",
|
|
116
|
+
"darkAccent": "#9CC5FF",
|
|
117
|
+
"lightAccent": "#315E9F",
|
|
118
|
+
"light": "wl-kit-logo.svg",
|
|
119
|
+
"dark": "wl-kit-logo-dark.svg"
|
|
120
|
+
},
|
|
121
|
+
"ui": {
|
|
122
|
+
"displayName": "skills-ui",
|
|
123
|
+
"npmName": "@agile-team/wl-skills-ui",
|
|
124
|
+
"category": "INTERFACE QUALITY",
|
|
125
|
+
"tagline": "Tokens · Layouts · Interaction",
|
|
126
|
+
"darkAccent": "#CCB8FF",
|
|
127
|
+
"lightAccent": "#7053A7",
|
|
128
|
+
"light": "wl-ui-logo.svg",
|
|
129
|
+
"dark": "wl-ui-logo-dark.svg"
|
|
130
|
+
},
|
|
131
|
+
"test": {
|
|
132
|
+
"displayName": "skills-test",
|
|
133
|
+
"npmName": "@agile-team/wl-skills-test",
|
|
134
|
+
"category": "TEST ENGINEERING",
|
|
135
|
+
"tagline": "Cases · Automation · Evidence",
|
|
136
|
+
"darkAccent": "#E7A7B8",
|
|
137
|
+
"lightAccent": "#A34262",
|
|
138
|
+
"light": "wl-test-logo.svg",
|
|
139
|
+
"dark": "wl-test-logo-dark.svg"
|
|
140
|
+
},
|
|
141
|
+
"design": {
|
|
142
|
+
"displayName": "skills-design",
|
|
143
|
+
"npmName": "@agile-team/wl-skills-design",
|
|
144
|
+
"category": "PRODUCT DESIGN",
|
|
145
|
+
"tagline": "Requirements · Flows · Prototypes",
|
|
146
|
+
"darkAccent": "#EAAF8A",
|
|
147
|
+
"lightAccent": "#A45C2B",
|
|
148
|
+
"light": "wl-design-logo.svg",
|
|
149
|
+
"dark": "wl-design-logo-dark.svg"
|
|
150
|
+
},
|
|
151
|
+
"bd": {
|
|
152
|
+
"displayName": "skills-bd",
|
|
153
|
+
"npmName": "@agile-team/wl-skills-bd",
|
|
154
|
+
"category": "BACKEND ENGINEERING",
|
|
155
|
+
"tagline": "Java · Contracts · Quality",
|
|
156
|
+
"darkAccent": "#DFC291",
|
|
157
|
+
"lightAccent": "#886331",
|
|
158
|
+
"light": "wl-bd-logo.svg",
|
|
159
|
+
"dark": "wl-bd-logo-dark.svg"
|
|
160
|
+
}
|
|
44
161
|
}
|
|
45
162
|
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-bd</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-bd package, backend engineering, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#0B1119"/><stop offset="1" stop-color="#111E2C"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#F7FAFA"/><stop offset=".58" stop-color="#B4C3CE"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#52677C" stop-opacity=".4"/><stop offset="1" stop-color="#52677C" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#DFC291" opacity=".035"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="url(#metal)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#DFC291"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#9CAAB8" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#52677C" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#DFC291" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#DFC291" font-size="12" font-weight="600" letter-spacing="3.5">BACKEND ENGINEERING</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#9CAAB8" font-weight="350">skills-</tspan><tspan fill="#F0F4F6" font-weight="550">bd</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#8E9FAF" font-size="20" font-weight="400" letter-spacing=".2">Java · Contracts · Quality</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#8E9FAF" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-bd</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#DFC291" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M17 35 48 19 79 35 48 51ZM17 49 48 65 79 49M17 63 48 79 79 63"/><path d="M48 19 63 27" stroke-width="4"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#52677C" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-bd</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-bd package, backend engineering, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8F8"/><stop offset="1" stop-color="#EFF2F4"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#21394D"/><stop offset=".58" stop-color="#0C2031"/><stop offset="1" stop-color="#284156"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#AEBCC6" stop-opacity=".4"/><stop offset="1" stop-color="#AEBCC6" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#886331" opacity=".04"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#886331"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#687A89" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#AEBCC6" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#886331" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#886331" font-size="12" font-weight="600" letter-spacing="3.5">BACKEND ENGINEERING</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#687A89" font-weight="350">skills-</tspan><tspan fill="#172634" font-weight="550">bd</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#637686" font-size="20" font-weight="400" letter-spacing=".2">Java · Contracts · Quality</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#637686" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-bd</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#886331" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M17 35 48 19 79 35 48 51ZM17 49 48 65 79 49M17 63 48 79 79 63"/><path d="M48 19 63 27" stroke-width="4"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#AEBCC6" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 224" role="img" aria-labelledby="title desc"><title id="title">WL · World Leading</title><desc id="desc">Fixed World Leading parent-brand lockup. WL monogram above WORLD LEADING.</desc><g fill="#EEF1F2"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/></g><text x="122" y="187" text-anchor="middle" fill="#EEF1F2" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="12" font-weight="500" letter-spacing="2.9">WORLD LEADING</text></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 224" role="img" aria-labelledby="title desc"><title id="title">WL · World Leading</title><desc id="desc">Fixed World Leading parent-brand lockup. WL monogram above WORLD LEADING.</desc><g fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/></g><text x="122" y="187" text-anchor="middle" fill="#172634" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="12" font-weight="500" letter-spacing="2.9">WORLD LEADING</text></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-design</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-design package, product design, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#0B1119"/><stop offset="1" stop-color="#111E2C"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#F7FAFA"/><stop offset=".58" stop-color="#B4C3CE"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#52677C" stop-opacity=".4"/><stop offset="1" stop-color="#52677C" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#EAAF8A" opacity=".035"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="url(#metal)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#EAAF8A"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#9CAAB8" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#52677C" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#EAAF8A" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#EAAF8A" font-size="12" font-weight="600" letter-spacing="3.5">PRODUCT DESIGN</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#9CAAB8" font-weight="350">skills-</tspan><tspan fill="#F0F4F6" font-weight="550">design</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#8E9FAF" font-size="20" font-weight="400" letter-spacing=".2">Requirements · Flows · Prototypes</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#8E9FAF" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-design</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#EAAF8A" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M17 17H39V39H17ZM57 57H79V79H57ZM57 17H79V39H57ZM17 57H39V79H17ZM39 28H57M28 39V57M68 39V57M39 68H57"/><path d="M57 28 51 24M57 28 51 32"/><path d="M68 57 64 51M68 57 72 51"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#52677C" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-design</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-design package, product design, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8F8"/><stop offset="1" stop-color="#EFF2F4"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#21394D"/><stop offset=".58" stop-color="#0C2031"/><stop offset="1" stop-color="#284156"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#AEBCC6" stop-opacity=".4"/><stop offset="1" stop-color="#AEBCC6" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#A45C2B" opacity=".04"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#A45C2B"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#687A89" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#AEBCC6" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#A45C2B" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#A45C2B" font-size="12" font-weight="600" letter-spacing="3.5">PRODUCT DESIGN</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#687A89" font-weight="350">skills-</tspan><tspan fill="#172634" font-weight="550">design</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#637686" font-size="20" font-weight="400" letter-spacing=".2">Requirements · Flows · Prototypes</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#637686" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-design</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#A45C2B" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M17 17H39V39H17ZM57 57H79V79H57ZM57 17H79V39H57ZM17 57H39V79H17ZM39 28H57M28 39V57M68 39V57M39 68H57"/><path d="M57 28 51 24M57 28 51 32"/><path d="M68 57 64 51M68 57 72 51"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#AEBCC6" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -1,38 +1,29 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
<g
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
</g>
|
|
31
|
-
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
32
|
-
<path d="M739 110h95" stroke="#33596C" stroke-width="2"/>
|
|
33
|
-
<circle cx="739" cy="110" r="6" fill="#102D43" stroke="#6A96A8" stroke-width="2"/>
|
|
34
|
-
<circle cx="786" cy="110" r="6" fill="#102D43" stroke="#6A96A8" stroke-width="2"/>
|
|
35
|
-
<circle cx="841" cy="110" r="17" fill="#153F45" stroke="#49D9BA" stroke-width="2"/>
|
|
36
|
-
<path d="m834 110 5 5 9-10" stroke="#49D9BA" stroke-width="2.5"/>
|
|
37
|
-
</g>
|
|
38
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-gate</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-gate package, quality automation, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#0B1119"/><stop offset="1" stop-color="#111E2C"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#F7FAFA"/><stop offset=".58" stop-color="#B4C3CE"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#52677C" stop-opacity=".4"/><stop offset="1" stop-color="#52677C" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#8DDEDC" opacity=".035"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="url(#metal)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#8DDEDC"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#9CAAB8" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#52677C" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#8DDEDC" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#8DDEDC" font-size="12" font-weight="600" letter-spacing="3.5">QUALITY AUTOMATION</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#9CAAB8" font-weight="350">skills-</tspan><tspan fill="#F0F4F6" font-weight="550">gate</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#8E9FAF" font-size="20" font-weight="400" letter-spacing=".2">Checks · Review · Release</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#8E9FAF" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-gate</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#8DDEDC" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M23 76V22H73V76M16 76H31M65 76H80"/><path d="M48 39V59"/><path d="M41 22H55" stroke-width="4"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#52677C" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
package/assets/wl-gate-logo.svg
CHANGED
|
@@ -1,37 +1,29 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
31
|
-
<path d="M739 110h95" stroke="#B9CFD6" stroke-width="2"/>
|
|
32
|
-
<circle cx="739" cy="110" r="6" fill="#F2F8FA" stroke="#7296A5" stroke-width="2"/>
|
|
33
|
-
<circle cx="786" cy="110" r="6" fill="#F2F8FA" stroke="#7296A5" stroke-width="2"/>
|
|
34
|
-
<circle cx="841" cy="110" r="17" fill="#E0F5EE" stroke="#159D82" stroke-width="2"/>
|
|
35
|
-
<path d="m834 110 5 5 9-10" stroke="#159D82" stroke-width="2.5"/>
|
|
36
|
-
</g>
|
|
37
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-gate</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-gate package, quality automation, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8F8"/><stop offset="1" stop-color="#EFF2F4"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#21394D"/><stop offset=".58" stop-color="#0C2031"/><stop offset="1" stop-color="#284156"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#AEBCC6" stop-opacity=".4"/><stop offset="1" stop-color="#AEBCC6" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#087A7D" opacity=".04"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#087A7D"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#687A89" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#AEBCC6" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#087A7D" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#087A7D" font-size="12" font-weight="600" letter-spacing="3.5">QUALITY AUTOMATION</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#687A89" font-weight="350">skills-</tspan><tspan fill="#172634" font-weight="550">gate</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#637686" font-size="20" font-weight="400" letter-spacing=".2">Checks · Review · Release</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#637686" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-gate</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#087A7D" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M23 76V22H73V76M16 76H31M65 76H80"/><path d="M48 39V59"/><path d="M41 22H55" stroke-width="4"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#AEBCC6" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-kit</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-kit package, frontend engineering, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#0B1119"/><stop offset="1" stop-color="#111E2C"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#F7FAFA"/><stop offset=".58" stop-color="#B4C3CE"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#52677C" stop-opacity=".4"/><stop offset="1" stop-color="#52677C" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#9CC5FF" opacity=".035"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="url(#metal)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#9CC5FF"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#9CAAB8" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#52677C" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#9CC5FF" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#9CC5FF" font-size="12" font-weight="600" letter-spacing="3.5">FRONTEND ENGINEERING</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#9CAAB8" font-weight="350">skills-</tspan><tspan fill="#F0F4F6" font-weight="550">kit</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#8E9FAF" font-size="20" font-weight="400" letter-spacing=".2">Standards · Contracts · Workflows</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#8E9FAF" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-kit</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#9CC5FF" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M20 21H42V43H20ZM54 21H76V43H54ZM20 55H42V77H20ZM65 51 80 66 65 81 50 66Z"/><path d="M54 21H76V28" stroke-width="4"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#52677C" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-kit</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-kit package, frontend engineering, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8F8"/><stop offset="1" stop-color="#EFF2F4"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#21394D"/><stop offset=".58" stop-color="#0C2031"/><stop offset="1" stop-color="#284156"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#AEBCC6" stop-opacity=".4"/><stop offset="1" stop-color="#AEBCC6" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#315E9F" opacity=".04"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#315E9F"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#687A89" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#AEBCC6" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#315E9F" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#315E9F" font-size="12" font-weight="600" letter-spacing="3.5">FRONTEND ENGINEERING</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#687A89" font-weight="350">skills-</tspan><tspan fill="#172634" font-weight="550">kit</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#637686" font-size="20" font-weight="400" letter-spacing=".2">Standards · Contracts · Workflows</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#637686" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-kit</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#315E9F" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M20 21H42V43H20ZM54 21H76V43H54ZM20 55H42V77H20ZM65 51 80 66 65 81 50 66Z"/><path d="M54 21H76V28" stroke-width="4"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#AEBCC6" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 168" fill="currentColor" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading</title><desc id="desc">Original World Leading monogram. Precision-cut W and forward-cut L. Optically spaced for small use.</desc>
|
|
3
|
+
<path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z" transform="translate(8 0)"/></svg>
|
package/assets/wl-mark.svg
CHANGED
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
<g stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
|
5
|
-
<path d="M18 106V22h92v19" stroke-width="9"/>
|
|
6
|
-
<path d="m31 50 10 37 13-25 13 25 10-37M90 50v37h18" stroke-width="8"/>
|
|
7
|
-
<path d="M18 106h60" stroke-width="9"/>
|
|
8
|
-
<circle cx="105" cy="105" r="17" stroke-width="7"/>
|
|
9
|
-
<path d="m97 105 5 5 11-12" stroke-width="6"/>
|
|
10
|
-
</g>
|
|
11
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 168" fill="currentColor" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading</title><desc id="desc">Original World Leading monogram. Precision-cut W and forward-cut L. Single-color master mark.</desc>
|
|
3
|
+
<path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-test</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-test package, test engineering, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#0B1119"/><stop offset="1" stop-color="#111E2C"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#F7FAFA"/><stop offset=".58" stop-color="#B4C3CE"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#52677C" stop-opacity=".4"/><stop offset="1" stop-color="#52677C" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#E7A7B8" opacity=".035"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="url(#metal)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#E7A7B8"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#9CAAB8" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#52677C" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#E7A7B8" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#E7A7B8" font-size="12" font-weight="600" letter-spacing="3.5">TEST ENGINEERING</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#9CAAB8" font-weight="350">skills-</tspan><tspan fill="#F0F4F6" font-weight="550">test</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#8E9FAF" font-size="20" font-weight="400" letter-spacing=".2">Cases · Automation · Evidence</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#8E9FAF" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-test</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#E7A7B8" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M18 21H78V77H18ZM18 39H78M36 39V77M56 39V77"/><path d="M25 49 29 53 34 46M42 65 46 69 52 61M63 49H71M63 65H71"/><path d="M26 29H32" stroke-width="3"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#52677C" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-test</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-test package, test engineering, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8F8"/><stop offset="1" stop-color="#EFF2F4"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#21394D"/><stop offset=".58" stop-color="#0C2031"/><stop offset="1" stop-color="#284156"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#AEBCC6" stop-opacity=".4"/><stop offset="1" stop-color="#AEBCC6" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#A34262" opacity=".04"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#A34262"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#687A89" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#AEBCC6" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#A34262" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#A34262" font-size="12" font-weight="600" letter-spacing="3.5">TEST ENGINEERING</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#687A89" font-weight="350">skills-</tspan><tspan fill="#172634" font-weight="550">test</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#637686" font-size="20" font-weight="400" letter-spacing=".2">Cases · Automation · Evidence</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#637686" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-test</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#A34262" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M18 21H78V77H18ZM18 39H78M36 39V77M56 39V77"/><path d="M25 49 29 53 34 46M42 65 46 69 52 61M63 49H71M63 65H71"/><path d="M26 29H32" stroke-width="3"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#AEBCC6" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-ui</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-ui package, interface quality, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#0B1119"/><stop offset="1" stop-color="#111E2C"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#F7FAFA"/><stop offset=".58" stop-color="#B4C3CE"/><stop offset="1" stop-color="#E7EEF2"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#52677C" stop-opacity=".4"/><stop offset="1" stop-color="#52677C" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#CCB8FF" opacity=".035"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="url(#metal)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#CCB8FF"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#9CAAB8" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#52677C" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#CCB8FF" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#CCB8FF" font-size="12" font-weight="600" letter-spacing="3.5">INTERFACE QUALITY</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#9CAAB8" font-weight="350">skills-</tspan><tspan fill="#F0F4F6" font-weight="550">ui</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#8E9FAF" font-size="20" font-weight="400" letter-spacing=".2">Tokens · Layouts · Interaction</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#8E9FAF" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-ui</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#CCB8FF" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M18 24H72L80 32V76H18Z"/><path d="M18 37H80M38 37V76M47 48H69M47 58H61"/><path d="M25 30H30" stroke-width="3"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#52677C" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 340" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">WL · World Leading · skills-ui</title>
|
|
3
|
+
<desc id="desc">World Leading signature on the left. The skills-ui package, interface quality, on the right. Shared precision industrial identity.</desc>
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="surface" x1="0" y1="0" x2="1280" y2="340" gradientUnits="userSpaceOnUse"><stop stop-color="#F7F8F8"/><stop offset="1" stop-color="#EFF2F4"/></linearGradient>
|
|
6
|
+
<linearGradient id="metal" x1="0" y1="22" x2="200" y2="149" gradientUnits="userSpaceOnUse"><stop stop-color="#21394D"/><stop offset=".58" stop-color="#0C2031"/><stop offset="1" stop-color="#284156"/></linearGradient>
|
|
7
|
+
<linearGradient id="rule" gradientUnits="userSpaceOnUse" x1="400" y1="281" x2="1218" y2="281"><stop stop-color="#AEBCC6" stop-opacity=".4"/><stop offset="1" stop-color="#AEBCC6" stop-opacity=".12"/></linearGradient>
|
|
8
|
+
<clipPath id="canvas"><rect width="1280" height="340" rx="16"/></clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
<g clip-path="url(#canvas)">
|
|
11
|
+
<rect width="1280" height="340" fill="url(#surface)"/>
|
|
12
|
+
<path d="M1247 0H1280V340H1148Z" fill="#7053A7" opacity=".04"/>
|
|
13
|
+
<g transform="translate(60 58) scale(1.12)" fill="#172634"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/><path d="M174 112H226L218 136H166Z" fill="#7053A7"/></g>
|
|
14
|
+
<text x="195" y="258" text-anchor="middle" fill="#687A89" font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif" font-size="16" font-weight="500" letter-spacing="3.15">WORLD LEADING</text>
|
|
15
|
+
<path d="M352 72V278" stroke="#AEBCC6" stroke-opacity=".35"/>
|
|
16
|
+
<path d="M352 153V192" stroke="#7053A7" stroke-opacity=".85" stroke-width="2"/>
|
|
17
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif">
|
|
18
|
+
<text x="400" y="88" fill="#7053A7" font-size="12" font-weight="600" letter-spacing="3.5">INTERFACE QUALITY</text>
|
|
19
|
+
<text x="393" y="187" font-size="90" letter-spacing="-4"><tspan fill="#687A89" font-weight="350">skills-</tspan><tspan fill="#172634" font-weight="550">ui</tspan></text>
|
|
20
|
+
<text x="400" y="236" fill="#637686" font-size="20" font-weight="400" letter-spacing=".2">Tokens · Layouts · Interaction</text>
|
|
21
|
+
</g>
|
|
22
|
+
<path d="M400 281H1218" stroke="url(#rule)"/>
|
|
23
|
+
<text x="400" y="311" fill="#637686" font-family="'SFMono-Regular', Consolas, 'Liberation Mono', monospace" font-size="13" letter-spacing=".15">@agile-team/wl-skills-ui</text>
|
|
24
|
+
<g transform="translate(1049 83) scale(1.68)" fill="none" stroke="#7053A7" stroke-linecap="square" stroke-linejoin="miter">
|
|
25
|
+
<path d="M8 23V8H23M73 8H88V23M88 73V88H73M23 88H8V73" stroke-width=".8" opacity=".22"/>
|
|
26
|
+
<g stroke-width="2" opacity=".85"><path d="M18 24H72L80 32V76H18Z"/><path d="M18 37H80M38 37V76M47 48H69M47 58H61"/><path d="M25 30H30" stroke-width="3"/></g>
|
|
27
|
+
</g>
|
|
28
|
+
<rect x=".5" y=".5" width="1279" height="339" rx="15.5" fill="none" stroke="#AEBCC6" stroke-opacity=".2"/>
|
|
29
|
+
</g></svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 160" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">World Leading · WL</title><desc id="desc">World Leading master wordmark. The WL monogram and full brand name, independent of any product.</desc>
|
|
3
|
+
<g fill="#EEF1F2" transform="translate(12 10) scale(.87)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/></g>
|
|
4
|
+
<path d="M250 36V127" fill="none" stroke="#8D9BAA" stroke-opacity=".35"/>
|
|
5
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif"><text x="290" y="82" fill="#EEF1F2" font-size="36" font-weight="500" letter-spacing="2.5">WORLD LEADING</text><text x="293" y="115" fill="#8D9BAA" font-size="11" font-weight="500" letter-spacing="4.8">ENGINEERING</text></g></svg>
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 760 160" role="img" aria-labelledby="title desc">
|
|
2
|
+
<title id="title">World Leading · WL</title><desc id="desc">World Leading master wordmark. The WL monogram and full brand name, independent of any product.</desc>
|
|
3
|
+
<g fill="#172331" transform="translate(12 10) scale(.87)"><path d="M18 24H42L58 84L82 24H104L126 84L145 24H170L134 136H111L93 100L76 136H53Z"/><path d="M181 24H205L174 112H226L218 136H142Z"/></g>
|
|
4
|
+
<path d="M250 36V127" fill="none" stroke="#66717C" stroke-opacity=".35"/>
|
|
5
|
+
<g font-family="'Helvetica Neue', Inter, Helvetica, Arial, sans-serif"><text x="290" y="82" fill="#172331" font-size="36" font-weight="500" letter-spacing="2.5">WORLD LEADING</text><text x="293" y="115" fill="#66717C" font-size="11" font-weight="500" letter-spacing="4.8">ENGINEERING</text></g></svg>
|
package/lib/onboard-complete.js
CHANGED
|
@@ -44,7 +44,7 @@ function tool(root, kind, name) {
|
|
|
44
44
|
const real = realpathSync(directory);
|
|
45
45
|
if (!real.startsWith(root + path.sep)) throw new Error("原生工具实际路径在项目外,不执行");
|
|
46
46
|
const pkg = JSON.parse(readFileSync(path.join(real, "package.json")));
|
|
47
|
-
const expected = { gate: fixedVersion, kit: "2.33.
|
|
47
|
+
const expected = { gate: fixedVersion, kit: "2.33.1", ui: "1.22.1", bd: "0.41.1" }[name];
|
|
48
48
|
if (pkg.name !== `@agile-team/wl-skills-${name}` || pkg.version !== expected) throw new Error(`原生工具 ${name} 版本不匹配`);
|
|
49
49
|
return { root: real, sha256: artifactDigest(real), version: pkg.version };
|
|
50
50
|
}
|
package/lib/onboard-config.js
CHANGED
|
@@ -18,7 +18,7 @@ const EXAMPLES = path.join(SHARED_GATE, "templates/onboarding");
|
|
|
18
18
|
const OWNER = "技术经理";
|
|
19
19
|
const BEGIN = "# wl-quality-onboarding:begin v1";
|
|
20
20
|
const END = "# wl-quality-onboarding:end";
|
|
21
|
-
const VERSIONS = { gate: JSON.parse(readFileSync(path.join(SHARED_GATE, "package.json"))).version, kit: "2.33.
|
|
21
|
+
const VERSIONS = { gate: JSON.parse(readFileSync(path.join(SHARED_GATE, "package.json"))).version, kit: "2.33.1", ui: "1.22.1" };
|
|
22
22
|
const LEGACY_CONFIRM_INPUT = {
|
|
23
23
|
id: "wl-quality-confirm-repair", type: "pickString",
|
|
24
24
|
description: "先运行预览任务并查看终端中的实际 planHash、允许修改文件、脚本项及人工项;确认仅应用该已预览计划。",
|
package/package.json
CHANGED
|
@@ -19,7 +19,7 @@ const git = (root, ...args) => execFileSync("git", ["-C", root, ...args], { enco
|
|
|
19
19
|
function fixture(t, kind = "frontend") {
|
|
20
20
|
const root = mkdtempSync(path.join(realpathSync(os.tmpdir()), "wl-onboard-complete-")); t.after(() => rmSync(root, { recursive: true, force: true }));
|
|
21
21
|
git(root, "init", "-q"); git(root, "config", "user.name", "fixture"); git(root, "config", "user.email", "fixture@example.invalid");
|
|
22
|
-
if (kind === "frontend") put(root, "package.json", { name: "fixture", dependencies: { vue: "3" }, devDependencies: { "@agile-team/wl-skills-kit": "2.33.
|
|
22
|
+
if (kind === "frontend") put(root, "package.json", { name: "fixture", dependencies: { vue: "3" }, devDependencies: { "@agile-team/wl-skills-kit": "2.33.1" } });
|
|
23
23
|
else { put(root, "pom.xml", "<project><modelVersion>4.0.0</modelVersion><artifactId>fixture</artifactId><profiles><profile><id>business-existing</id></profile></profiles></project>\n"); put(root, "wl-produce-pl/wl-produce-pl-service/pom.xml", "<project><artifactId>fixture-module</artifactId></project>"); put(root, "wl-produce-pl/wl-produce-pl-service/src/main/java/Fixture.java", "class Fixture {}\n"); }
|
|
24
24
|
git(root, "add", "."); git(root, "-c", "core.hooksPath=/dev/null", "commit", "-qm", "fixture: seed"); return root;
|
|
25
25
|
}
|
|
@@ -28,7 +28,7 @@ function installIsolatedTools(root, kind) {
|
|
|
28
28
|
const modules = path.join(root, kind === "backend" ? "quality-tools/node_modules" : "node_modules", "@agile-team");
|
|
29
29
|
const gate = path.join(modules, "wl-skills-gate"); mkdirSync(gate, { recursive: true });
|
|
30
30
|
for (const file of ["package.json", "lib", "bin", "schemas", "templates"]) cpSync(path.join(PACKAGE, file), path.join(gate, file), { recursive: true });
|
|
31
|
-
for (const [name, version] of kind === "backend" ? [["bd", "0.41.
|
|
31
|
+
for (const [name, version] of kind === "backend" ? [["bd", "0.41.1"]] : [["kit", "2.33.1"], ["ui", "1.22.1"]]) {
|
|
32
32
|
const directory = path.join(modules, `wl-skills-${name}`); put(directory, "package.json", { name: `@agile-team/wl-skills-${name}`, version });
|
|
33
33
|
put(directory, `bin/${name === "kit" ? "wl-skills" : name === "ui" ? "wl-ui" : "wl-skills-bd"}.js`, `// isolated native version stub, not a business checker\nif (process.argv.includes("--version")) console.log("${version}");\n`);
|
|
34
34
|
}
|
|
@@ -45,7 +45,7 @@ function fakeRunner(root, kind, calls, { failInstall = false, applyNative = fals
|
|
|
45
45
|
if (args[0] === "install" && !failInstall) installIsolatedTools(root, kind);
|
|
46
46
|
if (args[0] === "install") return { status: failInstall ? 17 : 0, stdout: "isolated installation result", stderr: failInstall ? "registry unavailable fixture" : "" };
|
|
47
47
|
const script = args[0] || "";
|
|
48
|
-
if (args.includes("--version") || args.includes("-version")) return { status: 0, stdout: script.includes("wl-skills-bd") ? "0.41.
|
|
48
|
+
if (args.includes("--version") || args.includes("-version")) return { status: 0, stdout: script.includes("wl-skills-bd") ? "0.41.1\n" : script.includes("wl-skills.js") ? "2.33.1\n" : script.includes("wl-ui.js") ? "1.22.1\n" : "fixture-tool-1.0\n", stderr: "" };
|
|
49
49
|
if (script.includes("wl-skills-bd.js") && args.includes("update")) {
|
|
50
50
|
if (args.includes("--confirm") && applyNative) for (const name of ["audit", "unit"]) put(root, `.github/java-quality/maven-snippets/quality-${name}-profile.xml`, readFileSync(path.join(BD_FILES, `quality-${name}-profile.xml`), "utf8"));
|
|
51
51
|
return { status: 0, stdout: JSON.stringify({ planHash: "a".repeat(64), note: drift ? "changed" : "isolated actual plan" }), stderr: "" };
|
|
@@ -167,7 +167,7 @@ test("隔离真实Git和Gate完成首扫及提交说明正反验证,远端仍
|
|
|
167
167
|
put(assets, "frontend/policy.yml", ["schemaVersion: 1", "project: fixture", "releaseRequires: [ISOLATED-REPORT]", "checks:", " - id: ISOLATED-REPORT", " dimension: 编码规范", " tool: raw-json", " command: node scripts/quality/isolated-producer.mjs", " file: quality-reports/native/isolated.json", " versionCommand: node node_modules/@agile-team/wl-skills-kit/bin/wl-skills.js --version", " profiles: [standard, release]", ""].join("\n"));
|
|
168
168
|
const pkgFile = path.join(root, "package.json"), pkg = JSON.parse(readFileSync(pkgFile)); pkg.packageManager = "pnpm@10.34.5"; pkg.devDependencies["vue-tsc"] = "3.0.0"; put(root, "package.json", pkg);
|
|
169
169
|
put(root, "src/fixture.js", "export const fixture = true;\n");
|
|
170
|
-
put(root, "scripts/quality/isolated-producer.mjs", "import {mkdirSync,writeFileSync} from 'node:fs'; mkdirSync('quality-reports/native',{recursive:true});writeFileSync('quality-reports/native/isolated.json',JSON.stringify({toolVersion:'2.33.
|
|
170
|
+
put(root, "scripts/quality/isolated-producer.mjs", "import {mkdirSync,writeFileSync} from 'node:fs'; mkdirSync('quality-reports/native',{recursive:true});writeFileSync('quality-reports/native/isolated.json',JSON.stringify({toolVersion:'2.33.1',findings:[]}));\n");
|
|
171
171
|
if (mode === "controlled-lifecycle") commonLifecycleFixture(root);
|
|
172
172
|
apply({ root, assetRoot: assets }); installIsolatedTools(root, "frontend");
|
|
173
173
|
if (mode === "hook-mutates-source") {
|
|
@@ -16,7 +16,7 @@ function fixture(t, kind = "frontend", { adopted = true, hooks = null } = {}) {
|
|
|
16
16
|
t.after(() => rmSync(root, { recursive: true, force: true }));
|
|
17
17
|
git(root, "init", "-q"); git(root, "config", "user.name", "fixture"); git(root, "config", "user.email", "fixture@example.invalid");
|
|
18
18
|
if (hooks) git(root, "config", "core.hooksPath", hooks);
|
|
19
|
-
if (kind === "frontend") put(root, "package.json", { name: "fixture-console", dependencies: { vue: "3.5.0" }, devDependencies: adopted ? { "@agile-team/wl-skills-kit": "2.33.
|
|
19
|
+
if (kind === "frontend") put(root, "package.json", { name: "fixture-console", dependencies: { vue: "3.5.0" }, devDependencies: adopted ? { "@agile-team/wl-skills-kit": "2.33.1" } : {}, scripts: { build: "business-build" } });
|
|
20
20
|
else {
|
|
21
21
|
put(root, "pom.xml", "<project><modelVersion>4.0.0</modelVersion><artifactId>fixture</artifactId></project>");
|
|
22
22
|
put(root, "wl-produce-pl/wl-produce-pl-service/pom.xml", "<project><artifactId>wl-produce-pl-service</artifactId></project>");
|
|
@@ -66,7 +66,7 @@ test("Java 依赖放在 quality-tools;Maven/POM 原文保留", (t) => {
|
|
|
66
66
|
const result = apply({ root }, plan);
|
|
67
67
|
const pkg = JSON.parse(readFileSync(path.join(root, "quality-tools/package.json")));
|
|
68
68
|
assert.equal(pkg.devDependencies["@agile-team/wl-skills-gate"], JSON.parse(readFileSync(path.join(PACKAGE_ROOT, "package.json"))).version);
|
|
69
|
-
assert.equal(pkg.devDependencies["@agile-team/wl-skills-bd"], "0.41.
|
|
69
|
+
assert.equal(pkg.devDependencies["@agile-team/wl-skills-bd"], "0.41.1");
|
|
70
70
|
assert.equal(existsSync(path.join(root, "package.json")), false);
|
|
71
71
|
assert.equal(readFileSync(path.join(root, "pom.xml"), "utf8"), pom);
|
|
72
72
|
assert.ok(result.gaps.some((g) => g.id === "POM-PROFILE-REQUIRED"));
|
|
@@ -87,7 +87,7 @@ test("保护未知项目:新 Vue 需明确 PC 范围,移动/混合/未知 Ma
|
|
|
87
87
|
test("没有授权、过期计划、冲突与符号链接目标均拒绝写入和激活", (t) => {
|
|
88
88
|
const root = fixture(t); const plan = planOnboarding({ root });
|
|
89
89
|
assert.throws(() => applyOnboarding({ root, planHash: plan.planHash }), /显式/);
|
|
90
|
-
put(root, "package.json", { name: "changed", dependencies: { vue: "3" }, devDependencies: { "@agile-team/wl-skills-kit": "2.33.
|
|
90
|
+
put(root, "package.json", { name: "changed", dependencies: { vue: "3" }, devDependencies: { "@agile-team/wl-skills-kit": "2.33.1" } });
|
|
91
91
|
assert.throws(() => apply({ root }, plan), /零写入/);
|
|
92
92
|
assert.equal(existsSync(path.join(root, ".githooks")), false);
|
|
93
93
|
put(root, "quality/policy.json", "{}"); const conflict = planOnboarding({ root });
|
|
@@ -137,7 +137,7 @@ test("依赖升级必须明确批准,不挪动已有依赖类别", (t) => {
|
|
|
137
137
|
const options = { root, allowDependencyUpdates: true }; const plan = planOnboarding(options);
|
|
138
138
|
assert.equal(plan.status, "configuration-planned"); apply(options, plan);
|
|
139
139
|
const pkg = JSON.parse(readFileSync(path.join(root, "package.json")));
|
|
140
|
-
assert.equal(pkg.dependencies["@agile-team/wl-skills-kit"], "2.33.
|
|
140
|
+
assert.equal(pkg.dependencies["@agile-team/wl-skills-kit"], "2.33.1"); assert.equal(pkg.devDependencies["@agile-team/wl-skills-kit"], undefined);
|
|
141
141
|
});
|
|
142
142
|
|
|
143
143
|
test("已核对前端旧块自动进批准patch,保留只读Prettier/ESLint与Kit兼容marker", (t) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
// wl-produce 接入示例:基于 Gate 0.9.
|
|
2
|
+
// wl-produce 接入示例:基于 Gate 0.9.1 模板,显式使用华新 settings 并解除父 POM 跳测。
|
|
3
3
|
// Copy to scripts/quality/java-unit.mjs. All paths are relative to the Java repo root.
|
|
4
4
|
// The plan is approved configuration. Maven failures never become success.
|
|
5
5
|
import path from "node:path";
|