create-yss-spec 3.3.3 → 3.3.4

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/README.md CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  用于初始化、接管已有项目并持续同步 `yss-spec-project-template` 研发管理资产的 npm CLI。
4
4
 
5
- 源码候选版本:`3.3.3`。当前固定模板为 `yss-spec-project-template@70ed7b6b1824067a932371dbeb45c9541d08e375`;CLI 运行时不会拉取模板仓库。`npm create yss-spec@latest` 获取的是实际已发布 npm 包,发布版本请以 `npm view create-yss-spec version` 为准。
5
+ 源码候选版本:`3.3.4`。当前固定模板为 `yss-spec-project-template@46b29114de53cf4d8d92123006b211d7b3a5a142`;CLI 运行时不会拉取模板仓库。`npm create yss-spec@latest` 获取的是实际已发布 npm 包,发布版本请以 `npm view create-yss-spec version` 为准。
6
6
 
7
7
  ## 本版模板能力
8
8
 
9
- 本版退役 Claude、Qoder、Trae 运行时投影,保留 `.agents`、Codex、Cursor 与 Pi 的共享 Skill 分发;同时纳入新的模板 CI、兼容矩阵和发布前验证合同。CLI 继续保留项目实例边界、事务回滚与安全清理语义。版本升级只完成 GitHub 源码交付,npm 发布状态仍以 registry 为准。
9
+ 本版修复生成型 Skill 锁在 `init`、`attach`、`sync` 最终校验前未自动重建的问题。CLI 会在同一事务内刷新 `skills-lock.json`,再运行项目实例校验;刷新或校验失败仍恢复同步前状态。版本升级只完成 GitHub 源码交付,npm 发布状态仍以 registry 为准。
10
10
 
11
11
  ## 快速开始
12
12
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-yss-spec",
3
- "version": "3.3.3",
3
+ "version": "3.3.4",
4
4
  "description": "Initialize a YSS spec project template repository",
5
5
  "main": "src/api/index.js",
