tech-lead-skill 5.4.3 → 5.4.5

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
@@ -57,6 +57,12 @@ dsh plugin --profile headless add /path/to/tech-lead-skill/packages/dsh-tech-lea
57
57
  dsh --profile headless --dump-config # verify the tech-lead-tools row is present
58
58
  ```
59
59
 
60
+
61
+ Output families and limits:
62
+
63
+ - The twelve strengthened tools return a `tech-lead.result.v1` envelope (discriminator: `meta.schema`); the original nine tools return their bare domain shapes for backward compatibility.
64
+ - Rendered output is clamped: finding/error arrays are capped at 500 entries with a `FINDINGS_TRUNCATED` warning; caller-echo arrays (evidence/targets/expectedDiff/verification/items) collapse into `{truncated,total}` beyond 100 entries; any OTHER array inside `data` (including computed results such as `criticalPath`) is head-sliced at 1000 entries while keeping its shape; subtrees deeper than 64 levels collapse into a `DEPTH_LIMIT` marker; payloads above 256 KB switch to compact serialization. Legacy bare top-level arrays slice silently at 500 (no warning field exists on that shape).
65
+
60
66
  See [`docs/superpowers/specs/2026-08-25-dsh-tech-lead-system.md`](https://github.com/240xu/tech-lead-skill/blob/main/docs/superpowers/specs/2026-08-25-dsh-tech-lead-system.md) for the architecture and permission matrix.
61
67
 
62
68
  ### Manual
@@ -125,6 +131,6 @@ The executable skill body (`SKILL.md`) is authored in Simplified Chinese; coding
125
131
 
126
132
  ## Version
127
133
 
128
- Current version: `v5.4.3`.
134
+ Current version: `v5.4.5`.
129
135
 
130
136
  See [`docs/TECHNICAL_GUIDE.md`](docs/TECHNICAL_GUIDE.md) for the full operating model and [`docs/AUDIT_REPORT.md`](docs/AUDIT_REPORT.md) for the publication audit.
package/README.zh-CN.md CHANGED
@@ -57,6 +57,12 @@ dsh plugin --profile headless add /path/to/tech-lead-skill/packages/dsh-tech-lea
57
57
  dsh --profile headless --dump-config # 确认 tech-lead-tools 行已注入
58
58
  ```
59
59
 
