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 +7 -1
- package/README.zh-CN.md +7 -1
- package/bin/install.js +7 -2
- package/docs/AUDIT_REPORT.md +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +1 -1
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.
|
|
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.
|
|
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('
|
|
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)
|
|
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) {
|
package/docs/AUDIT_REPORT.md
CHANGED
|
@@ -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.
|
|
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
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.
|
|
6
|
+
# Tech Lead · 自主演进规划与交付规范 v5.4.5
|
|
7
7
|
|
|
8
8
|
> 双层架构声明:本文件是**判断层**(自由裁量域)。其中可机械判定的不变量(Gate 前置校验、
|
|
9
9
|
> 证据锚点存在性、分级判定器、状态机转换有效性)为未来 **MCP 工具化候选**——
|