@jakkrichm/create-nexus-devflow 2.12.1 → 2.12.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.
- package/package.json +1 -1
- package/template/.agents/skills/onboard/SKILL.md +18 -5
- package/template/.claude/skills/onboard/SKILL.md +18 -5
- package/template/devflow/analysis/REQ-20260904-001-sync-upstream-ai-blueprint/codebase-impact.md +47 -0
- package/template/devflow/build-plan.md +9 -0
- package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/clarifications.md +28 -0
- package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/parsed.md +59 -0
- package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/raw/upstream-diff.txt +23 -0
package/package.json
CHANGED
|
@@ -96,7 +96,8 @@ Read only enough to identify the setup:
|
|
|
96
96
|
`tailwind.config.*`, database config, test config)
|
|
97
97
|
- source layout, route layout, and app/package directories
|
|
98
98
|
- existing `.gitignore`
|
|
99
|
-
-
|
|
99
|
+
- `devflow/.state/manifest.json` or `.nexus/nexus-devflow.json`, when present, and its selected adapter list
|
|
100
|
+
- which selected tools need `.agents/`, `.claude/`, or both
|
|
100
101
|
- whether Blueprint workflow paths are already tracked by git
|
|
101
102
|
- existing verification commands and `.github/workflows/`
|
|
102
103
|
- project name, from `package.json`, the folder name, existing docs, or the user
|
|
@@ -278,14 +279,26 @@ Recommend option 1 by default. If the user chooses option 2:
|
|
|
278
279
|
`git rm --cached -r .agents .claude devflow CLAUDE.md`, and
|
|
279
280
|
only run it if the user explicitly approves. Never delete the local files.
|
|
280
281
|
|
|
281
|
-
Then report which adapter folders are needed:
|
|
282
|
-
|
|
283
|
-
-
|
|
282
|
+
Then report which selected tools and adapter folders are needed:
|
|
283
|
+
|
|
284
|
+
- When a valid `devflow/.state/manifest.json` or `.nexus/nexus-devflow.json` exists, its `adapters` list is
|
|
285
|
+
the authoritative installer selection. The presence of `.agents/` means its
|
|
286
|
+
files are compatible with Codex, Antigravity, GitHub Copilot, and OpenCode;
|
|
287
|
+
it does not mean all four tools were selected.
|
|
288
|
+
- Do not ask the user to select adapters again when that valid manifest exists.
|
|
289
|
+
Keep and report the exact selection. If a required adapter tree is missing,
|
|
290
|
+
report the mismatch and point to `/doctor` instead of guessing or deleting
|
|
291
|
+
another tree.
|
|
292
|
+
- Without a valid manifest, explain that folder detection cannot distinguish
|
|
293
|
+
Codex, Antigravity, GitHub Copilot, and OpenCode, then ask which tools the user actually
|
|
294
|
+
uses instead of assuming all of them are selected.
|
|
295
|
+
- Codex and Antigravity: keep `AGENTS.md`, `.agents/`, and `devflow/`; `CLAUDE.md` and
|
|
284
296
|
`.claude/` can be deleted.
|
|
285
297
|
- Claude Code only: keep `AGENTS.md`, `CLAUDE.md`, `.claude/`, and `devflow/`;
|
|
286
298
|
`.agents/` can be deleted.
|
|
299
|
+
- GitHub Copilot only: keep `AGENTS.md`, `.agents/`, and `devflow/`.
|
|
287
300
|
- OpenCode: shares either `.agents/` or `.claude/` compatible skill tree without duplicate folders.
|
|
288
|
-
- Mixed tools: keep
|
|
301
|
+
- Mixed tools: keep only the compatible adapter trees required by the selected tools.
|
|
289
302
|
|
|
290
303
|
Do not delete adapters unless the user explicitly asks.
|
|
291
304
|
|
|
@@ -96,7 +96,8 @@ Read only enough to identify the setup:
|
|
|
96
96
|
`tailwind.config.*`, database config, test config)
|
|
97
97
|
- source layout, route layout, and app/package directories
|
|
98
98
|
- existing `.gitignore`
|
|
99
|
-
-
|
|
99
|
+
- `devflow/.state/manifest.json` or `.nexus/nexus-devflow.json`, when present, and its selected adapter list
|
|
100
|
+
- which selected tools need `.agents/`, `.claude/`, or both
|
|
100
101
|
- whether Blueprint workflow paths are already tracked by git
|
|
101
102
|
- existing verification commands and `.github/workflows/`
|
|
102
103
|
- project name, from `package.json`, the folder name, existing docs, or the user
|
|
@@ -278,14 +279,26 @@ Recommend option 1 by default. If the user chooses option 2:
|
|
|
278
279
|
`git rm --cached -r .agents .claude devflow CLAUDE.md`, and
|
|
279
280
|
only run it if the user explicitly approves. Never delete the local files.
|
|
280
281
|
|
|
281
|
-
Then report which adapter folders are needed:
|
|
282
|
-
|
|
283
|
-
-
|
|
282
|
+
Then report which selected tools and adapter folders are needed:
|
|
283
|
+
|
|
284
|
+
- When a valid `devflow/.state/manifest.json` or `.nexus/nexus-devflow.json` exists, its `adapters` list is
|
|
285
|
+
the authoritative installer selection. The presence of `.agents/` means its
|
|
286
|
+
files are compatible with Codex, Antigravity, GitHub Copilot, and OpenCode;
|
|
287
|
+
it does not mean all four tools were selected.
|
|
288
|
+
- Do not ask the user to select adapters again when that valid manifest exists.
|
|
289
|
+
Keep and report the exact selection. If a required adapter tree is missing,
|
|
290
|
+
report the mismatch and point to `/doctor` instead of guessing or deleting
|
|
291
|
+
another tree.
|
|
292
|
+
- Without a valid manifest, explain that folder detection cannot distinguish
|
|
293
|
+
Codex, Antigravity, GitHub Copilot, and OpenCode, then ask which tools the user actually
|
|
294
|
+
uses instead of assuming all of them are selected.
|
|
295
|
+
- Codex and Antigravity: keep `AGENTS.md`, `.agents/`, and `devflow/`; `CLAUDE.md` and
|
|
284
296
|
`.claude/` can be deleted.
|
|
285
297
|
- Claude Code only: keep `AGENTS.md`, `CLAUDE.md`, `.claude/`, and `devflow/`;
|
|
286
298
|
`.agents/` can be deleted.
|
|
299
|
+
- GitHub Copilot only: keep `AGENTS.md`, `.agents/`, and `devflow/`.
|
|
287
300
|
- OpenCode: shares either `.agents/` or `.claude/` compatible skill tree without duplicate folders.
|
|
288
|
-
- Mixed tools: keep
|
|
301
|
+
- Mixed tools: keep only the compatible adapter trees required by the selected tools.
|
|
289
302
|
|
|
290
303
|
Do not delete adapters unless the user explicitly asks.
|
|
291
304
|
|
package/template/devflow/analysis/REQ-20260904-001-sync-upstream-ai-blueprint/codebase-impact.md
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Codebase Impact & Blast Radius Analysis
|
|
2
|
+
|
|
3
|
+
> **Request ID**: `REQ-20260904-001-sync-upstream-ai-blueprint`
|
|
4
|
+
> **Target Run ID**: `072-sync-upstream-ai-blueprint-v153`
|
|
5
|
+
> **Analysis Date**: 2026-09-04
|
|
6
|
+
> **Status**: Completed
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 💥 Blast Radius Overview
|
|
11
|
+
|
|
12
|
+
| Category | Assessment | Details |
|
|
13
|
+
| :--- | :--- | :--- |
|
|
14
|
+
| **Overall Complexity** | `Low-Medium` 🟢 | แก้ไข Skill Markdown contracts, เพิ่ม 1 E2E Scenario, ปรับปรุง Static Validator |
|
|
15
|
+
| **API / Contract Breaking Risk** | `None` 🟢 | รักษา Backward Compatibility 100% (ทั้งแบบมีและไม่มี manifest) |
|
|
16
|
+
| **Affected Areas** | Core Skills, E2E Test Suite, Static Framework Validator | `.agents/`, `.claude/`, `scripts/` |
|
|
17
|
+
| **Regression Risk** | `Low` 🟢 | มี Static Check และ E2E Scenario ครอบคลุม |
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## 📂 Affected Files & Modules
|
|
22
|
+
|
|
23
|
+
### 1. Core Skills (`.agents/` & `.claude/`)
|
|
24
|
+
- `.agents/skills/onboard/SKILL.md` (Update Step 1 & Step 6 for manifest-aware adapter reporting)
|
|
25
|
+
- `.claude/skills/onboard/SKILL.md` (Synchronize Step 1 & Step 6 identical contract)
|
|
26
|
+
|
|
27
|
+
### 2. Validation & Verification Guardrails
|
|
28
|
+
- `agent-bundle.manifest.json` (Add contract phrases for onboard: authoritative installer selection, etc.)
|
|
29
|
+
- `scripts/validate-framework.ts` (Ensure verification covers updated onboard contracts)
|
|
30
|
+
|
|
31
|
+
### 3. Test Suites & E2E Scenarios
|
|
32
|
+
- `scripts/e2e/scenarios/adapter-selection.ts` (New E2E Scenario 10 ported from upstream)
|
|
33
|
+
- `packages/create-nexus-devflow/test/update.test.ts` (Verify adapter detection & selection tests)
|
|
34
|
+
|
|
35
|
+
### 4. Documentation & Release Tracking
|
|
36
|
+
- `devflow/build-plan.md` (Record Run 072)
|
|
37
|
+
- `CHANGELOG.md` (Document v1.5.3 sync updates)
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 🧪 Verification Strategy
|
|
42
|
+
|
|
43
|
+
1. **Static Validation**: `npm run check:static` (ต้องผ่าน 100% ไม่เกิน context budget)
|
|
44
|
+
2. **Type Checking**: `npm run typecheck`
|
|
45
|
+
3. **Unit / Package Tests**: `npm test`
|
|
46
|
+
4. **End-to-End Test Suite**: `npm run check`
|
|
47
|
+
5. **Upstream Drift Radar**: `npx tsx scripts/check-upstream-drift.ts` (ยืนยัน 100% Skills & Contract Parity)
|
|
@@ -212,3 +212,12 @@
|
|
|
212
212
|
- *Dependencies*: Feature 25, REQ-20260903-001
|
|
213
213
|
- *Scope*: เพิ่มการตรวจจับและกู้คืน Unborn Git repository ใน `/onboard` ด้วย Scaffold Initial Commit (`chore: scaffold application`), รองรับการ Finalize DevFlow Baseline บน Dedicated Setup Branch ด้วย `git merge --ff-only` ใน `/overview`, เพิ่มชุดทดสอบ E2E Scenario `scripts/e2e/scenarios/unborn-onboarding.ts`, อัปเดต `devflow/context/ai-interaction.md` และอัปเดต Framework Static Contracts ผ่าน 100%
|
|
214
214
|
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## 🔄 Phase 27: Upstream AI Blueprint v1.5.3 Synchronization
|
|
218
|
+
|
|
219
|
+
- [x] **27. Sync Upstream v1.5.3 (Manifest-Aware Adapter Selection in Onboard & E2E Scenario Parity) (`REQ-20260904-001`, `072-sync-upstream-ai-blueprint-v153`)** `[Size: S]`
|
|
220
|
+
- *Dependencies*: Feature 26, REQ-20260904-001
|
|
221
|
+
- *Scope*: ปรับปรุง `/onboard` (ทั้ง `.agents/` และ `.claude/`) ให้อ่านและยึดถือรายการ `adapters` จาก Manifest (`.nexus/nexus-devflow.json` / `devflow/.state/manifest.json`) เป็นความจริงหลัก (Authoritative Selection) โดยไม่ถามซ้ำและไม่อนุมานผิดพลาด, เพิ่มชุดทดสอบ E2E Scenario ตัวที่ 10 `scripts/e2e/scenarios/adapter-selection.ts`, อัปเดต `agent-bundle.manifest.json` และ `scripts/validate-framework.ts` ให้ครอบคลุม Verification Contracts ใหม่ 100%
|
|
222
|
+
|
|
223
|
+
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Socratic Gap Detection & Clarification Checklist
|
|
2
|
+
|
|
3
|
+
> **Request ID**: `REQ-20260904-001-sync-upstream-ai-blueprint`
|
|
4
|
+
> **Source**: Upstream AI Blueprint Synchronization Analysis
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## 🔍 Socratic Review & Technical Clarifications
|
|
9
|
+
|
|
10
|
+
### 1. ตำแหน่งไฟล์ Manifest ใน Nexus-DevFlow
|
|
11
|
+
- **ประเด็น**: ใน Upstream `ai-blueprint` ใช้ไฟล์ `blueprint/.state/manifest.json` เป็นหลัก ขณะที่ Nexus-DevFlow มีทั้ง `.nexus/nexus-devflow.json` (จากตัวติดตั้ง package) และ `devflow/.state/manifest.json`
|
|
12
|
+
- **แนวทาง**: ในคำสั่ง `/onboard` ควรอ้างอิงทั้ง `devflow/.state/manifest.json` และ `.nexus/nexus-devflow.json` โดยให้ความสำคัญกับไฟล์ที่มีอยู่จริง เพื่อความยืดหยุ่นสูงสุด
|
|
13
|
+
|
|
14
|
+
### 2. รายชื่อเครื่องมือที่รองรับใน DevFlow vs Upstream
|
|
15
|
+
- **ประเด็น**: Upstream รองรับ 4 ตัวหลัก (`codex`, `claude`, `copilot`, `opencode`) ขณะที่ Nexus-DevFlow มี First-Class Support เพิ่มเติมสำหรับ **Google Antigravity** (`antigravity` ซึ่งแชร์โครงสร้าง `.agents/`)
|
|
16
|
+
- **แนวทาง**: ข้อความใน Step 6 ของ Onboard ต้องระบุชื่อเครื่องมือให้ครอบคลุม: "Codex, Antigravity, GitHub Copilot, และ OpenCode"
|
|
17
|
+
|
|
18
|
+
### 3. สถานะ Version Tagging & Roadmap
|
|
19
|
+
- **ประเด็น**: Upstream ออก release 1.5.3 สำหรับการแก้นี้ สำหรับ Nexus-DevFlow จะจัดเป็น Run `072` มุ่งสู่ Minor/Patch release ถัดไป (v2.12.2)
|
|
20
|
+
- **แนวทาง**: กำหนดหมายเลข Run `072-sync-upstream-ai-blueprint-v153` และบันทึกลงใน Build Plan
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## ✅ Readiness Checklist for Implementation
|
|
25
|
+
- [x] ตรวจสอบ Diff ละเอียดจาก Upstream ครบถ้วน 100%
|
|
26
|
+
- [x] วิเคราะห์จุดแตกต่างระหว่างสถาปัตยกรรม DevFlow และ AI Blueprint
|
|
27
|
+
- [x] กำหนดขอบเขต E2E Scenario และ Static Contract เรียบร้อย
|
|
28
|
+
- [ ] รอเจ้านายอนุมัติเพื่อเริ่มกระบวนการ `/feature` หรือ `/implement`
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Requirement Specification: ซิงก์ส่วนขยาย Upstream AI Blueprint (v1.5.3 / Latest Commits)
|
|
2
|
+
|
|
3
|
+
> **Request ID**: `REQ-20260904-001-sync-upstream-ai-blueprint`
|
|
4
|
+
> **Source**: Upstream Repository `aiblueprinthq/ai-blueprint` (Commits `b4eb32e` .. `2b5f334`)
|
|
5
|
+
> **Ingested Date**: 2026-09-04
|
|
6
|
+
> **Target Run ID**: `072` (Feature)
|
|
7
|
+
> **Language**: Thai (`th`) Default
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 📌 Executive Summary
|
|
12
|
+
|
|
13
|
+
สกัดและวิเคราะห์การเปลี่ยนแปลงล่าสุดจากต้นน้ำ (Upstream `ai-blueprint`) หลังการซิงก์รอบ v1.5.2 (Run `071`) โดยพบการอัปเดตสำคัญระดับสถาปัตยกรรมและกระบวนการ Onboarding ใน commit `b4eb32e` (fix: honor selected adapters) พร้อมทั้งการปรับปรุงเอกสารและ Diagram ใน commit `ed9c19c`, `a231195`, `2b5f334`
|
|
14
|
+
|
|
15
|
+
หัวใจหลักของการอัปเดตครั้งนี้คือการทำให้ขั้นตอน `/onboard` มีความฉลาดในการอ่านและยึดถือรายการ Adapter จากไฟล์ Manifest (`.nexus/nexus-devflow.json` หรือ `devflow/.state/manifest.json`) เป็นความจริงหลัก (Authoritative Source of Truth) เพื่อแก้ปัญหาที่ Onboard เคยเดาเอาเองว่าการมีโฟลเดอร์ `.agents/` แปลว่าผู้ใช้เลือกเครื่องมือทุกตัว (Codex, Antigravity, GitHub Copilot, OpenCode) และถามผู้ใช้ซ้ำซ้อน
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## 👥 Target Personas & User Stories
|
|
20
|
+
|
|
21
|
+
1. **ผู้ใช้ใหม่ที่ติดตั้ง DevFlow ด้วย Interactive Installer**:
|
|
22
|
+
- *As a developer* ติดตั้ง DevFlow ด้วยคำสั่ง `npx @jakkrichm/create-nexus-devflow` และเลือกเฉพาะ Claude Code และ Antigravity/Codex
|
|
23
|
+
- *I want* เมื่อรันคำสั่ง `/onboard` ให้ระบบจำการเลือกของฉันจาก Manifest โดยตรง
|
|
24
|
+
- *So that* AI จะไม่ถามซ้ำ และไม่ทึกทักไปเองว่าเราเลือก GitHub Copilot หรือ OpenCode เพิ่มขึ้นมา
|
|
25
|
+
|
|
26
|
+
2. **ผู้ใช้เดิมที่รัน Onboard โดยไม่มี Manifest (Legacy / Manual Copy)**:
|
|
27
|
+
- *As a developer* ที่คัดลอกไฟล์มาเองหรือไม่มี Manifest
|
|
28
|
+
- *I want* AI อธิบายชัดเจนว่าโครงสร้าง `.agents/` ใช้ร่วมกันได้หลายเครื่องมือ แล้วถามยืนยันว่าใช้เครื่องมือใดบ้าง
|
|
29
|
+
- *So that* รายงาน Onboarding ถูกต้องตรงกับสิ่งที่ใช้งานจริง
|
|
30
|
+
|
|
31
|
+
3. **Core Framework Maintainer**:
|
|
32
|
+
- *As a maintainer* ของ Nexus-DevFlow
|
|
33
|
+
- *I want* ระบบ E2E Test มี Scenario ตัวที่ 10 (`adapter-selection.ts`) และ Static Contract Validator ป้องกัน Regression
|
|
34
|
+
- *So that* ฟีเจอร์ Onboard Manifest Preservation ทำงานถูกต้อง 100% ตามมาตรฐาน Upstream
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## ⚙️ Functional Requirements (FR)
|
|
39
|
+
|
|
40
|
+
- **FR-1: Manifest-Aware Adapter Inspection ใน `/onboard` (Step 1)**
|
|
41
|
+
- เพิ่มการอ่านไฟล์ `devflow/.state/manifest.json` หรือ `.nexus/nexus-devflow.json` ในขั้นตอน Preflight/Inspection เพื่อดึง `adapters` list
|
|
42
|
+
- **FR-2: Authoritative Selection & No Repeated Prompts ใน `/onboard` (Step 6)**
|
|
43
|
+
- เมื่อพบ Manifest ที่ถูกต้อง ให้ยึด `adapters` ใน Manifest เป็นหลัก ห้ามถามผู้ใช้ซ้ำ
|
|
44
|
+
- อธิบายว่าการมีอยู่ของ `.agents/` ไม่ได้หมายความว่าเลือกเครื่องมือทุกตัว
|
|
45
|
+
- หากไม่มี Manifest ให้ถามอย่างชัดเจนโดยไม่เดา
|
|
46
|
+
- **FR-3: Dual-Adapter Contract Synchronicity**
|
|
47
|
+
- ปรับปรุงเนื้อหาใน `.agents/skills/onboard/SKILL.md` และ `.claude/skills/onboard/SKILL.md` ให้ตรงกัน 100%
|
|
48
|
+
- **FR-4: Automated E2E Scenario Integration**
|
|
49
|
+
- เพิ่มชุดทดสอบ E2E Scenario `scripts/e2e/scenarios/adapter-selection.ts` ตรวจสอบพฤติกรรม Onboard กับ Manifest
|
|
50
|
+
- **FR-5: Static Verification Guardrails**
|
|
51
|
+
- อัปเดต `agent-bundle.manifest.json` และ `scripts/validate-framework.ts` ให้ตรวจจับ Contract ใหม่ของ Onboard
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 🛡️ Non-Functional Requirements (NFR)
|
|
56
|
+
|
|
57
|
+
- **Context Budget**: Skill Description และ Instruction ต้องไม่เกินขีดจำกัด Context Budget (< 400 ตัวอักษรต่อคำอธิบาย, ไม่ทำให้ไฟล์เกิน 20KB)
|
|
58
|
+
- **Zero Breaking Change**: รักษาความเข้ากันได้กับโปรเจกต์เดิมที่มีหรือไม่มี Manifest
|
|
59
|
+
- **Cross-Tool Parity**: รองรับ Codex, Antigravity, Claude Code, GitHub Copilot และ OpenCode
|
package/template/devflow/inbox/REQ-20260904-001-sync-upstream-ai-blueprint/raw/upstream-diff.txt
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Upstream AI Blueprint Synchronization Request (v1.5.2 -> v1.5.3 / HEAD)
|
|
2
|
+
|
|
3
|
+
## Raw Upstream Commits
|
|
4
|
+
- 2b5f334 docs: refresh workflow diagram asset
|
|
5
|
+
- a231195 docs: simplify workflow diagram
|
|
6
|
+
- ed9c19c docs: position AI Blueprint as a workflow framework
|
|
7
|
+
- b4eb32e fix: honor selected adapters
|
|
8
|
+
- 5b46859 fix: handle repositories without an initial commit (synced in 071)
|
|
9
|
+
|
|
10
|
+
## Core Upstream Changes Diff Stat
|
|
11
|
+
.agents/skills/onboard/SKILL.md | 23 ++++----
|
|
12
|
+
.claude/skills/onboard/SKILL.md | 23 ++++----
|
|
13
|
+
CHANGELOG.md | 12 +++++
|
|
14
|
+
README.md | 20 +++----
|
|
15
|
+
assets/ai-blueprint-workflow-v2.png | Bin 0 -> 107098 bytes
|
|
16
|
+
assets/ai-blueprint-workflow.png | Bin 216758 -> 0 bytes
|
|
17
|
+
packages/create-ai-blueprint/README.md | 5 +-
|
|
18
|
+
packages/create-ai-blueprint/bin/create-ai-blueprint.ts | 4 +-
|
|
19
|
+
packages/create-ai-blueprint/package.json | 2 +-
|
|
20
|
+
packages/create-ai-blueprint/test/update.test.ts | 6 +--
|
|
21
|
+
scripts/e2e/scenarios/adapter-selection.ts | 59 +++++++++++++++++++++
|
|
22
|
+
scripts/validate-blueprint.ts | 9 +++-
|
|
23
|
+
12 files changed, 126 insertions(+), 37 deletions(-)
|