60
+
61
+ 输出家族与限制:
62
+
63
+ - 十二个强化工具返回 `tech-lead.result.v1` 信封(判别字段:`meta.schema`);原有九个工具为向后兼容保留裸领域形状。
64
+ - 渲染输出有上限:finding/error 数组每字段最多 500 条并附 `FINDINGS_TRUNCATED` 警告;超限调用方回显数组折叠为 `{truncated,total}` 摘要;超过 256KB 自动切换紧凑序列化。
65
+
60
66
  架构与权限矩阵见 [spec](https://github.com/240xu/tech-lead-skill/blob/main/docs/superpowers/specs/2026-08-25-dsh-tech-lead-system.md)。
61
67
 
62
68
  ### 手动方式
@@ -125,6 +131,6 @@ dsh --profile headless --dump-config # 确认 tech-lead-tools 行已注入
125
131
 
126
132
  ## 版本
127
133
 
128
- 当前版本:`v5.4.3`。
134
+ 当前版本:`v5.4.5`.
129
135
 
130
136
  完整运行模型见[技术指南](./docs/TECHNICAL_GUIDE.zh-CN.md),发布审计见 [docs/AUDIT_REPORT.md](docs/AUDIT_REPORT.md)。
package/bin/install.js CHANGED
@@ -87,7 +87,7 @@ function readMarker(target) {
87
87
  // A manifest entry may only address paths INSIDE target: blocks traversal via
88
88
  // tampered marker.files ("../x", absolute paths resolve under target anyway).
89
89
  function containedRel(target, rel) {
90
- if (typeof rel !== 'string' || !rel || rel.includes('\\0')) return null;
90
+ if (typeof rel !== 'string' || !rel || rel.includes('\0')) return null;
91
91
  const abs = path.resolve(target, rel);
92
92
  const base = path.resolve(target);
93
93
  const relCheck = path.relative(base, abs);
@@ -196,21 +196,26 @@ if (args.includes('--check')) {
196
196
  }
197
197
  const missing = [];
198
198
  const drifted = [];
199
+ const orphaned = [];
199
200
  for (const raw of marker.files) {
200
201
  const rel = containedRel(target, raw);
201
202
  if (!rel) { console.warn('skipped unsafe manifest entry: ' + JSON.stringify(raw)); continue; }
202
203
  const abs = path.join(target, rel);
203
204
  const src = path.join(srcSkill, rel);
204
205
  if (!fs.existsSync(abs)) { missing.push(rel); continue; }
205
- if (fs.existsSync(src) && sha256File(abs) !== sha256File(src)) drifted.push(rel);
206
+ if (!fs.existsSync(src)) { orphaned.push(rel); continue; }
207
+ if (sha256File(abs) !== sha256File(src)) drifted.push(rel);
206
208
  }
207
209
  if (missing.length) hasError = true;
208
210
  if (drifted.length) hasError = true;
211
+ if (orphaned.length) hasError = true;
209
212
 
210
213
  const managedSet = new Set(marker.files);
211
214
  const unmanaged = walkFiles(target).filter((rel) => !managedSet.has(rel) && !isBackup(rel) && rel !== markerName);
212
215
  if (missing.length) console.log('MISSING managed files:');
213
216
  for (const rel of missing) console.log(' missing: ' + rel);
217
+ if (orphaned.length) console.log('ORPHANED managed files absent from current package:');
218
+ for (const rel of orphaned) console.log(' orphan : ' + rel);
214
219
  if (drifted.length) console.log('MODIFIED since install:');
215
220
  for (const rel of drifted) console.log(' drift : ' + rel);
216
221
  if (unmanaged.length) {
@@ -35,7 +35,7 @@ The source set was scanned for local absolute paths, passwords, API-key prefixes
35
35
  ### Structural scan
36
36
 
37
37
  - YAML frontmatter has `name: tech-lead` and a trigger description.
38
- - The skill version is `v5.4.3`.
38
+ - The skill version is `v5.4.5`.
39
39
  - The eight templates referenced by the skill exist.
40
40
  - The installer validates options, requires a marker before removing any target, and records the managed package/version after installation.
41
41
  - The release-check template covers allowlist inventory, sensitive-content scanning, reference checks, scope checks, publication results, and remote verification.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tech-lead-skill",
3
- "version": "5.4.3",
3
+ "version": "5.4.5",
4
4
  "description": "Evidence-driven planning and safe change-control skill for OpenCode-compatible agents",
5
5
  "license": "MIT",
6
6
  "repository": {
package/skill/SKILL.md CHANGED
@@ -3,7 +3,7 @@ name: tech-lead
3
3
  description: 用于软件、基础设施、研究和运维中的多步、跨边界或有状态工程交付:项目规划、架构选择、跨模块实现、部署、迁移、发布、恢复、重构、长期运行与跨会话续跑。涉及不可逆/生产变更、回滚验证、真实环境对账、发布安全或项目级交付治理时优先加载,即使用户没有说“项目”或“Tech Lead”。不要仅因一次性小修复、单文件编辑、普通解释、单次测试或只读代码审查而自动加载,除非用户明确要求项目级计划或本规范。
4
4
  ---
5
5
 
6
- # Tech Lead · 自主演进规划与交付规范 v5.4.3
6
+ # Tech Lead · 自主演进规划与交付规范 v5.4.5
7
7
 
8
8
  > 双层架构声明:本文件是**判断层**(自由裁量域)。其中可机械判定的不变量(Gate 前置校验、
9
9
  > 证据锚点存在性、分级判定器、状态机转换有效性)为未来 **MCP 工具化候选**——