boardx / boardx/workspacex

标准 skill 元数据迁到 SKILL.md 单源(frontmatter 权威,build.ts 从中读)

Open
#3,154 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

## 现状(2026-09-09 盘点,B5)

`stable_name` / `version` / `capability_id` 写在两处:

- `skills///SKILL.md` 的 frontmatter(`standard-authoring` 还用 `metadata:` 嵌了一层——**约定本身就不统一**)
- `skills//scripts/build.ts` 的 `stableName` / `semanticVersion` / `manifest.capabilityId`

16 个标准 skill 里 9 个两处都写、7 个只写 `name`。

## 已落地(本 issue 不重复做)

`.harness/scripts/lint-skill-metadata-source.mjs`:
① 两处都出现的字段必须逐字相等(全称,无豁免);
② frontmatter 三字段必须齐,今天缺的 7 条进 `CONVENTION_DEBT` 名单,**只减不增**(补齐了不删名单也红)。

## 待决(本 issue 追踪的终局方案)

`SKILL.md` frontmatter 作单源,`build.ts` 从中读,两处手写彻底消失。需要决定的点:

1. frontmatter 的形态统一成哪种——顶层 `version:` / `capability_id:`,还是 `metadata:` 嵌一层?(今天两种都有)
2. `semanticVersion` 有几个包是三元表达式按 `stableName` 算出来的(`standard-audio` / `standard-methods`),迁移后这些条件逻辑消失,等于每个 skill 的版本各自独立——这是不是想要的?
3. 迁移那一版的 `packVersion` 怎么定(内容不变但构建脚本变了,产物 digest 会变)。

迁移完成后,`lint-skill-metadata-source.mjs` 的判定①退化为恒真,那时应删掉它,别留一道不再有判别力的绿灯。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by comparing the frontmatter in skills///SKILL.md with the metadata and conditional version logic in skills//scripts/build.ts, then read .harness/scripts/lint-skill-metadata-source.mjs. Resolve the frontmatter shape, independent version behavior, and packVersion questions before migrating all standard skills. Done means build.ts reads the single source and the obsolete lint判定① is removed.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, typescript
Domain
build-system, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.