kt-template-online-api/docs/superpowers/plans/2026-06-24-napcatqq-upstream-sync-runtime-release-pipeline-implementation-plan.zh-CN.md

23 KiB
Raw Blame History

NapCatQQ 上游同步与运行时发布流水线实施计划

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 把 NapCatQQ 上游 release 审计、Codex CLI 辅助审查、KT 派生运行时镜像构建、API 显式参数推广全部收敛到可验证的 ktWorkflow 自动化链路。

Architecture: mcp/ktWorkflow 作为自动化控制面负责确定性采集器、提示词、schema 校验、Codex CLI runner、artifact 归档、MCP tools 和 Jenkins/systemd 命令入口。API 仓库只负责运行时镜像构建契约和部署参数消费Jenkins/NAS 定时器只调用 ktWorkflow不复制审计算法。

Tech Stack: TypeScript ESM、MCP SDK、zod、Node child_process、Codex CLI exec、Jenkins Pipeline、Docker、K8s、NestJS API runtime config、Jest。


文件结构

D:\MyFiles\KT\mcp\ktWorkflow

  • 新增 prompts/napcat/upstream-audit.md:上游 release 风险分类提示词。
  • 新增 prompts/napcat/sync-candidate-review.md:候选分支审查提示词。
  • 新增 prompts/napcat/runtime-release-readiness.md:运行时镜像发布就绪审查提示词。
  • 新增 prompts/napcat/remote-dev-handoff.mdNAS 远程开发交接提示词。
  • 新增 prompts/napcat/schemas/upstream-audit.schema.jsoncodex exec --output-schema 使用的 JSON Schema。
  • 新增 prompts/napcat/schemas/runtime-release-readiness.schema.json:运行时发布就绪报告 schema。
  • 新增 src/tools/napcatAutomation.types.tszod schema、输入输出类型、分类和 reason code 常量。
  • 新增 src/tools/napcatAutomation.prompts.ts:提示词路径解析和读取。
  • 新增 src/tools/napcatAutomation.ts确定性采集器、Codex runner、artifact writer、MCP/CLI builder。
  • 修改 src/types.tssrc/core/cli.tssrc/registerTools.tssrc/server.tssrc/core/constants.tssrc/selfTest.tspackage.jsonREADME.md

D:\MyFiles\KT\Node\kt-template-online-api

  • 修改 scripts/napcat-desktop-cn-stage-build.mjs:写入 upstream release、base image digest、Jenkins URL 等 marker。
  • 修改 test/modules/qqbot/napcat/napcat-desktop-cn-image.spec.ts:覆盖 marker 与默认镜像契约。
  • 新增 test/modules/qqbot/napcat/napcat-runtime-promotion.spec.ts:覆盖 Jenkins/K8s runtime override。
  • 修改 Jenkinsfile:增加 QQBOT_NAPCAT_IMAGE_OVERRIDEQQBOT_NAPCAT_DESKTOP_PROFILE_VERSION_OVERRIDE
  • 修改 k8s/prod/api.yaml:保留安全默认值,由 Jenkins 在发布时显式覆盖。
  • 修改 README.mdAPI.md:记录发布和回滚契约。

D:\MyFiles\KT\GitHub\NapCatQQ

  • 新增 ci/kt-runtime-release.mdKT 运行时发布清单。
  • 本计划不改 NapCat 登录源码;如果上游同步撞到登录 hot zone另起 NapCatQQ 专项计划。

D:\MyFiles\KT

  • 修改 TASKS.md:记录实施结果和验证证据。

Task 1ktWorkflow NapCat 自动化契约

Files:

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\src\tools\napcatAutomation.types.ts

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\prompts\napcat\schemas\upstream-audit.schema.json

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\prompts\napcat\schemas\runtime-release-readiness.schema.json

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\selfTest.ts

  • Step 1先写 RED self-test

覆盖三件事:manual-review 分类能被解析、HOT_ZONE_CHANGED reason code 存在、upstreamAuditOutputSchema 能校验最小输出。

import {
  napcatAutomationReasonCodes,
  parseNapcatAutomationClassification,
  upstreamAuditOutputSchema,
} from './tools/napcatAutomation.types.js';

