Skip to content

Commit fa4c919

Browse files
committed
feat(skill): 增加团队知识 CLI 引导
1 parent ed04c7e commit fa4c919

7 files changed

Lines changed: 267 additions & 2 deletions

File tree

README.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ Compound Engineering = 可选的执行 / 审查 / 测试消费方
122122
按需扩展:
123123

124124
- 可选扩展:`aisee:design-spec``aisee:design-assets``aisee:svg-assets``aisee:image-object``aisee:spec-migrate`
125-
- 知识循环:`aisee:reflect``aisee:knowledge-curate`
125+
- 知识循环:`aisee:reflect``aisee:knowledge``aisee:knowledge-curate`
126126
- 硬件 / 实验域:`hw:srs``hw:architecture``hw:init``hw:change-plan`
127127

128128
## 功能特性
@@ -322,6 +322,7 @@ quick-fix / quick-research / 其它轻量 schema
322322
| `aisee:svg-assets` | 生成、矢量化、优化和校验 SVG assets。 |
323323
| `aisee:image-object` | 对象级图片分割、mask、去背景和导出工作流。 |
324324
| `aisee:reflect` | 沉淀可复用项目经验和工作流改进。 |
325+
| `aisee:knowledge` | 引导团队知识 CLI 的初始化、配置、同步、检索和 promote 流程。 |
325326
| `aisee:knowledge-curate` | 批量审查项目内 reusable knowledge candidates,产出可人工提交到 team knowledge 的 card drafts。 |
326327
327328
硬件相关 skills 已保留,但仍在整合到 Aisee 主工作流中:
@@ -417,14 +418,22 @@ retrieval:
417418
常用命令:
418419
419420
```bash
421+
aisee knowledge init-repo --dest ../aisee-team-knowledge --initial-pack web-app --json
422+
aisee knowledge configure --path ../aisee-team-knowledge --enable-pack web-app --json
420423
aisee knowledge inspect --json
424+
aisee knowledge doctor --json
425+
aisee knowledge check --json
426+
aisee knowledge install --json
427+
aisee knowledge update --json
421428
aisee knowledge query --phase implementation --surface cli --query "public CLI JSON" --json
422429
aisee knowledge query --from-change <change> --for ce-work --json
423430
aisee context pack --change <change> --for ce-work --knowledge --json
431+
aisee knowledge promote-batch --curation <path> --team-path ../aisee-team-knowledge --pack web-app --json
424432
```
425433

426434
使用原则:
427435

436+
- `aisee:knowledge` 负责引导这些 CLI 的日常使用,降低初始化、同步、检索和 promote 的门槛。
428437
- `install``update``promote-batch` 是实验性能力;本地默认 scaffold 不再由 PyPI CLI 提供。PR 自动化和 MCP 服务仍未稳定。
429438
- 通过 CLI 查询,不让 AI 直接扫描 `knowledge/cards/**/*.md`
430439
- 只返回少量带边界的 matches,作为实现、review 或 verify 的提醒。

