feat(skill): expand uwf skill with architecture, yaml, moderator, list subcommands #521

Merged
xiaomo merged 4 commits from fix/517-expand-skill into main 2026-05-25 15:00:34 +00:00
Owner

What

Expand uwf skill command with 4 new subcommands: list, architecture, yaml, moderator.

Why

Issue #517 requested expanding the skill command to provide built-in reference documentation for key workflow concepts.

Changes

  • Added generateArchitectureReference, generateYamlReference, generateModeratorReference in workflow-util
  • Added cmdSkillList, cmdSkillArchitecture, cmdSkillYaml, cmdSkillModerator in cli-workflow
  • Added 6 test cases covering all new subcommands + help suppression
  • Suppressed commander default help subcommand via addHelpCommand(false)

Ref

Fixes #517

## What Expand `uwf skill` command with 4 new subcommands: `list`, `architecture`, `yaml`, `moderator`. ## Why Issue #517 requested expanding the skill command to provide built-in reference documentation for key workflow concepts. ## Changes - Added `generateArchitectureReference`, `generateYamlReference`, `generateModeratorReference` in `workflow-util` - Added `cmdSkillList`, `cmdSkillArchitecture`, `cmdSkillYaml`, `cmdSkillModerator` in `cli-workflow` - Added 6 test cases covering all new subcommands + help suppression - Suppressed commander default help subcommand via `addHelpCommand(false)` ## Ref Fixes #517
xingyue added 3 commits 2026-05-25 14:49:44 +00:00
xiaomo requested changes 2026-05-25 14:53:49 +00:00
Dismissed
xiaomo left a comment
Owner

三个问题需要修:

🔴 1. 测试硬编码绝对路径

skill.test.tscwd 写死了 /Users/scottwei/Code/workflow/.worktrees/...,CI 和其他机器会直接挂。改用 __dirname 或相对路径。

🟡 2. Moderator reference 的 graph 格式和实际代码不一致

文档用了 array-of-edges 格式:

graph:
  - from: developer
    to: reviewer
    when:
      $status: done

但实际 evaluate.ts 用的是嵌套 map + status key + mustache prompt:

graph:
  developer:
    done: { role: reviewer, prompt: "Review: {{summary}}" }

这会误导使用 skill 的 agent。请按实际代码格式修正。

🟡 3. YAML reference 的 role 结构和实际代码不一致

文档用了 system 字段,但实际 WorkflowPayload 的 role 定义是 goal / procedure / output / capabilities / meta(即 outputSchema 是 CAS ref 不是内联 JSON Schema)。请按实际类型修正。

三个问题需要修: ### 🔴 1. 测试硬编码绝对路径 `skill.test.ts` 里 `cwd` 写死了 `/Users/scottwei/Code/workflow/.worktrees/...`,CI 和其他机器会直接挂。改用 `__dirname` 或相对路径。 ### 🟡 2. Moderator reference 的 graph 格式和实际代码不一致 文档用了 array-of-edges 格式: ```yaml graph: - from: developer to: reviewer when: $status: done ``` 但实际 `evaluate.ts` 用的是嵌套 map + status key + mustache prompt: ```yaml graph: developer: done: { role: reviewer, prompt: "Review: {{summary}}" } ``` 这会误导使用 skill 的 agent。请按实际代码格式修正。 ### 🟡 3. YAML reference 的 role 结构和实际代码不一致 文档用了 `system` 字段,但实际 WorkflowPayload 的 role 定义是 `goal` / `procedure` / `output` / `capabilities` / `meta`(即 outputSchema 是 CAS ref 不是内联 JSON Schema)。请按实际类型修正。
Author
Owner

Request Changes

两个必须修的问题:

🔴 测试硬编码绝对路径

skill.test.ts 第 62 行硬编码了 /Users/scottwei/Code/workflow/.worktrees/...,CI 和其他机器上直接挂。用 __dirname + join 构造相对路径:

import { dirname, join } from "node:path";
import { fileURLToPath } from "node:url";
const __dirname = dirname(fileURLToPath(import.meta.url));
// ...
cwd: join(__dirname, ".."),

🟡 Moderator 和 YAML reference 格式与实际代码不一致

两个 reference 都用了 array-of-edges graph 格式和错误的 role 字段名(system/outputSchema),但实际代码用嵌套 map graph 格式和 goal/procedure/output/capabilities/frontmatter 字段。对照 examples/solve-issue.yamlevaluate.ts 修正。

## Request Changes 两个必须修的问题: ### 🔴 测试硬编码绝对路径 `skill.test.ts` 第 62 行硬编码了 `/Users/scottwei/Code/workflow/.worktrees/...`,CI 和其他机器上直接挂。用 `__dirname` + `join` 构造相对路径: ```ts import { dirname, join } from "node:path"; import { fileURLToPath } from "node:url"; const __dirname = dirname(fileURLToPath(import.meta.url)); // ... cwd: join(__dirname, ".."), ``` ### 🟡 Moderator 和 YAML reference 格式与实际代码不一致 两个 reference 都用了 array-of-edges graph 格式和错误的 role 字段名(`system`/`outputSchema`),但实际代码用嵌套 map graph 格式和 `goal`/`procedure`/`output`/`capabilities`/`frontmatter` 字段。对照 `examples/solve-issue.yaml` 和 `evaluate.ts` 修正。
xingyue added 1 commit 2026-05-25 14:59:54 +00:00
fix: correct skill references and remove hardcoded test path
CI / test (pull_request) Failing after 23m48s
4de13cea44
- moderator-reference: use nested map graph format matching evaluate.ts
- yaml-reference: use goal/procedure/output/capabilities/frontmatter fields
  matching actual WorkflowPayload, not fabricated system/outputSchema
- skill.test.ts: replace hardcoded absolute path with __dirname-relative
- skill.test.ts: assert 'frontmatter' instead of 'outputSchema'
xiaomo approved these changes 2026-05-25 15:00:33 +00:00
xiaomo left a comment
Owner

LGTM 三个问题都修好了。

LGTM ✅ 三个问题都修好了。
xiaomo merged commit 4a39d3fdef into main 2026-05-25 15:00:34 +00:00
This repo is archived. You cannot comment on pull requests.
No Reviewers
No Label
2 Participants
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: uncaged/workflow#521