const napcatAuditSchemaSmoke = upstreamAuditOutputSchema.safeParse({
  classification: 'manual-review',
  reasonCodes: ['HOT_ZONE_CHANGED'],
  recommendedAction: 'request-human-review',
  summary: 'Login hot-zone changed.',
});
if (!napcatAuditSchemaSmoke.success) {
  throw new Error('NapCat upstream audit schema self-check failed');
}
if (!napcatAutomationReasonCodes.includes('HOT_ZONE_CHANGED')) {
  throw new Error('NapCat reason-code list self-check failed');
}
if (parseNapcatAutomationClassification('manual-review') !== 'manual-review') {
  throw new Error('NapCat classification parser self-check failed');
}
  • Step 2确认 RED
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test

预期:因为 napcatAutomation.types.js 不存在而失败。

  • Step 3实现类型与 zod schema

实现 safe-candidatemanual-reviewblocked 三类分类,以及 NO_UPSTREAM_CHANGEHOT_ZONE_CHANGEDFORK_PATCH_OVERLAPDRY_MERGE_CONFLICTBUILD_GRAPH_CHANGEDMETADATA_UNAVAILABLECODEX_SCHEMA_INVALID 七个 reason code。新增函数必须写 JSDoc参数说明要解释来源和约束。

  • Step 4写 Codex CLI JSON Schema

upstream-audit.schema.json 必须要求 classificationreasonCodesrecommendedActionsummary,并禁止额外字段;runtime-release-readiness.schema.json 必须要求 sourceValidationimageValidationapiPromotionReadinessonlineSmokeReadinessrollbackPointer

  • Step 5确认 GREEN
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
  • Step 6提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add prompts/napcat src/tools/napcatAutomation.types.ts src/selfTest.ts
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "feat: 定义NapCat自动化审计契约"

Task 2ktWorkflow 提示词包与安全读取器

Files:

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\prompts\napcat\upstream-audit.md

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\prompts\napcat\sync-candidate-review.md

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\prompts\napcat\runtime-release-readiness.md

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\prompts\napcat\remote-dev-handoff.md

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\src\tools\napcatAutomation.prompts.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\selfTest.ts

  • Step 1先写 RED self-test

self-test 遍历所有提示词,要求每个 prompt 都包含安全边界:

Do not edit files.
Do not run merge, commit, push, deploy, or Docker mutation commands.
Use only the supplied context packet.
Return JSON that matches the requested schema.
  • Step 2确认 RED
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
  • Step 3实现 prompt loader

loadNapcatAutomationPrompt(name) 只允许读取 prompts/napcat/${name}.md 中的固定 prompt 名称,不能接受任意路径。函数必须有 JSDoc说明 name 来自稳定枚举,不是用户文件路径。

  • Step 4写四份提示词

四份 prompt 分别服务:

  • upstream-audit.md:只基于 context packet 做 release 风险分类。

  • sync-candidate-review.md:审查示例候选分支 kt/sync/v4.8.0重点看登录态、二维码、WebUI auth、captcha/new-device。

  • runtime-release-readiness.md拆开源码验证、镜像验证、API 推广、线上 smoke、回滚点。

  • remote-dev-handoff.md:输出 NAS 远程开发交接,不让 Codex 自动改代码。

  • Step 5确认 GREEN

pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
  • Step 6提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add prompts/napcat src/tools/napcatAutomation.prompts.ts src/selfTest.ts
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "feat: 增加NapCat自动化提示词包"

Task 3确定性上游审计采集器

Files:

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\src\tools\napcatAutomation.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\tools\napcatAutomation.types.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\selfTest.ts

  • Step 1先写 hot-zone RED self-test

构造上游和 KT patch 同时命中 packages/napcat-core/login/runtime.ts 的输入,要求分类为 manual-reviewreasonCodes 包含 HOT_ZONE_CHANGED

  • Step 2确认 RED
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
  • Step 3实现 hot-zone 分类器

分类规则:

  • dry merge 冲突 -> blocked + DRY_MERGE_CONFLICT

  • 上游命中登录/二维码/WebUI/auth/OneBot/build hot zone -> manual-review

  • 上游文件与 KT fork patch 文件重叠 -> manual-review

  • 无 hot-zone、无重叠、无冲突 -> safe-candidate

  • Step 4生成只读审计命令

buildNapcatUpstreamAudit(execute=false) 只能生成只读命令:git fetchgit diff --name-onlygit merge-treegit range-diff。不能包含 git mergegit pushdocker buildkubectl

  • Step 5确认 GREEN
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
  • Step 6提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add src/tools/napcatAutomation.ts src/tools/napcatAutomation.types.ts src/selfTest.ts
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "feat: 增加NapCat上游审计采集器"

Task 4Codex CLI Runner 与 Artifact 捕获

Files:

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\tools\napcatAutomation.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\selfTest.ts

  • Step 1先写 Codex 命令安全 RED self-test