6
6
  "repository": {
@@ -14,7 +14,10 @@ const { buildLegacyMigrationPlan } = require("../template/migration-runtime");
14
14
  const { classifyRemovedFiles } = require("../template/prune-planner");
15
15
  const { decorateMetadataOwnership } = require("../template/ownership-metadata");
16
16
  const { decorateMetadataLifecycle } = require("../template/lifecycle-metadata");
17
- const { verifyGeneratedProjectInstance } = require("../template/verification-runtime");
17
+ const {
18
+ refreshGeneratedProjectInstance,
19
+ verifyGeneratedProjectInstance,
20
+ } = require("../template/verification-runtime");
18
21
  const {
19
22
  PACKAGE_ROOT,
20
23
  PACKAGE_MANIFEST,
@@ -172,6 +175,7 @@ function applySyncContext(context, { force = false, prune = false } = {}) {
172
175
  ...affectedPathsForManagedOperations(managedToApply),
173
176
  ...affectedPathsForMigration(migrationPlan),
174
177
  ...syncPlan.pruned,
178
+ "skills-lock.json",
175
179
  TEMPLATE_METADATA_FILENAME,
176
180
  ],
177
181
  execute: (transaction) => {
@@ -183,6 +187,7 @@ function applySyncContext(context, { force = false, prune = false } = {}) {
183
187
  transaction.remove(targetPath(targetDir, relativePath));
184
188
  }
185
189
  verifyGeneratedSyncInstance(targetDir);
190
+ refreshGeneratedProjectInstance(targetDir);
186
191
  verifyGeneratedProjectInstance(targetDir);
187
192
  const nextMetadata = decorateMetadataLifecycle(
188
193
  decorateMetadataOwnership(buildNextSyncMetadata(metadata, syncPlan)),
@@ -23,7 +23,10 @@ const {
23
23
  buildMetadata,
24
24
  writeTemplateMetadata,
25
25
  } = require("../template/instance-runtime");
26
- const { verifyGeneratedAttach } = require("../template/verification-runtime");
26
+ const {
27
+ refreshGeneratedProjectInstance,
28
+ verifyGeneratedAttach,
29
+ } = require("../template/verification-runtime");
27
30
 
28
31
  function assertRequiredOptions(options) {
29
32
  if (!options.projectName) {
@@ -243,6 +246,7 @@ function runAttach(argv = []) {
243
246
  affectedPaths: [
244
247
  ...affectedPathsForManagedOperations(managedToApply),
245
248
  ...affectedPathsForMigration(migrationPlan),
249
+ "skills-lock.json",
246
250
  TEMPLATE_METADATA_FILENAME,
247
251
  ],
248
252
  execute: (transaction) => {
@@ -250,6 +254,7 @@ function runAttach(argv = []) {
250
254
  applyManagedOperation(operation, transaction);
251
255
  }
252
256
  applyMigrationOperations(migrationPlan, transaction);
257
+ refreshGeneratedProjectInstance(targetDir);
253
258
  verifyGeneratedAttach(targetDir);
254
259
  writeTemplateMetadata(
255
260
  targetDir,
@@ -27,6 +27,7 @@ const {
27
27
  } = require("../template/ownership-runtime");
28
28
  const {
29
29
  initializeGitRepository,
30
+ refreshGeneratedProjectInstance,
30
31
  verifyGeneratedInit,
31
32
  } = require("../template/verification-runtime");
32
33
 
@@ -162,12 +163,14 @@ async function runInit(argv = []) {
162
163
  operation: "init",
163
164
  affectedPaths: [
164
165
  ...desiredOperations.map((operation) => operation.relativePath),
166
+ "skills-lock.json",
165
167
  TEMPLATE_METADATA_FILENAME,
166
168
  ],
167
169
  execute: (transaction) => {
168
170
  for (const operation of desiredOperations) {
169
171
  applyManagedOperation(operation, transaction);
170
172
  }
173
+ refreshGeneratedProjectInstance(targetDir);
171
174
  verifyGeneratedInit(targetDir);
172
175
  writeTemplateMetadata(
173
176
  targetDir,
@@ -134,6 +134,10 @@ function verifyGeneratedAttach(targetDir) {
134
134
  runTemplateVerification(targetDir, "scripts/verify-project-instance", []);
135
135
  }
136
136
 
137
+ function refreshGeneratedProjectInstance(targetDir) {
138
+ runTemplateVerification(targetDir, "scripts/update-skill-lock", []);
139
+ }
140
+
137
141
  module.exports = {
138
142
  verificationEnvironment,
139
143
  initializeGitRepository,
@@ -142,5 +146,6 @@ module.exports = {
142
146
  verifyGeneratedInstance,
143
147
  verifyGeneratedInit,
144
148
  verifyGeneratedAttach,
149
+ refreshGeneratedProjectInstance,
145
150
  verifyGeneratedProjectInstance: verifyGeneratedAttach,
146
151
  };
@@ -3,8 +3,8 @@
3
3
  "templateName": "yss-spec-project-template",
4
4
  "templateSource": "github:iloveZzz/yss-spec-project-template",
5
5
  "templateRepository": "https://github.com/iloveZzz/yss-spec-project-template.git",
6
- "requestedRef": "46b29114de53cf4d8d92123006b211d7b3a5a142",
7
- "templateCommit": "46b29114de53cf4d8d92123006b211d7b3a5a142",
6
+ "requestedRef": "3e15bf3920520c1402e58ef78f303dc0353a1c99",
7
+ "templateCommit": "3e15bf3920520c1402e58ef78f303dc0353a1c99",
8
8
  "manifestHash": "d194bb318a47c9c53b04292e97805c563ef7b296c2ca9b507cca498be7f52afe",
9
9
  "encodedPaths": {
10
10
  ".codex/skills/data-analytics/.gitignore": ".codex/skills/data-analytics/__yss_dotfile__.gitignore",
@@ -13,5 +13,5 @@
13
13
  ".gitignore": "__yss_dotfile__.gitignore"
14
14
  },
15
15
  "snapshotHash": "6fe2b0f7444fdf19d3d23eca1c334195c551de01349d79ff0a1e468a3bb973f0",
16
- "generatedAt": "2026-09-10T10:12:58.943Z"
16
+ "generatedAt": "2026-09-10T11:14:18.595Z"
17
17
  }