boardx / boardx/workspacex

13 个 real-model vitest config 里 10 个没有自动化入口(3 个零引用):skill 的可调用性没有回归防护

Open
#3,164 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 现象
13 个 `apps/api/vitest.*real-model*.config.ts` 里,**只有 3 个**能从自动化入口(npm script 或 CI workflow)到达。
其余 10 个只能靠人手敲 `vitest --config …`,其中 **3 个在整个仓库里零引用**。
后果:绝大多数 skill 的「可调用 / 产出可验证」这两层没有可重复的运行入口。

## 取证(实测 SHA `18d3276fb`)
对每个 config 反查引用(排除 node_modules 与其自身):

| config | 可达入口 |
|---|---|
| `vitest.asr-real-model` | ✅ `.github/workflows/s016-asr-real-evidence.yml` + `apps/api/package.json` |
| `vitest.browser-skill-real-model` | ✅ `apps/api/package.json` |
| `vitest.document-skills-real-model` | ✅ `.github/workflows/office-editing-real-model-evidence.yml` |
| `vitest.audio-real-model` | ⚠️ 仅 `docs/…/evidence/**.txt` |
| `vitest.authoring-skill-real-model` | ⚠️ 仅 evidence |
| `vitest.document-skill-real-model` | ⚠️ 仅 evidence |
| `vitest.extended-skills-real-model` | ⚠️ 仅 evidence |
| `vitest.methods-real-model` | ⚠️ 仅 evidence |
| `vitest.remaining-skills-real-model` | ⚠️ 仅 evidence |
| `vitest.skill-batch-real-model` | ⚠️ 仅 evidence |
| `vitest.canvas-skill-real-model` | ❌ 零引用 |
| `vitest.generated-skill-real-model` | ❌ 零引用 |
| `vitest.visual-skills-real-model` | ❌ 零引用 |

⚠️ 那一档要特别说明:被 `docs/design/standard-capabilities/evidence/**/*.txt` 引用
**不等于今天还能跑** —— evidence 文本是某次手工执行的**静态痕迹**,正是 AGENTS.md
「静态痕迹 ≠ 动态事实」那条点名的形态。它只证明「曾经有人手敲过一次」。

11 个 `tests/agent-runtime/*-real-model.live.ts` 本身**都**被某个 config 的 `include` 覆盖,
所以问题不在 spec 层孤儿,而在 **config → 自动化入口**这一跳断了。

## 影响
「这个 skill 今天还能被调起来吗」这个问题,对 16 个标准包 skill 里的绝大多数,
目前只能靠人手复跑 + 读旧 evidence 文本回答。能力面因此**没有回归防护**:
某个 skill 悄悄失效,不会有任何一条自动化车道变红。

## 修法建议
1. 给每个 real-model config 一个**具名 npm script**(哪怕只是手动触发),
让「怎么跑它」这件事本身可发现;零引用的三个先判是否还需要,不要就删。
2. 加一条 lint:`apps/api/vitest.*.config.ts` 必须被至少一个 npm script 或 workflow 引用,
否则失败。这条能挡住未来再长出孤儿 config(注意 `vitest.native-output-unit.config.ts`
也是零引用,问题不限于 real-model 这批)。
3. 真实模型很贵,不必每条 PR 都跑;但至少要有一条**定期 / 手动可触发**的 workflow
覆盖全部 11 个 live spec,产出带时间戳的证据,而不是让 evidence 停在几个月前的 txt 上。

## 未跑
本次未获授权跑真实模型(`real-model-chat-evidence` 等),因此上表只判「入口是否存在」,
不判「跑起来是否通过」。这正是本 issue 要说的问题:入口不存在,就无从判断。

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing the 13 apps/api/vitest.*real-model*.config.ts files with references in apps/api/package.json and .github/workflows, then inspect the 11 tests/agent-runtime/*-real-model.live.ts files. Done means every retained real-model config has a discoverable npm script or workflow entry, orphan configs are resolved, and the proposed lint or scheduled/manual workflow covers the live specs without relying on static evidence files.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript
Domain
ci-cd, testing-qa, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.