测试 buildNapcatCodexExecCommand() 必须包含 --ask-for-approval never--json--ephemeral--output-schema,且不能包含 git pushkubectldocker build

  • Step 2确认 RED
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
  • Step 3实现 Codex 命令封装

命令固定走 NAS 形态:

CODEX_HOME=/vol1/docker/kt-codex/home/.codex \
codex exec \
  --cd /vol1/docker/kt-codex/workspace/KT \
  --profile automation \
  --sandbox workspace-write \
  --ask-for-approval never \
  --json \
  --ephemeral \
  --output-schema /vol1/docker/kt-codex/workspace/KT/mcp/ktWorkflow/prompts/napcat/schemas/upstream-audit.schema.json \
  --output-last-message "$ARTIFACT_DIR/codex-upstream-audit.md" \
  - < "$CONTEXT_PACKET"
  • Step 4实现 execute 模式

execute=true && useCodex=true 时写入 context packet运行 Codex捕获 JSONL校验 zod schema。schema 失败时返回 blocked + CODEX_SCHEMA_INVALID,并保留原始输出 artifact。

  • Step 5确认 GREEN
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
  • Step 6提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add src/tools/napcatAutomation.ts src/selfTest.ts
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "feat: 封装NapCat Codex审计执行器"

Task 5MCP Tools 与 CLI Scripts

Files:

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\types.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\core\cli.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\registerTools.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\server.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\core\constants.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\package.json

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\README.md

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\selfTest.ts

  • Step 1先写注册和 CLI parser RED self-test

要求 registeredToolNames 包含 kt_napcat_upstream_auditparseNapcatUpstreamAuditCliArgs() 能解析 --execute--use-codex--artifact-root

  • Step 2确认 RED
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
  • Step 3注册五个 MCP tools

  • kt_napcat_upstream_audit

  • kt_napcat_sync_candidate_review

  • kt_napcat_runtime_release_readiness

  • kt_napcat_remote_dev_handoff

  • kt_nas_codex_bootstrap_plan

所有 input schema 都要有默认值,且 execute 默认 false

  • Step 4增加 package scripts
{
  "napcat-upstream-audit": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts --napcat-upstream-audit",
  "napcat-sync-candidate-review": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts --napcat-sync-candidate-review",
  "napcat-runtime-release-readiness": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts --napcat-runtime-release-readiness",
  "nas-codex-bootstrap": "node --import ./node_modules/tsx/dist/loader.mjs src/server.ts --nas-codex-bootstrap"
}
  • Step 5确认 GREEN
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run napcat-upstream-audit -- --artifact-root .kt-workspace/test-artifacts/napcat-upstream-sync
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
  • Step 6提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add package.json README.md src
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "feat: 接入NapCat自动化MCP工具和CLI"

Task 6NAS Codex Bootstrap 工具

Files:

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\tools\napcatAutomation.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\src\selfTest.ts

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\README.md

  • Step 1先写 Linux 路径 RED self-test

测试 dry-run 输出必须包含 /vol1/docker/kt-codex/home/.codex,且不能包含 C:\Users

  • Step 2确认 RED
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
  • Step 3实现 dry-run

dry-run 只输出检查命令:

node --version
corepack --version
pnpm --version
git --version
docker --version
codex --version
test -d /vol1/docker/kt-codex/workspace/KT
test -d /vol1/docker/kt-codex/home/.codex
  • Step 4实现 execute 模式

execute=true 可以创建目录和安装运行环境,但不能 push、merge、deploy也不能改业务仓库。敏感 Codex auth 只允许可信直连同步,不进入 Git、Jenkins artifact、Docker context 或日志。

  • Step 5确认 GREEN
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run nas-codex-bootstrap -- --dry-run
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
  • Step 6提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add README.md src
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "feat: 增加NAS Codex环境引导工具"

Task 7API 运行时 Artifact 元数据

Files:

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\scripts\napcat-desktop-cn-stage-build.mjs

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\test\modules\qqbot\napcat\napcat-desktop-cn-image.spec.ts

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\README.md

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\API.md

  • Step 1先写 marker RED test

napcat-desktop-cn-image.spec.ts 要断言 stage-build 脚本包含:

expect(script).toContain('upstreamReleaseTag');
expect(script).toContain('upstreamReleaseCommit');
expect(script).toContain('napcatBaseImageDigest');
expect(script).toContain('jenkinsBuildUrl');
  • Step 2确认 RED
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api exec jest test/modules/qqbot/napcat/napcat-desktop-cn-image.spec.ts --runTestsByPath --runInBand
  • Step 3扩展 stage-build 参数和 marker

