team-skills 1.3.4 → 1.3.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/CHANGELOG.md +7 -0
- package/package.json +1 -1
- package/skills/team-brainstorm/SKILL.md +1 -0
- package/skills/team-orchestrator/SKILL.md +1 -0
- package/skills/team-review/SKILL.md +1 -1
- package/skills/team-score/SKILL.md +1 -0
- package/skills/team-security/SKILL.md +1 -0
- package/src/commands/update.js +4 -2
- package/src/lib/installers.js +13 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,13 @@
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.3.5] - 2026-06-26
|
|
11
|
+
|
|
12
|
+
### 变更
|
|
13
|
+
|
|
14
|
+
- `team-refine` 每轮新增 Step 4:team-score 满分校验(硬门槛覆盖 + 评分维度覆盖 + 缺口修复),收敛条件同步强化
|
|
15
|
+
- 6 个 SKILL.md 质量修复:移除 bare `>` 空行(brainstorm)、`*none*` → `*default*` 兜底修正(review/security)、GATE 自检补充对抗性自问(brainstorm/orchestrator/score)
|
|
16
|
+
|
|
10
17
|
## [1.3.4] - 2026-06-26
|
|
11
18
|
|
|
12
19
|
### 变更
|
package/package.json
CHANGED
|
@@ -887,6 +887,7 @@ TDD 强制要求:每个功能点必须先 git commit 失败测试(test: {功
|
|
|
887
887
|
- [ ] D5.2 **ASSERT** `14-team.md §二 一致性检查全部通过或已修复`
|
|
888
888
|
- [ ] D5.3 **ASSERT** `14-team.md §四 真实问题占比 > 0`
|
|
889
889
|
- [ ] D5.4 **ASSERT** `14-team.md §三 每位贡献者有明确产出物和提交数`
|
|
890
|
+
- [ ] 我是否因为检查项太多而对某些项草草通过了?
|
|
890
891
|
|
|
891
892
|
**IF** `unchecked_items > 0` → 回退对应 Step 补全(D1/D3 缺失 → **GOTO** Step 5;D2 缺失 → **GOTO** Step 2;D4 缺失 → **GOTO** Step 3;D5 缺失 → **GOTO** Step 6)。
|
|
892
893
|
|
|
@@ -394,6 +394,7 @@ NO AI OPERATIONS WITHOUT RED LINE CHECK FIRST
|
|
|
394
394
|
- `权限变更` → **ASSERT** `安全负责人确认记录 EXISTS`
|
|
395
395
|
- `对外发布` → **ASSERT** `业务负责人审核确认记录 EXISTS`
|
|
396
396
|
- `资金操作` → **ASSERT** `财务授权人员双人确认记录 EXISTS`
|
|
397
|
+
- *default* → 记录操作类型,无特定确认要求
|
|
397
398
|
|
|
398
399
|
**IF** 确认记录存在 → **ASSERT** `确认为实质性审核` — 非形式审查
|
|
399
400
|
**ELSE** → 标记 `HITL_MISSING:{operation_type}`
|
package/src/commands/update.js
CHANGED
|
@@ -6,7 +6,7 @@ import { discoverSkills, discoverSharedRules } from '../lib/inventory.js';
|
|
|
6
6
|
import { detectIDE } from '../lib/detect-ide.js';
|
|
7
7
|
import {
|
|
8
8
|
installSkillsGlobal, verifyGlobalSymlinks,
|
|
9
|
-
installSkillsProject, cleanStaleSkills,
|
|
9
|
+
installSkillsProject, cleanStaleSkills, isGlobalTarget,
|
|
10
10
|
} from '../lib/installers.js';
|
|
11
11
|
import * as log from '../lib/logger.js';
|
|
12
12
|
|
|
@@ -88,7 +88,9 @@ function runUpdate(dir, opts) {
|
|
|
88
88
|
|
|
89
89
|
for (const ideName of ides) {
|
|
90
90
|
const skillsDst = join(dir, PROJECT_IDE_DIRS[ideName], 'skills');
|
|
91
|
-
|
|
91
|
+
if (!isGlobalTarget(skillsDst)) {
|
|
92
|
+
cleanStaleSkills(skillsDst, projectSkillNames, { dryRun, exclude });
|
|
93
|
+
}
|
|
92
94
|
}
|
|
93
95
|
|
|
94
96
|
count += installSkillsProject(dir, ides, projectSkills, rules, { dryRun, verb: '更新' });
|
package/src/lib/installers.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import { join } from 'node:path';
|
|
2
2
|
import { existsSync, readdirSync, rmSync, copyFileSync } from 'node:fs';
|
|
3
3
|
import { createSymlinkSafe, ensureDir, isSymlink, copyRecursive } from './fs-utils.js';
|
|
4
|
-
import { PROJECT_IDE_DIRS } from './constants.js';
|
|
4
|
+
import { GLOBAL_TARGETS, PROJECT_IDE_DIRS } from './constants.js';
|
|
5
5
|
import * as log from './logger.js';
|
|
6
6
|
|
|
7
|
+
const globalDirSet = new Set(GLOBAL_TARGETS.map(t => t.dir));
|
|
8
|
+
|
|
9
|
+
export function isGlobalTarget(dir) {
|
|
10
|
+
return globalDirSet.has(dir);
|
|
11
|
+
}
|
|
12
|
+
|
|
7
13
|
export function logInstallResult(label, result) {
|
|
8
14
|
switch (result) {
|
|
9
15
|
case 'created':
|
|
@@ -80,6 +86,12 @@ export function installSkillsProject(projectDir, ides, skills, rules, { dryRun,
|
|
|
80
86
|
if (!ideSubdir) continue;
|
|
81
87
|
|
|
82
88
|
const skillsDst = join(projectDir, ideSubdir, 'skills');
|
|
89
|
+
|
|
90
|
+
if (globalDirSet.has(skillsDst)) {
|
|
91
|
+
log.skip(`${skillsDst} 与全局路径重叠,保留 symlinks,跳过复制`);
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
|
|
83
95
|
log.heading(`${verb} → ${skillsDst}`);
|
|
84
96
|
|
|
85
97
|
if (!dryRun) ensureDir(skillsDst);
|