hyb-oa-delivery-trellis-only 移除项目交付 Skill 并统一 Trellis-only 治理

这个提交包含在:
2026-05-26 11:20:56 +08:00
父节点 1b5c7527b7
当前提交 fd4059d511
共修改 19 个文件,包含 207 行新增和 288 行删除
+2 -1
查看文件
@@ -39,7 +39,8 @@ const requiredCorePaths = [
'docs/产品设计规则.md',
'docs/产品口径.md',
'AGENTS.md',
'.agents/skills/hyb-oa-delivery/SKILL.md',
'.trellis/workflow.md',
'.trellis/spec/hyb-oa/index.md',
];
function printHelp() {
+2 -1
查看文件
@@ -440,7 +440,8 @@ export function evaluateBaseline({ root = repoRoot } = {}) {
"docs/企微API能力目录.md",
"docs/文档索引.md",
"docs/文档事实源状态矩阵.md",
".agents/skills/hyb-oa-delivery/SKILL.md",
".trellis/workflow.md",
".trellis/spec/hyb-oa/project-governance.md",
WAPC2F_ISSUE,
];
+29 -1
查看文件
@@ -19,10 +19,12 @@ const requiredSpecs = [
];
const requiredDocMentions = [
"AGENTS.md",
"docs/Agent开发交付实践.md",
"docs/文档索引.md",
"docs/文档事实源状态矩阵.md",
".agents/skills/hyb-oa-delivery/SKILL.md",
".trellis/workflow.md",
".trellis/spec/hyb-oa/index.md",
];
const validTaskStatuses = new Set(["planning", "in_progress", "review", "completed"]);
@@ -242,6 +244,31 @@ function checkDocsRegistration(result) {
if (result.status === "PASS") pass(result, "docs_registration", `${requiredDocMentions.length} fact sources mention Trellis`);
}
function checkRemovedProjectSkillReferences(result) {
const removedSkill = ["hyb", "oa", "delivery"].join("-");
const removedSkillPath = [".agents", "skills", removedSkill, "SKILL.md"].join("/");
const removedSkillDir = [".agents", "skills", removedSkill].join("/");
const legacyPriorityText = ["项目", "Skill 优先"].join(" ");
const files = [
"AGENTS.md",
"docs/Agent开发交付实践.md",
"docs/文档索引.md",
"docs/文档事实源状态矩阵.md",
"scripts/qa/audit-docs.mjs",
"scripts/qa/check-process-contract.mjs",
];
for (const file of files) {
if (!exists(file)) continue;
const text = readText(file);
const staleTerms = [removedSkill, removedSkillPath, removedSkillDir, legacyPriorityText].filter((term) => text.includes(term));
if (staleTerms.length > 0) {
fail(result, "removed_project_skill.reference", `${file} still references removed project delivery skill`);
}
}
if (result.status === "PASS") pass(result, "removed_project_skill", "current governance files are Trellis-only");
}
function checkSensitiveData(result) {
const scanFiles = [
"AGENTS.md",
@@ -270,6 +297,7 @@ try {
checkCoreFiles(result);
checkTaskContracts(result);
checkDocsRegistration(result);
checkRemovedProjectSkillReferences(result);
checkSensitiveData(result);
} catch (error) {
fail(result, "exception", error instanceof Error ? error.message : String(error));