新增参数:

  • --upstream-release-tag
  • --upstream-release-commit
  • --napcat-base-image-digest
  • --jenkins-build-url

写入 fork-artifact.json,和现有 forkCommitdistSha256napcatMjsSha256 一起归档。

  • Step 4同步 README/API

文档必须写清楚API 仓库不提交 NapCat.Shell.zip,生产镜像必须来自带完整 marker 的 staged contextbase image 必须是 digest。

  • Step 5确认 GREEN
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api exec jest test/modules/qqbot/napcat/napcat-desktop-cn-image.spec.ts --runTestsByPath --runInBand
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api run typecheck
git -C D:\MyFiles\KT\Node\kt-template-online-api diff --check
  • Step 6提交
git -C D:\MyFiles\KT\Node\kt-template-online-api add scripts/napcat-desktop-cn-stage-build.mjs test/modules/qqbot/napcat/napcat-desktop-cn-image.spec.ts README.md API.md
git -C D:\MyFiles\KT\Node\kt-template-online-api commit -m "feat: 扩展NapCat运行时构建元数据"

Task 8API Jenkins 运行时推广 Override

Files:

  • Create: D:\MyFiles\KT\Node\kt-template-online-api\test\modules\qqbot\napcat\napcat-runtime-promotion.spec.ts

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\Jenkinsfile

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\k8s\prod\api.yaml

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\README.md

  • Modify: D:\MyFiles\KT\Node\kt-template-online-api\API.md

  • Step 1先写 Jenkins/K8s RED test

测试 Jenkinsfile 必须有两个参数:

  • QQBOT_NAPCAT_IMAGE_OVERRIDE
  • QQBOT_NAPCAT_DESKTOP_PROFILE_VERSION_OVERRIDE

并且 K8s deploy 阶段必须通过 kubectl set env 注入 QQBOT_NAPCAT_IMAGEQQBOT_NAPCAT_DESKTOP_PROFILE_VERSION

  • Step 2确认 RED
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api exec jest test/modules/qqbot/napcat/napcat-runtime-promotion.spec.ts --runTestsByPath --runInBand
  • Step 3增加 Jenkins 参数

两个参数默认空字符串。为空时继续使用 manifest 默认值;非空时才覆盖运行时 env。

  • Step 4K8s deploy 阶段注入 env

kubectl set image 之后执行:

def napcatImageOverride = params.QQBOT_NAPCAT_IMAGE_OVERRIDE?.trim()
def napcatProfileOverride = params.QQBOT_NAPCAT_DESKTOP_PROFILE_VERSION_OVERRIDE?.trim()
if (napcatImageOverride) {
  runCmd("kubectl ${kubeConfigArg} ${namespaceArg} set env ${shellQuote("deployment/${deploymentName}")} ${shellQuote("QQBOT_NAPCAT_IMAGE=${napcatImageOverride}")}")
}
if (napcatProfileOverride) {
  runCmd("kubectl ${kubeConfigArg} ${namespaceArg} set env ${shellQuote("deployment/${deploymentName}")} ${shellQuote("QQBOT_NAPCAT_DESKTOP_PROFILE_VERSION=${napcatProfileOverride}")}")
}
  • Step 5确认 GREEN
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api exec jest test/modules/qqbot/napcat/napcat-runtime-promotion.spec.ts test/modules/qqbot/napcat/napcat-desktop-cn-image.spec.ts --runTestsByPath --runInBand
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api run typecheck
git -C D:\MyFiles\KT\Node\kt-template-online-api diff --check
  • Step 6提交
git -C D:\MyFiles\KT\Node\kt-template-online-api add Jenkinsfile k8s/prod/api.yaml README.md API.md test/modules/qqbot/napcat/napcat-runtime-promotion.spec.ts
git -C D:\MyFiles\KT\Node\kt-template-online-api commit -m "feat: 支持NapCat运行时镜像参数推广"

Task 9NapCatQQ 发布清单与 Jenkins 入口模板

Files:

  • Create: D:\MyFiles\KT\GitHub\NapCatQQ\ci\kt-runtime-release.md

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\ci\jenkins\KT-NapCatQQ-Upstream-Sync.Jenkinsfile

  • Create: D:\MyFiles\KT\mcp\ktWorkflow\ci\jenkins\KT-NapCatQQ-Runtime-Release.Jenkinsfile

  • Modify: D:\MyFiles\KT\mcp\ktWorkflow\README.md

  • Step 1写 NapCatQQ 发布清单