plugins/aisee-plugin/.codex-plugin/plugin.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
"interface": {
1919
"displayName": "Aisee",
2020
"shortDescription": "AI-Enhanced Software Engineering for OpenSpec-driven development.",
21-
"longDescription": "Aisee helps teams run OpenSpec-driven development with structured requirements, schema-aware change authoring, context packs, ID registry, and Compound Engineering handoffs.",
21+
"longDescription": "Aisee helps teams run OpenSpec-driven development with structured requirements, schema-aware change authoring, context packs, team knowledge guardrails, and Compound Engineering handoffs.",
2222
"developerName": "Fengliang",
2323
"category": "Coding",
2424
"capabilities": [

plugins/aisee-plugin/references/knowledge-card-contract.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,12 @@ CLI 的默认读取入口固定为:
2424

2525
独立 team knowledge 仓库的默认初始化入口是 `aisee knowledge init-repo --dest <path> --initial-pack <id> --json`。marketplace-installed plugin 的 `skills/aisee-knowledge-curate/assets/team-knowledge/` 是 contract-valid 示例模板,也可以使用团队维护的外部模板仓库。配置完成后,用 `aisee knowledge configure --path <path> --enable-pack <id> --json` 写入项目 pin,再运行 `aisee knowledge doctor --json` 检查配置 path 与实际目录是否一致。需要预检该仓库能否被 `promote-batch` 写入时,可读取 `aisee knowledge check --team-path <path> --json` 返回中的 `team_knowledge.write_ready`
2626

27+
Skill 路由:
28+
29+
- `aisee:knowledge`:引导团队知识 CLI 的初始化、配置、同步、检索和 promote 操作。
30+
- `aisee:knowledge-curate`:审查项目内候选知识,产出去敏、泛化、去重后的 curation report 和 card drafts。
31+
- `aisee:reflect`:在项目内生成可审查候选,不直接写入 team knowledge repo。
32+
2733
读取顺序:
2834

2935
1. 读取项目 `aisee/knowledge.yaml`,获得 repo/path/ref/packs/retrieval。

plugins/aisee-plugin/references/skill-taxonomy.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
以下 skill 服务项目内复盘、审查和团队知识沉淀,不是每次迭代必经节点:
3333

3434
- `aisee:reflect`
35+
- `aisee:knowledge`
3536
- `aisee:knowledge-curate`
3637

3738
## Hardware / Experimental
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
---
2+
name: aisee:knowledge
3+
description: 引导团队知识 CLI 的日常使用。用于用户询问团队知识是否可用、如何初始化或接入 team knowledge、如何同步知识仓库、如何查询 guardrails、如何把已审查 drafts 写入 team knowledge,或提到 aisee knowledge、knowledge.yaml、team knowledge、团队知识命令时触发。它负责选择和执行 `aisee knowledge` 命令;候选知识审查和 card draft 生成仍转交 `aisee:knowledge-curate`。
4+
---
5+
6+
# aisee:knowledge
7+
8+
引导团队知识 CLI 的低门槛使用:初始化、配置、检查、同步、检索和已审查 drafts 的写入。
9+
10+
## 职责
11+
12+
- 检查业务项目是否已配置 `aisee/knowledge.yaml`
13+
- 使用 `aisee knowledge inspect/doctor/check` 判断 team knowledge 状态。
14+
- 使用 `init-repo``configure` 建立最小可用团队知识链路。
15+
- 使用 `install/update` 同步已 pin 的 Git team knowledge checkout。
16+
- 使用 `query``context pack --knowledge` 给实现、审查和验证提供少量 guardrails。
17+
- 在用户明确授权后,使用 `promote-batch` 把已审查 curation report 写入本地 team knowledge worktree。
18+
19+
## 不负责
20+
21+
- 不审查、去敏、泛化项目候选知识;这属于 `aisee:knowledge-curate`
22+
- 不从聊天记录或全仓库 Markdown 临时生成 active team card。
23+
- 不让 team knowledge 替代 OpenSpec specs、tasks、contracts、source-map 或 baseline。
24+
- 不把 `aisee/cache/knowledge-index.json` 当事实源。
25+
- 不自动创建分支、commit、push、merge 或 PR。
26+
27+
## Workflow
28+
29+
按用户目标选择模式;需要命令细节时读取 `references/workflow.md`
30+
31+
| 用户目标 | 处理方式 |
32+
|---|---|
33+
| “检查团队知识是否可用” | 运行 `aisee knowledge inspect --json``doctor --json`,必要时 `check --json`|
34+
| “初始化团队知识库” | 先说明写入路径,用户确认后运行 `init-repo`,再 `configure`|
35+
| “配置当前项目使用团队知识” | 运行 `configure --path <path> --enable-pack <pack>`,再 `doctor`|
36+
| “同步团队知识” | 检查 `knowledge.yaml` 后运行 `install``update`|
37+
| “查询可复用经验” | 运行 `query`;有明确 change 时优先 `query --from-change <change> --for ce-work`|
38+
| “实现时带团队知识” | 使用 `aisee context pack --change <change> --for ce-work --knowledge --json`|
39+
| “把候选沉淀到团队知识” | 若还没有审查报告,转交 `aisee:knowledge-curate`;已有 report 且用户授权后使用 `promote-batch`|
40+
41+
## Guardrails
42+
43+
- 写入 `aisee/knowledge.yaml`、team knowledge repo 或 cache 前,说明将写入的路径和命令。
44+
- `promote-batch` 前必须确认目标路径是 team knowledge worktree,并优先运行 `aisee knowledge check --team-path <path> --json`
45+
- `promote-batch` 默认写入 candidate;只有用户明确要求激活时才传 `--activate`
46+
- `install/update` 只处理已配置的 Git checkout;dirty checkout 被阻断时不要自动清理。
47+
- 最终回复说明运行过的命令、状态、写入路径、命中 card 数量和剩余风险。
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
{
2+
"schema_version": "aisee.skill-eval.v1",
3+
"skill_name": "aisee:knowledge",
4+
"harness": {
5+
"type": "skill-eval",
6+
"owner": "aisee",
7+
"fact_source_policy": "eval cases are test inputs, not runtime facts"
8+
},
9+
"evals": [
10+
{
11+
"id": "knowledge-001",
12+
"name": "guide-team-knowledge-onboarding",
13+
"scenario": "team-knowledge-onboarding",
14+
"prompt": "帮我把当前项目接入团队知识库,并检查以后实现时能不能检索 guardrails。",
15+
"context": {
16+
"files": [],
17+
"assumptions": [
18+
"用户要求接入和验证团队知识 CLI。"
19+
]
20+
},
21+
"expected_output": "应先检查或创建 team knowledge repo,再用 configure 写入项目 pin,并通过 doctor/check/query 验证;不得手工发明 knowledge.yaml 或把知识库当 OpenSpec 事实源。",
22+
"expected_outputs": [
23+
"使用 aisee knowledge init-repo 或 configure。",
24+
"运行 doctor/check 验证配置。",
25+
"说明 query 或 context pack --knowledge 的使用方式。"
26+
],
27+
"must_ask": [
28+
"如果需要写入新路径,应确认目标 team knowledge 路径。"
29+
],
30+
"must_include": [
31+
"aisee knowledge configure",
32+
"aisee knowledge doctor",
33+
"aisee knowledge query"
34+
],
35+
"must_not": [
36+
"不得直接递归扫描 knowledge/cards 当作默认流程。",
37+
"不得把 team knowledge 当作 OpenSpec baseline 或 current change 事实源。"
38+
],
39+
"quality_checks": [
40+
"区分配置、同步、检索和写入流程。",
41+
"写入前说明路径和命令。"
42+
],
43+
"fact_source_constraints": [
44+
"team knowledge 是 guardrail retrieval,不替代 OpenSpec、source-map、tasks 或 contracts。"
45+
],
46+
"files": []
47+
},
48+
{
49+
"id": "knowledge-002",
50+
"name": "route-curation-to-knowledge-curate",
51+
"scenario": "team-knowledge-promotion",
52+
"prompt": "把这次项目经验沉淀到团队知识里,如果可以就写入 team repo。",
53+
"context": {
54+
"files": [],
55+
"assumptions": [
56+
"用户提出沉淀到团队知识,但未说明已有 curation report。"
57+
]
58+
},
59+
"expected_output": "应先转交或建议使用 aisee:knowledge-curate 生成去敏、泛化、去重后的 batch report;只有已有 report 且用户明确授权目标路径时才运行 promote-batch。",
60+
"expected_outputs": [
61+
"说明 aisee:knowledge-curate 负责生成 drafts。",
62+
"说明 promote-batch 只写本地 worktree。",
63+
"提醒默认 candidate,明确授权后才可 --activate。"
64+
],
65+
"must_ask": [
66+
"确认是否已有 curation report。",
67+
"确认 team knowledge worktree 路径和是否允许写入。"
68+
],
69+
"must_include": [
70+
"aisee:knowledge-curate",
71+
"aisee knowledge check --team-path",
72+
"aisee knowledge promote-batch"
73+
],
74+
"must_not": [
75+
"不得直接从聊天记录生成 active card 并写入 team repo。",
76+
"不得自动 commit、push、merge 或创建 PR。"
77+
],
78+
"quality_checks": [
79+
"保持 knowledge 和 knowledge-curate 职责分离。",
80+
"强调用户授权和 write_ready 检查。"
81+
],
82+
"fact_source_constraints": [
83+
"curation report 是待审材料;active team card 才是默认检索对象。"
84+
],
85+
"files": []
86+
}
87+
]
88+
}
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
# Team Knowledge CLI Workflow
2+
3+
## 1. Inspect
4+
5+
检查当前项目是否已接入团队知识:
6+
7+
```bash
8+
aisee knowledge inspect --json
9+
aisee knowledge doctor --json
10+
aisee knowledge check --json
11+
```
12+
13+
使用原则:
14+
15+
- `inspect` 看配置、packs 和 cards。
16+
- `doctor``aisee/knowledge.yaml` 与本地路径是否一致。
17+
- `check` 校验 pack/card,并返回 `team_knowledge.write_ready`
18+
19+
## 2. Initialize And Configure
20+
21+
新建独立 team knowledge 仓库骨架:
22+
23+
```bash
24+
aisee knowledge init-repo --dest <team-knowledge> --initial-pack web-app --json
25+
aisee knowledge check --team-path <team-knowledge> --json
26+
aisee knowledge configure --path <team-knowledge> --enable-pack web-app --json
27+
aisee knowledge doctor --json
28+
```
29+
30+
如果团队已有外部 Git 仓库,业务项目只 pin repo/ref/path:
31+
32+
```bash
33+
aisee knowledge configure \
34+
--path .aisee/team-knowledge \
35+
--repo <git-url> \
36+
--ref <branch-or-tag> \
37+
--enable-pack web-app \
38+
--json
39+
```
40+
41+
随后运行 `install` clone 到配置路径。
42+
43+
## 3. Sync
44+
45+
同步已配置的 Git team knowledge checkout:
46+
47+
```bash
48+
aisee knowledge install --json
49+
aisee knowledge update --json
50+
```
51+
52+
边界:
53+
54+
- `install` 只 clone `aisee/knowledge.yaml` 中声明的 repo/path/ref。
55+
- `update` 会拒绝 dirty checkout,除非用户明确选择 `--allow-dirty`
56+
- 失败时报告 issue code,不自动删除用户已有 worktree。
57+
58+
## 4. Query
59+
60+
直接按场景检索:
61+
62+
```bash
63+
aisee knowledge query --phase implementation --surface cli --query "public CLI JSON" --json
64+
```
65+
66+
基于当前 OpenSpec change 检索:
67+
68+
```bash
69+
aisee knowledge query --from-change <change> --for ce-work --json
70+
```
71+
72+
给执行上下文注入少量 guardrails:
73+
74+
```bash
75+
aisee context pack --change <change> --for ce-work --knowledge --json
76+
```
77+
78+
读取结果时看:
79+
80+
- `knowledge.matches`:可使用的 active cards。
81+
- `knowledge.explain`:被过滤原因,如 `status is candidate`
82+
- `config.retrieval.max_cards`:默认返回数量上限。
83+
84+
## 5. Index
85+
86+
索引只是可删除 cache,不是事实源:
87+
88+
```bash
89+
aisee knowledge index --json
90+
aisee knowledge index --team-path <team-knowledge> --json
91+
```
92+
93+
项目侧 cache 默认写入 `aisee/cache/knowledge-index.json`;team repo cache 默认写入 `indexes/lexical-index.json`
94+
95+
## 6. Promote Reviewed Drafts
96+
97+
如果用户还没有 curation report,先转交 `aisee:knowledge-curate` 生成审查报告和 card drafts。
98+
99+
已有 curation report 且用户明确授权写入本地 team knowledge worktree 后:
100+
101+
```bash
102+
aisee knowledge check --team-path <team-knowledge> --json
103+
aisee knowledge promote-batch \
104+
--curation <report> \
105+
--team-path <team-knowledge> \
106+
--pack web-app \
107+
--json
108+
```
109+
110+
激活规则:
111+
112+
- 默认不传 `--activate`,写入 `candidate`
113+
- 只有用户明确说“激活 / active / 直接启用”时才传 `--activate`
114+
- `promote-batch` 不会 commit、push 或创建 PR。

0 commit comments

Comments
 (0)