清单必须包含origin 指向 KT 可写 fork/mirror、upstream 指向 https://github.com/NapNeko/NapCatQQ.git、运行 pnpm install --frozen-lockfile、聚焦登录测试、typecheck、build:webui/build:shell/build:framework、Docker 构建只走 ktWorkflow/Jenkins、不自动合并上游。

  • Step 2写上游审计 Jenkins 模板

模板只调用:

sh '''
  set -e
  pnpm --dir /vol1/docker/kt-codex/workspace/KT/mcp/ktWorkflow run napcat-upstream-audit -- \
    --execute \
    --use-codex \
    --artifact-root /vol1/docker/kt-codex/artifacts/napcat-upstream-sync
'''
  • Step 3写运行时发布 Jenkins 模板

模板调用 ktWorkflow readiness 和 API promotion 命令,不内联审计算法,不自动 merge不自动 push。

  • Step 4验证模板
rg -n "napcat-upstream-audit|napcat-runtime-release-readiness|git merge|git push" D:\MyFiles\KT\mcp\ktWorkflow\ci\jenkins
git -C D:\MyFiles\KT\mcp\ktWorkflow diff --check
git -C D:\MyFiles\KT\GitHub\NapCatQQ diff --check

预期:能看到 ktWorkflow 调用,看不到自动 git mergegit push

  • Step 5提交
git -C D:\MyFiles\KT\mcp\ktWorkflow add README.md ci/jenkins
git -C D:\MyFiles\KT\mcp\ktWorkflow commit -m "docs: 增加NapCatQQ自动化Jenkins入口"
git -C D:\MyFiles\KT\GitHub\NapCatQQ add ci/kt-runtime-release.md
git -C D:\MyFiles\KT\GitHub\NapCatQQ commit -m "docs: 增加KT运行时发布清单"

Task 10本地验证、审查和计划收口

Files:

  • Modify: D:\MyFiles\KT\TASKS.md

  • Step 1跑本地验证

pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run napcat-upstream-audit -- --artifact-root .kt-workspace/test-artifacts/napcat-upstream-sync
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run nas-codex-bootstrap -- --dry-run
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run self-test
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run typecheck
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api exec jest test/modules/qqbot/napcat/napcat-desktop-cn-image.spec.ts test/modules/qqbot/napcat/napcat-runtime-promotion.spec.ts --runTestsByPath --runInBand
corepack pnpm --dir D:\MyFiles\KT\Node\kt-template-online-api run typecheck
git -C D:\MyFiles\KT\mcp\ktWorkflow diff --check
git -C D:\MyFiles\KT\Node\kt-template-online-api diff --check
git -C D:\MyFiles\KT\GitHub\NapCatQQ diff --check
  • Step 2跑 KT global-review
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run global-review -- --content-scan-mode changed --max-findings-per-project 20

预期:findings=[];如果是工具误报,修 ktWorkflow review 规则后复跑。

  • Step 3更新 TASKS

记录范围、关键词、验证证据:

### 2026-06-24NapCatQQ 上游同步与运行时发布流水线实施

- 范围mcp/ktWorkflow、Node/kt-template-online-api、GitHub/NapCatQQ。
- 关键词ktWorkflow NapCat 自动化、Codex CLI exec、上游 release 审计、NAS bootstrap、API runtime image/profile override。
- 验证self-test/typecheck/Jest/global-review/diff-check 通过;线上 Jenkins/NAS dry-run 等待下一阶段。
  • Step 4清理历史产物预览
pnpm --dir D:\MyFiles\KT\mcp\ktWorkflow run cleanup-history -- --dry-run

如果 deleted 非空,执行 --execute 后复跑 dry-run直到 deleted=[]

  • Step 5提交 TASKS
git -C D:\MyFiles\KT add TASKS.md
git -C D:\MyFiles\KT commit -m "docs: 记录NapCatQQ自动化实施结果"

执行交接

计划已保存到 docs/superpowers/plans/2026-06-24-napcatqq-upstream-sync-runtime-release-pipeline-implementation-plan.zh-CN.md

两种执行方式:

  1. Subagent-Driven推荐:每个 task 派一个新 subagent父线程逐 task reviewktWorkflow/API/NapCatQQ 分仓提交。
  2. Inline Execution:本线程用 superpowers:executing-plans 批次执行,每个仓库边界做 review checkpoint。

推荐选 1。这条线跨三个仓库和两个运行环境,用 task 级 subagent 更容易守住边界。