spec-wave 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +327 -0
- package/README.zh-CN.md +327 -0
- package/RELEASING.md +52 -0
- package/assets/README.md +30 -0
- package/assets/ci/samples/README.md +76 -0
- package/assets/ci/samples/hgm-ingest.yml.example +42 -0
- package/assets/ci/samples/lint-wiki-delta.pin.yml.example +47 -0
- package/assets/ci/samples/lint-wiki-delta.yml.example +49 -0
- package/assets/ci/samples/pytest.yml.example +49 -0
- package/assets/ci/samples/quality.yml.example +56 -0
- package/assets/ci/samples/skills-validate.yml.example +38 -0
- package/assets/ci/samples/tech-graph.yml.example +55 -0
- package/assets/coding_wiki/templates/README.md +115 -0
- package/assets/coding_wiki/templates/_index.md +19 -0
- package/assets/coding_wiki/templates/context.md +18 -0
- package/assets/coding_wiki/templates/stable.md +26 -0
- package/assets/coding_wiki/templates/topics/wiki_layout.md +13 -0
- package/assets/coding_wiki/templates/topics/wikilinks_export.md +13 -0
- package/assets/coding_wiki/templates/volatile.md +25 -0
- package/assets/docs/POINTER_ONBOARDING.md +9 -0
- package/assets/docs/POINTER_RUNBOOK_wiki_delta.md +18 -0
- package/assets/docs/POINTER_SDD_HAT_FLOW.md +8 -0
- package/assets/docs/POINTER_USER_GUIDE.md +8 -0
- package/assets/graph/stubs/README.md +6 -0
- package/assets/graph/templates/00_main.graph.yaml +72 -0
- package/assets/graph/templates/00_main.md +85 -0
- package/assets/graph/templates/01_struct.md +38 -0
- package/assets/graph/templates/02_version.md +7 -0
- package/assets/graph/templates/10_flow_MAIN.graph.yaml +105 -0
- package/assets/graph/templates/10_flow_MAIN.md +103 -0
- package/assets/graph/templates/99_mermaid_protocol.md +156 -0
- package/assets/graph/templates/README.md +66 -0
- package/assets/harness/README.md +18 -0
- package/assets/harness/discipline-coverage.yaml +320 -0
- package/assets/harness/invokes/README.md +22 -0
- package/assets/harness/invokes/TEMPLATE_invoke.md +61 -0
- package/assets/harness/lifecycle.yaml +127 -0
- package/assets/harness/prompts/00-orchestrator.md +91 -0
- package/assets/harness/prompts/10-spec-requirements.md +63 -0
- package/assets/harness/prompts/10-task-requirements.md +70 -0
- package/assets/harness/prompts/20-spec-audit.md +50 -0
- package/assets/harness/prompts/20-task-audit.md +90 -0
- package/assets/harness/prompts/30-execute-code.md +64 -0
- package/assets/harness/prompts/40-self-check.md +65 -0
- package/assets/harness/prompts/FRAGMENT_00_delegate_only_v1_zh.md +19 -0
- package/assets/harness/prompts/FRAGMENT_30_gate_verify_v1_zh.md +34 -0
- package/assets/harness/prompts/FRAGMENT_30_invoke_block_v1_zh.md +28 -0
- package/assets/harness/prompts/FRAGMENT_hat_reanchor_v1_zh.md +19 -0
- package/assets/harness/prompts/README.md +67 -0
- package/assets/harness/prompts/TEMPLATE_30_gate_stop.md +36 -0
- package/assets/harness/templates/FRAGMENT_task_domain_infer_v1_zh.md +16 -0
- package/assets/harness/templates/ONTOLOGY_consumer_slice_v1.md +41 -0
- package/assets/harness/templates/QUICKREF_v1_zh.md +35 -0
- package/assets/harness/templates/README.md +50 -0
- package/assets/harness/templates/TASK_TEMPLATE.md +133 -0
- package/assets/harness/templates/TASK_done_README.md +76 -0
- package/assets/harness/templates/TASK_epic.md +103 -0
- package/assets/harness/templates/TASK_graph_bootstrap.md +115 -0
- package/assets/harness/templates/VIEW_done_by_domain.md +66 -0
- package/assets/harness/templates/VIEW_done_thin_pointer.md +16 -0
- package/assets/ide/adapters/AGENTS.md.fragment.example +33 -0
- package/assets/ide/adapters/CLAUDE.md.fragment.example +32 -0
- package/assets/ide/adapters/README.md +57 -0
- package/assets/ide/adapters/cursor-harness-starter.mdc.example +39 -0
- package/assets/ide/commands/claude/kit/apply-standards.md +10 -0
- package/assets/ide/commands/claude/kit/gate-status.md +10 -0
- package/assets/ide/commands/claude/kit/graph-check.md +8 -0
- package/assets/ide/commands/claude/kit/hat-00-delegate.md +9 -0
- package/assets/ide/commands/claude/kit/hat-10-spec.md +9 -0
- package/assets/ide/commands/claude/kit/hat-10-task.md +9 -0
- package/assets/ide/commands/claude/kit/hat-20-spec-audit.md +9 -0
- package/assets/ide/commands/claude/kit/hat-20-task-audit.md +9 -0
- package/assets/ide/commands/claude/kit/hat-reanchor.md +8 -0
- package/assets/ide/commands/claude/kit/init-guide.md +16 -0
- package/assets/ide/commands/claude/kit/sync-prompts-guide.md +9 -0
- package/assets/ide/commands/claude/kit/verify.md +16 -0
- package/assets/ide/commands/cursor/kit-apply-standards.md +12 -0
- package/assets/ide/commands/cursor/kit-gate-status.md +12 -0
- package/assets/ide/commands/cursor/kit-graph-check.md +10 -0
- package/assets/ide/commands/cursor/kit-hat-00-delegate.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-10-spec.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-10-task.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-20-spec-audit.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-20-task-audit.md +11 -0
- package/assets/ide/commands/cursor/kit-hat-reanchor.md +10 -0
- package/assets/ide/commands/cursor/kit-init-guide.md +18 -0
- package/assets/ide/commands/cursor/kit-sync-prompts-guide.md +11 -0
- package/assets/ide/commands/cursor/kit-verify.md +18 -0
- package/assets/ide/host-adapt/README.md +113 -0
- package/assets/ide/host-adapt/examples/mvp-hosts.yaml +78 -0
- package/assets/ide/host-adapt/host-adapt.schema.json +97 -0
- package/assets/ide/skills-orch/README.md +16 -0
- package/assets/ide/skills-orch/kit-apply-standards/SKILL.md +17 -0
- package/assets/ide/skills-orch/kit-gate-status/SKILL.md +17 -0
- package/assets/ide/skills-orch/kit-hat-reanchor/SKILL.md +15 -0
- package/assets/ide/skills-orch/kit-init-guide/SKILL.md +23 -0
- package/assets/ide/skills-orch/kit-verify/SKILL.md +23 -0
- package/assets/ontology.yaml +113 -0
- package/assets/skills/README.md +37 -0
- package/assets/skills/harness-00-delegate-only/SKILL.md +19 -0
- package/assets/skills/harness-10-spec/SKILL.md +63 -0
- package/assets/skills/harness-10-task/SKILL.md +70 -0
- package/assets/skills/harness-20-spec-audit/SKILL.md +50 -0
- package/assets/skills/harness-20-task-audit/SKILL.md +90 -0
- package/assets/skills/harness-20-task-audit/references/TEMPLATE_30_gate_stop.md +36 -0
- package/assets/skills/harness-hat-reanchor/SKILL.md +19 -0
- package/assets/standards/POINTER_workspace_truth_v1_zh.md +42 -0
- package/assets/standards/README.md +35 -0
- package/assets/standards/SOURCES_v1_zh.md +49 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L1_v1_zh.md +88 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L2_backend_v1_zh.md +75 -0
- package/assets/standards/TEMPLATE_CODING_BASELINE_L2_frontend_v1_zh.md +76 -0
- package/bin/dsh-coding-kit.js +7 -0
- package/bin/specgate.js +7 -0
- package/bin/validate_template_compliance.py +470 -0
- package/cordis.patch.yml +5 -0
- package/lib/cli-checks.d.ts +68 -0
- package/lib/cli-checks.js +812 -0
- package/lib/cli-checks.js.map +1 -0
- package/lib/cli-graph-hgm.d.ts +74 -0
- package/lib/cli-graph-hgm.js +416 -0
- package/lib/cli-graph-hgm.js.map +1 -0
- package/lib/cli-graph-yaml.d.ts +79 -0
- package/lib/cli-graph-yaml.js +602 -0
- package/lib/cli-graph-yaml.js.map +1 -0
- package/lib/cli-graph.d.ts +1 -0
- package/lib/cli-graph.js +199 -0
- package/lib/cli-graph.js.map +1 -0
- package/lib/cli-host.d.ts +24 -0
- package/lib/cli-host.js +1197 -0
- package/lib/cli-host.js.map +1 -0
- package/lib/cli-lifecycle.d.ts +2 -0
- package/lib/cli-lifecycle.js +401 -0
- package/lib/cli-lifecycle.js.map +1 -0
- package/lib/cli-refresh-ide-blocks.d.ts +66 -0
- package/lib/cli-refresh-ide-blocks.js +484 -0
- package/lib/cli-refresh-ide-blocks.js.map +1 -0
- package/lib/cli-shared.d.ts +74 -0
- package/lib/cli-shared.js +281 -0
- package/lib/cli-shared.js.map +1 -0
- package/lib/cli-skills.d.ts +52 -0
- package/lib/cli-skills.js +363 -0
- package/lib/cli-skills.js.map +1 -0
- package/lib/cli-status.d.ts +2 -0
- package/lib/cli-status.js +251 -0
- package/lib/cli-status.js.map +1 -0
- package/lib/cli-sync-prompts.d.ts +25 -0
- package/lib/cli-sync-prompts.js +158 -0
- package/lib/cli-sync-prompts.js.map +1 -0
- package/lib/cli-sync.d.ts +2 -0
- package/lib/cli-sync.js +124 -0
- package/lib/cli-sync.js.map +1 -0
- package/lib/cli-task-extra.d.ts +53 -0
- package/lib/cli-task-extra.js +408 -0
- package/lib/cli-task-extra.js.map +1 -0
- package/lib/cli-timeline.d.ts +28 -0
- package/lib/cli-timeline.js +68 -0
- package/lib/cli-timeline.js.map +1 -0
- package/lib/cli-wiki.d.ts +21 -0
- package/lib/cli-wiki.js +189 -0
- package/lib/cli-wiki.js.map +1 -0
- package/lib/cli.d.ts +22 -0
- package/lib/cli.js +1034 -0
- package/lib/cli.js.map +1 -0
- package/lib/host-contract.d.ts +23 -0
- package/lib/host-contract.js +143 -0
- package/lib/host-contract.js.map +1 -0
- package/lib/index.d.ts +18 -0
- package/lib/index.js +290 -0
- package/lib/index.js.map +1 -0
- package/lib/yaml.d.ts +4 -0
- package/lib/yaml.js +10 -0
- package/lib/yaml.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Harness Verify · 后端 pytest 样例(Python · FastAPI 等)
|
|
2
|
+
#
|
|
3
|
+
# 用途:复制为 .github/workflows/pytest.yml 并按仓裁剪。
|
|
4
|
+
# 金样 POINTER(Ink):Cyning12/ai-ink-brain-api-python · .github/workflows/pytest.yml
|
|
5
|
+
# 本地路径(工作区对照):ai-ink-brain-api-python/.github/workflows/pytest.yml
|
|
6
|
+
#
|
|
7
|
+
# 合并前必绿:pytest tests -m "not intent_eval and not intent_benchmark"(按仓调整 marker)
|
|
8
|
+
|
|
9
|
+
name: pytest
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
pull_request:
|
|
13
|
+
push:
|
|
14
|
+
branches:
|
|
15
|
+
- main
|
|
16
|
+
# - production # 按需启用
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
pytest:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
timeout-minutes: 25
|
|
22
|
+
env:
|
|
23
|
+
# CI dummy 环境变量 — 替换为你的 .env.example 文档化变量名
|
|
24
|
+
# 禁止在 workflow 中写入真实密钥
|
|
25
|
+
EXAMPLE_API_KEY: "dummy-ci-key"
|
|
26
|
+
DATABASE_URL: "postgresql://u:p@localhost:5432/test"
|
|
27
|
+
|
|
28
|
+
steps:
|
|
29
|
+
- name: Checkout
|
|
30
|
+
uses: actions/checkout@v5
|
|
31
|
+
|
|
32
|
+
- name: Setup Python
|
|
33
|
+
uses: actions/setup-python@v6
|
|
34
|
+
with:
|
|
35
|
+
python-version: "3.11" # 改为你的版本
|
|
36
|
+
cache: "pip"
|
|
37
|
+
cache-dependency-path: requirements.txt
|
|
38
|
+
|
|
39
|
+
- name: Install dependencies
|
|
40
|
+
run: pip install -r requirements.txt
|
|
41
|
+
|
|
42
|
+
- name: Run pytest
|
|
43
|
+
run: pytest tests -q --tb=short
|
|
44
|
+
# 有 slow/intent marker 时示例:
|
|
45
|
+
# run: pytest tests -m "not intent_eval and not intent_benchmark" -q --tb=short
|
|
46
|
+
|
|
47
|
+
# --- 可选:Ruff / mypy(L2 落地后启用)---
|
|
48
|
+
# - name: Ruff
|
|
49
|
+
# run: ruff check .
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Harness Verify · 前端 quality 样例(Node/TS · Next 等)
|
|
2
|
+
#
|
|
3
|
+
# 用途:复制为 .github/workflows/quality.yml 并按仓裁剪。
|
|
4
|
+
# 金样 POINTER(Ink):Cyning12/ai-ink-brain · .github/workflows/quality.yml
|
|
5
|
+
# 本地路径(工作区对照):ai-ink-brain/.github/workflows/quality.yml
|
|
6
|
+
#
|
|
7
|
+
# 合并前三门禁:pnpm install --frozen-lockfile → pnpm lint → pnpm test → pnpm build
|
|
8
|
+
# npm/yarn 用户:替换 install/lint/test/build 命令与 cache 配置。
|
|
9
|
+
|
|
10
|
+
name: quality
|
|
11
|
+
|
|
12
|
+
on:
|
|
13
|
+
pull_request:
|
|
14
|
+
push:
|
|
15
|
+
branches:
|
|
16
|
+
- main
|
|
17
|
+
# - production # 按需启用
|
|
18
|
+
|
|
19
|
+
jobs:
|
|
20
|
+
lint-and-build:
|
|
21
|
+
runs-on: ubuntu-latest
|
|
22
|
+
timeout-minutes: 20
|
|
23
|
+
steps:
|
|
24
|
+
- name: Checkout
|
|
25
|
+
uses: actions/checkout@v5
|
|
26
|
+
|
|
27
|
+
# 版本以 package.json 的 packageManager 为真源(pnpm)
|
|
28
|
+
- name: Setup pnpm
|
|
29
|
+
uses: pnpm/action-setup@v5
|
|
30
|
+
|
|
31
|
+
- name: Setup Node
|
|
32
|
+
uses: actions/setup-node@v5
|
|
33
|
+
with:
|
|
34
|
+
node-version: "24" # 改为你的 LTS
|
|
35
|
+
cache: "pnpm"
|
|
36
|
+
cache-dependency-path: pnpm-lock.yaml
|
|
37
|
+
|
|
38
|
+
- name: Install
|
|
39
|
+
run: pnpm install --frozen-lockfile
|
|
40
|
+
|
|
41
|
+
# --- 可选:图谱 / 契约检查(有 docs/_tech_graph/ 时启用)---
|
|
42
|
+
# - name: Setup Python
|
|
43
|
+
# uses: actions/setup-python@v5
|
|
44
|
+
# with:
|
|
45
|
+
# python-version: "3.11"
|
|
46
|
+
# - name: Tech graph check
|
|
47
|
+
# run: python3 tools/tech_graph_check.py --input docs/_tech_graph
|
|
48
|
+
|
|
49
|
+
- name: Lint
|
|
50
|
+
run: pnpm lint
|
|
51
|
+
|
|
52
|
+
- name: Test
|
|
53
|
+
run: pnpm test
|
|
54
|
+
|
|
55
|
+
- name: Build
|
|
56
|
+
run: pnpm build
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# Optional · Agent Skills 校验(skills check + skills-ref validate · v2.23+)
|
|
2
|
+
#
|
|
3
|
+
# 用途:复制为 .github/workflows/skills-validate.yml(或并入既有 workflow 的一步)。
|
|
4
|
+
# 真闸:包内 `npm test` 含 test/skills.test.js(drift/隔离/链接重写);本样例面向
|
|
5
|
+
# 接入仓或本包仓库的 GitHub Actions,提供官方规范校验器兜底。
|
|
6
|
+
# 锁版本:skills-ref 的分发形态(npm 包名/版本)以官方仓库为准 · 接线时核实替换下方示例:
|
|
7
|
+
# github.com/agentskills/agentskills/tree/main/skills-ref
|
|
8
|
+
|
|
9
|
+
name: skills-validate
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
pull_request:
|
|
13
|
+
push:
|
|
14
|
+
branches:
|
|
15
|
+
- main
|
|
16
|
+
workflow_dispatch:
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
skills:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
timeout-minutes: 10
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout
|
|
24
|
+
uses: actions/checkout@v5
|
|
25
|
+
|
|
26
|
+
# npx-only:关闭 setup-node 默认 packageManager 缓存
|
|
27
|
+
- name: Setup Node
|
|
28
|
+
uses: actions/setup-node@v5
|
|
29
|
+
with:
|
|
30
|
+
node-version: "24"
|
|
31
|
+
package-manager-cache: false
|
|
32
|
+
|
|
33
|
+
- name: skills check(drift + frontmatter 约束)
|
|
34
|
+
run: npx --yes spec-wave skills check
|
|
35
|
+
|
|
36
|
+
# 官方规范校验器兜底(包名/版本为占位 · 接线时按官方仓库实际分发替换并锁版本)
|
|
37
|
+
- name: skills-ref validate(官方规范校验)
|
|
38
|
+
run: npx --yes @agentskills/skills-ref@<pin-version> validate ./skills
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Harness Verify · tech-graph 样例(docs/_tech_graph + graph-compile)
|
|
2
|
+
#
|
|
3
|
+
# 用途:复制为 .github/workflows/tech-graph.yml 并按仓裁剪。
|
|
4
|
+
# 适用:已接入 docs/_tech_graph/,且业务仓自备 scripts/graph-compile.sh。
|
|
5
|
+
#
|
|
6
|
+
# 摩擦(必读):
|
|
7
|
+
# 本 job 只用 npm/npx 跑 harness(或不装包管理器、只跑 compile 脚本)。
|
|
8
|
+
# 若 package.json 声明 packageManager=pnpm,切勿开启 setup-node 的
|
|
9
|
+
# packageManager 自动缓存,否则会报:
|
|
10
|
+
# Unable to locate executable file: pnpm
|
|
11
|
+
# → 必须设 package-manager-cache: false
|
|
12
|
+
# 对照:quality.yml.example 先 pnpm/action-setup,再 cache: pnpm。
|
|
13
|
+
#
|
|
14
|
+
# 业务仓须自备 ./scripts/graph-compile.sh(本产品仓不随包提供该业务脚本)。
|
|
15
|
+
# 递归分层仓:compile 产物写 shared/graph.json(或仓内约定路径)。
|
|
16
|
+
|
|
17
|
+
name: tech-graph
|
|
18
|
+
|
|
19
|
+
on:
|
|
20
|
+
pull_request:
|
|
21
|
+
push:
|
|
22
|
+
branches:
|
|
23
|
+
- main
|
|
24
|
+
# - production # 按仓裁剪
|
|
25
|
+
|
|
26
|
+
jobs:
|
|
27
|
+
compile:
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
timeout-minutes: 10
|
|
30
|
+
steps:
|
|
31
|
+
- name: Checkout
|
|
32
|
+
uses: actions/checkout@v5
|
|
33
|
+
|
|
34
|
+
# npx-only / 无 pnpm 安装:关闭 setup-node@v5 默认 packageManager 缓存
|
|
35
|
+
- name: Setup Node
|
|
36
|
+
uses: actions/setup-node@v5
|
|
37
|
+
with:
|
|
38
|
+
node-version: "24"
|
|
39
|
+
package-manager-cache: false
|
|
40
|
+
|
|
41
|
+
- name: Setup Python
|
|
42
|
+
uses: actions/setup-python@v6
|
|
43
|
+
with:
|
|
44
|
+
python-version: "3.11"
|
|
45
|
+
|
|
46
|
+
- name: Install graph compile deps
|
|
47
|
+
run: pip install pyyaml
|
|
48
|
+
|
|
49
|
+
# 可选:npx harness 辅助步骤(仍须 package-manager-cache: false)
|
|
50
|
+
# - name: harness graph check(示例)
|
|
51
|
+
# run: npx --yes spec-wave graph --help
|
|
52
|
+
|
|
53
|
+
- name: Graph compile
|
|
54
|
+
run: ./scripts/graph-compile.sh
|
|
55
|
+
# 业务仓须自备该脚本;递归分层仓写 shared/graph.json
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
# coding_wiki · LLM 读序与目录约定
|
|
2
|
+
|
|
3
|
+
复制本目录到用户仓 **`docs/coding_wiki/`**(含 `topics/`)。
|
|
4
|
+
|
|
5
|
+
> **纪律级别**:`recommended`(人读 / Agent 读序建议)。**不是** `task close` / `wiki_delta` 硬闸——漏目录仍可关账(字段闸见 USER_GUIDE §6.0 / §6.0b)。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 默认两层(起步)
|
|
10
|
+
|
|
11
|
+
业务仓目标形态:
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
docs/coding_wiki/
|
|
15
|
+
README.md # 读序 + 本约定 + 加深指引
|
|
16
|
+
_index.md # 可选主题索引
|
|
17
|
+
stable.md # 稳定度三件套留根(仅此类 + 读序)
|
|
18
|
+
context.md
|
|
19
|
+
volatile.md
|
|
20
|
+
topics/ # 第 2 层:一主题一薄页,指针 docs/** 真值
|
|
21
|
+
*.md
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
| 路径 | 层 | 说明 |
|
|
25
|
+
|------|-----|------|
|
|
26
|
+
| [`README.md`](README.md) | 读序 | 本文件 · 目录约定真值 |
|
|
27
|
+
| [`_index.md`](_index.md) | 索引 | 可选 · 主题→页指针 |
|
|
28
|
+
| [`stable.md`](stable.md) | stable | 短摘要 · 规范十二条 · IDE 规则指针 |
|
|
29
|
+
| [`context.md`](context.md) | context | L2、PROJECT_CONFIG 类指针 |
|
|
30
|
+
| [`volatile.md`](volatile.md) | volatile | 本 task 必读(由 task 引用) |
|
|
31
|
+
| [`topics/`](topics/) | 主题 | **一主题一薄页** · 勿在根堆长文 |
|
|
32
|
+
|
|
33
|
+
invoke §3 应 **pointer** 到本目录,勿重复贴长文。
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 原则
|
|
38
|
+
|
|
39
|
+
1. **根禁止堆主题长文**;主题进 `topics/`(根只留读序 + 稳定度三件套 + 可选 `_index`)。
|
|
40
|
+
2. **勿按日期 / PR / task_slug 建目录**(人扫会炸;时间线放 task/invoke,不放 wiki 树)。
|
|
41
|
+
3. **`wiki export` 不依赖目录深度**;关系图仍靠双括号 wikilink / 相对 `.md` 链(见下「目录 vs 图」)。
|
|
42
|
+
4. 本约定为 **recommended**:整理目录可写在 `wiki_delta=path`,但 **缺两层 / 未加深 ≠ close BLOCK**。
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 目录 vs 关系图
|
|
47
|
+
|
|
48
|
+
| | 文件夹树 | `wiki export` 图 |
|
|
49
|
+
|--|----------|------------------|
|
|
50
|
+
| 服务对象 | **人**扫目录、控爆炸 | Agent / Web / Obsidian **边** |
|
|
51
|
+
| 靠什么 | 两层起步 + 加深阈值 | 双括号 wikilink + md 相对链 |
|
|
52
|
+
| 加深后 | `git mv` 到 `topics/<子域>/` | **边不断**(修好链即可) |
|
|
53
|
+
|
|
54
|
+
详述与关账字段:见薄指针页 [`POINTER_USER_GUIDE.md`](../../docs/POINTER_USER_GUIDE.md)(原文不随包发布)「Wiki 目录 vs 关系图」· `wiki_delta` 决策树见原文 **§6.0b**(本文不重复)。
|
|
55
|
+
|
|
56
|
+
> **防踩坑(v2.19+)**:叙述里勿写裸双括号字面当作「格式说明」(会被 `wiki export` 当边解析);请写「双括号 wikilink」,互链只指向真实页。
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 加深阈值(第 3 层)
|
|
61
|
+
|
|
62
|
+
出现任一信号 → 考虑在 `topics/` 下加**子域**(例:`topics/obs/`、`topics/harness/`),仍保持薄页:
|
|
63
|
+
|
|
64
|
+
| 信号 | 动作 |
|
|
65
|
+
|------|------|
|
|
66
|
+
| 某目录(含 `topics/`)`.md` **≥ 15**,或人已难扫 | 按子域拆第 3 层 |
|
|
67
|
+
| 单页过长(**>~80 行**)或多主题混写 | **先拆页**,再考虑子域 |
|
|
68
|
+
| **连续 3 个 task** 打同一主题前缀 | 可**提前**建子域,不必等满 15 |
|
|
69
|
+
|
|
70
|
+
未达阈值时:**不要**为「好看」提前深套目录。
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 加深操作清单
|
|
75
|
+
|
|
76
|
+
1. `git mv` 页到 `topics/<子域>/`(或拆新薄页)
|
|
77
|
+
2. 修双括号 wikilink / 相对 md 链(含 README、`_index`、stable/context)
|
|
78
|
+
3. 更新 [`_index.md`](_index.md) / 本 README 指针
|
|
79
|
+
4. `npx spec-wave wiki export --json --target <仓根>` 校验边仍在(旧包 `--root` 旗标本包未接线,以 `--target` 指定目标根)
|
|
80
|
+
5. 本 task 元信息 **`wiki_delta`** = 改动 path(字段闸不变;目录形状本身不闸)
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 样例互链(v2.18.1+)与 topics 演示(v2.18.2+)
|
|
85
|
+
|
|
86
|
+
根三件套含样例互链;`topics/` 下示例薄页演示**两层**(非业务真值):
|
|
87
|
+
|
|
88
|
+
- [[topics/wiki_layout]] · [[topics/wikilinks_export]]
|
|
89
|
+
|
|
90
|
+
拷贝到业务仓后:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
npx spec-wave wiki export --json --target .
|
|
94
|
+
# 业务仓:--target <仓根>(旧包 `--root coding_wiki/templates` 旗标本包未接线)
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 关账与晋升(v2.18+)
|
|
100
|
+
|
|
101
|
+
1. task 元信息填 **`wiki_delta`**:改了哪份 wiki / `none`+理由 / `n/a`(未启用 WikiTrack)。
|
|
102
|
+
2. **`experience_capture=required` 且 `wiki_delta=path`**:经验节须含晋升指针(`Wiki:` / `wiki_promoted:` / `coding_wiki` 路径)。
|
|
103
|
+
3. volatile:关账后归档要点或清空,避免 stale;可复用条目上移 **context** / **stable**。
|
|
104
|
+
4. 导出关系图(供 Web/Obsidian 对照,本包不渲染):见上命令。
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 修订记录
|
|
109
|
+
|
|
110
|
+
| 日期 | 说明 |
|
|
111
|
+
|------|------|
|
|
112
|
+
| 2026-07-28 | 关账晋升 + wiki export 指针 |
|
|
113
|
+
| 2026-07-28 | v2.18.1 · stable/context/volatile 样例互链 |
|
|
114
|
+
| 2026-07-28 | v2.18.2 · 两层目录约定 · 加深阈值/清单 · topics 示例 |
|
|
115
|
+
| 2026-07-28 | v2.19.0 · 叙述防踩坑(勿裸双括号字面) |
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# coding_wiki · 主题索引(可选)
|
|
2
|
+
|
|
3
|
+
> 拷贝到业务仓后按需维护。根下主题长文应迁入 [[topics/wiki_layout]] 一类薄页,勿在此堆正文。
|
|
4
|
+
|
|
5
|
+
## 模板样例(v2.18.2+)
|
|
6
|
+
|
|
7
|
+
| 主题 | 页 |
|
|
8
|
+
|------|-----|
|
|
9
|
+
| 目录两层 / 加深 | [[topics/wiki_layout]] |
|
|
10
|
+
| 链接与 export | [[topics/wikilinks_export]] |
|
|
11
|
+
|
|
12
|
+
## 业务仓填写
|
|
13
|
+
|
|
14
|
+
| 主题 | 页 | 真值指针 |
|
|
15
|
+
|------|-----|----------|
|
|
16
|
+
| (例)观测 | `topics/obs/…` | `docs/**` |
|
|
17
|
+
| (例)Harness | `topics/harness/…` | `docs/harness/**` |
|
|
18
|
+
|
|
19
|
+
读序与约定:[[README]]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# coding_wiki · context
|
|
2
|
+
|
|
3
|
+
> **层**:context · 项目级指针(变更频率低于 volatile)
|
|
4
|
+
|
|
5
|
+
## 相关页(样例互链 · v2.18.1+)
|
|
6
|
+
|
|
7
|
+
- 稳定摘要:[[stable]]
|
|
8
|
+
- 本 task:[[volatile]]
|
|
9
|
+
- 目录说明:[[README]]
|
|
10
|
+
- 主题索引:[[_index]] · [[topics/wikilinks_export]]
|
|
11
|
+
|
|
12
|
+
## 待填写
|
|
13
|
+
|
|
14
|
+
- `docs/standards/CODING_*_L2_*.md`
|
|
15
|
+
- `docs/meta/PROJECT_CONFIG_*.md`(若有)
|
|
16
|
+
- `docs/_tech_graph/00_main.md` 读序
|
|
17
|
+
|
|
18
|
+
由安装向导或人工在接入业务仓时补全链接。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# coding_wiki · stable
|
|
2
|
+
|
|
3
|
+
> **层**:stable · 每次会话可注入的短摘要(≤15 行正文建议)
|
|
4
|
+
|
|
5
|
+
## 相关页(样例互链 · v2.18.1+)
|
|
6
|
+
|
|
7
|
+
- 读序总览:[[README]]
|
|
8
|
+
- 项目指针:[[context]]
|
|
9
|
+
- 本 task 易变上下文:[[volatile]]
|
|
10
|
+
- 主题样例(两层):[[topics/wiki_layout]]
|
|
11
|
+
|
|
12
|
+
## 编码底线(L1 摘要占位)
|
|
13
|
+
|
|
14
|
+
1. 最小改动 · 不扩 scope
|
|
15
|
+
2. 类型严格 · 禁 `any`(TS)
|
|
16
|
+
3. 错误结构化返回
|
|
17
|
+
4. 测试策略见 task `test_strategy`
|
|
18
|
+
5. 图谱优先于纯文本臆造
|
|
19
|
+
|
|
20
|
+
完整 L1:用户仓 `docs/standards/CODING_BASELINE_L1_*.md`(由 `standards/` 模板生成)。
|
|
21
|
+
|
|
22
|
+
## IDE 入口
|
|
23
|
+
|
|
24
|
+
- Cursor:`.cursor/rules/*`
|
|
25
|
+
- Claude Code:`CLAUDE.md`
|
|
26
|
+
- 通用:`AGENTS.md`
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 主题 · Wiki 目录两层(模板样例)
|
|
2
|
+
|
|
3
|
+
> **薄页**:约定真值在 [[README]];本页仅演示 `topics/` 第 2 层。业务仓请改写为本仓主题并指针 `docs/**`。
|
|
4
|
+
|
|
5
|
+
## 要点
|
|
6
|
+
|
|
7
|
+
- 根:读序 + stable/context/volatile + 可选 `_index`
|
|
8
|
+
- 主题长文 → `topics/`;勿按日期/PR/task_slug 建目录
|
|
9
|
+
- ≥15 页或难扫 → 子域第 3 层(见 README 加深阈值)
|
|
10
|
+
|
|
11
|
+
## 相关
|
|
12
|
+
|
|
13
|
+
- [[README]] · [[_index]] · [[topics/wikilinks_export]]
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# 主题 · wikilink 与 wiki export(模板样例)
|
|
2
|
+
|
|
3
|
+
> **薄页**:图靠链接,不靠文件夹深度。CLI:`wiki export --json`(schema `harness.wiki_graph.v1`)。
|
|
4
|
+
|
|
5
|
+
## 要点
|
|
6
|
+
|
|
7
|
+
- 双括号 wikilink + 相对 `.md` 链 → nodes/edges
|
|
8
|
+
- 加深 `git mv` 后须修链,再 export 校验
|
|
9
|
+
- 字段闸(`wiki_delta`)≠ 目录形状闸(recommended)
|
|
10
|
+
|
|
11
|
+
## 相关
|
|
12
|
+
|
|
13
|
+
- [[README]] · [[topics/wiki_layout]] · [[stable]]
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# coding_wiki · volatile
|
|
2
|
+
|
|
3
|
+
> **层**:volatile · **本 task 专属**;由 task「给执行帽必读」或 invoke §3 引用
|
|
4
|
+
|
|
5
|
+
## 相关页(样例互链 · v2.18.1+)
|
|
6
|
+
|
|
7
|
+
- 稳定层:[[stable]]
|
|
8
|
+
- 项目层:[[context]]
|
|
9
|
+
|
|
10
|
+
## 用法
|
|
11
|
+
|
|
12
|
+
1. 每个 active task 在正文或 invoke 中 pointer 到本文件或 task 内小节
|
|
13
|
+
2. Epic 子 task 可共用 Epic 级 volatile 片段
|
|
14
|
+
3. 关账后归档或清空,避免 stale 上下文
|
|
15
|
+
|
|
16
|
+
## 本 task(占位)
|
|
17
|
+
|
|
18
|
+
- task_slug:`<填写>`
|
|
19
|
+
- 必读图谱:`docs/_tech_graph/<flow>.md`
|
|
20
|
+
- `code_quality_bar`:`<strict | recommended | not_applicable>`
|
|
21
|
+
|
|
22
|
+
## 关账后
|
|
23
|
+
|
|
24
|
+
- 可复用条目 → 晋升 [[context]] / [[stable]]
|
|
25
|
+
- 本文件清空或归档,避免下一 task 读到 stale volatile
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# 薄指针 · ONBOARDING
|
|
2
|
+
|
|
3
|
+
> 原引用目标 `docs/ONBOARDING.md`(cyning-harness 仓新人/新仓接入指南)。
|
|
4
|
+
|
|
5
|
+
- **用途**:Harness 接入档位(S0~S3)、五轨检查清单与嵌入步骤的总入口文档。
|
|
6
|
+
- **本文档不随 dsh-coding-kit 发布**(包内无 docs/ 正文体)。
|
|
7
|
+
- **真值去向**:私仓 `cyning-harness/docs/ONBOARDING.md`(内部文档,未公开)。
|
|
8
|
+
- kit 自仓 dogfood 见源码 `docs/_tech_graph/`(**不随 npm 包发布**;原文 ONBOARDING 仍在私仓)。
|
|
9
|
+
- 历史先例:旧 npm 包 @cyning/harness@1.0.2 曾随包发布 docs/(旧包已弃用,现行为 dsh-coding-kit)。
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# 薄指针 · RUNBOOK_upgrade_wiki_delta
|
|
2
|
+
|
|
3
|
+
> 原引用目标 `docs/RUNBOOK_upgrade_wiki_delta_v1_zh.md`(lint-wiki-delta 升级运维手册)。
|
|
4
|
+
|
|
5
|
+
- **用途**:无 monorepo checkout 时经 `npm pack` / GitHub raw 升级 wiki-delta 样例的运维步骤(原文 §5.1)。
|
|
6
|
+
- **本文档不随 dsh-coding-kit 发布**(包内无 docs/ 正文体)。
|
|
7
|
+
- **真值去向**:私仓 `cyning-harness/docs/RUNBOOK_upgrade_wiki_delta_v1_zh.md`(内部文档,未公开)。
|
|
8
|
+
- 历史先例:旧 npm 包 @cyning/harness@1.0.2 曾随包发布 docs/(旧包已弃用,现行为 dsh-coding-kit)。
|
|
9
|
+
|
|
10
|
+
## 诊断码表(lint-wiki-delta / task lint E8 · 本仓真值)
|
|
11
|
+
|
|
12
|
+
| code | 档位 | 触发 | 处置 |
|
|
13
|
+
|------|------|------|------|
|
|
14
|
+
| `wiki_delta_missing` | 默认档(exit 2) | `## Harness 元信息` 表内无任何 `wiki_delta` 行 | 在 `## Harness 元信息` 表格补 `| **wiki_delta** | \`path|none|n/a\` |` 行 |
|
|
15
|
+
| `wiki_delta_wrong_section` | 默认档(exit 2 · 替代 missing 不双报) | `wiki_delta` 行写在 `## Harness 元信息` 之外的节(如 `## Harness`) | detail 含所在节名 + 行号;把该行移入 `## Harness 元信息` 表格内(诊断非兼容:解析器仍只认权威节名) |
|
|
16
|
+
| `wiki_delta_invalid` | `--strict` 追加(exit 2) | 值非 path 形态亦非 none/n/a | 改为 path(含 `/` 或 `.`)或 none/n/a |
|
|
17
|
+
| `wiki_delta_path_missing` | `--strict` 追加(exit 2) | path 形态值相对仓根不存在 | 建文件或改指向 |
|
|
18
|
+
| task lint `E8` | `task lint --file`(error · 无 draft 豁免) | `## Harness 元信息` 节在但缺 `wiki_delta` 行(仅查存在性) | 补行即过;错节场景文案指向正确节名并带行号(与 `close_wiki_delta` 对齐) |
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# 薄指针 · SDD_HAT_FLOW
|
|
2
|
+
|
|
3
|
+
> 原引用目标 `docs/methodology/product/SDD_HAT_FLOW_v2_zh.md`(SDD 帽链流程方法论)。
|
|
4
|
+
|
|
5
|
+
- **用途**:10-spec → 20-audit → 30/40/50 帽链流程、图谱分期(路径 D)与 Extended 帽(00/50/handoff)说明。
|
|
6
|
+
- **本文档不随 dsh-coding-kit 发布**(包内无 docs/ 正文体)。
|
|
7
|
+
- **真值去向**:私仓 `cyning-harness/docs/methodology/product/SDD_HAT_FLOW_v2_zh.md`(内部文档,未公开)。
|
|
8
|
+
- 历史先例:旧 npm 包 @cyning/harness@1.0.2 曾随包发布 docs/(旧包已弃用,现行为 dsh-coding-kit)。
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# 薄指针 · USER_GUIDE
|
|
2
|
+
|
|
3
|
+
> 原引用目标 `docs/USER_GUIDE_v1.0_zh.md`(coding_wiki 用户指南)。
|
|
4
|
+
|
|
5
|
+
- **用途**:Wiki 目录 vs 关系图、`wiki_delta` 决策树(原文 §6.0b)等使用说明。
|
|
6
|
+
- **本文档不随 dsh-coding-kit 发布**(包内无 docs/ 正文体)。
|
|
7
|
+
- **真值去向**:私仓 `cyning-harness/docs/USER_GUIDE_v1.0_zh.md`(内部文档,未公开)。
|
|
8
|
+
- 历史先例:旧 npm 包 @cyning/harness@1.0.2 曾随包发布 docs/(旧包已弃用,现行为 dsh-coding-kit)。
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
graph_id: "00_main"
|
|
2
|
+
title: "顶层流程总图"
|
|
3
|
+
description: "模板包主入口分发与典型子流程路由"
|
|
4
|
+
version: "2026-06-30"
|
|
5
|
+
|
|
6
|
+
nodes:
|
|
7
|
+
- id: "Q"
|
|
8
|
+
label: "用户 / 客户端请求"
|
|
9
|
+
- id: "E"
|
|
10
|
+
label: "应用入口"
|
|
11
|
+
- id: "M1"
|
|
12
|
+
label: "核心业务处理"
|
|
13
|
+
- id: "M2"
|
|
14
|
+
label: "次要路径"
|
|
15
|
+
- id: "ADM"
|
|
16
|
+
label: "Admin / Job"
|
|
17
|
+
- id: "FLOW_MAIN"
|
|
18
|
+
label: "主路径子流程"
|
|
19
|
+
- id: "FLOW_DOC"
|
|
20
|
+
label: ">10_flow_MAIN.md"
|
|
21
|
+
- id: "DB"
|
|
22
|
+
label: "持久化"
|
|
23
|
+
- id: "STRUCT_DOC"
|
|
24
|
+
label: ">01_struct.md"
|
|
25
|
+
|
|
26
|
+
edges:
|
|
27
|
+
- from: "Q"
|
|
28
|
+
to: "E"
|
|
29
|
+
label: "->"
|
|
30
|
+
anchors:
|
|
31
|
+
- path: "src/main.py"
|
|
32
|
+
line: 1
|
|
33
|
+
- path: "app/router/index.ts"
|
|
34
|
+
line: 1
|
|
35
|
+
- from: "E"
|
|
36
|
+
to: "M1"
|
|
37
|
+
label: "主路径 A"
|
|
38
|
+
anchors:
|
|
39
|
+
- path: "handlers/resource.py"
|
|
40
|
+
symbol: "handle_create"
|
|
41
|
+
- from: "E"
|
|
42
|
+
to: "M2"
|
|
43
|
+
label: "主路径 B"
|
|
44
|
+
anchors:
|
|
45
|
+
- path: "handlers/health.py"
|
|
46
|
+
symbol: "health_check"
|
|
47
|
+
- from: "E"
|
|
48
|
+
to: "ADM"
|
|
49
|
+
label: "管理/批处理"
|
|
50
|
+
anchors:
|
|
51
|
+
- path: "jobs/ingest.py"
|
|
52
|
+
symbol: "run_sync"
|
|
53
|
+
- from: "M1"
|
|
54
|
+
to: "FLOW_MAIN"
|
|
55
|
+
mark: "::triggers"
|
|
56
|
+
type: "triggers"
|
|
57
|
+
- from: "FLOW_MAIN"
|
|
58
|
+
to: "FLOW_DOC"
|
|
59
|
+
label: "加载"
|
|
60
|
+
- from: "M1"
|
|
61
|
+
to: "DB"
|
|
62
|
+
label: "->"
|
|
63
|
+
anchors:
|
|
64
|
+
- path: "db/repository.py"
|
|
65
|
+
- from: "ADM"
|
|
66
|
+
to: "DB"
|
|
67
|
+
label: "->"
|
|
68
|
+
anchors:
|
|
69
|
+
- path: "db/repository.py"
|
|
70
|
+
- from: "E"
|
|
71
|
+
to: "STRUCT_DOC"
|
|
72
|
+
label: "加载"
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
graph_id: 00_main
|
|
3
|
+
version: 2026-06-30
|
|
4
|
+
generated_at: sha256-8d90cf7f068bb199
|
|
5
|
+
source: 00_main.graph.yaml
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# 顶层流程总图
|
|
9
|
+
|
|
10
|
+
模板包主入口分发与典型子流程路由
|
|
11
|
+
|
|
12
|
+
## Mermaid
|
|
13
|
+
|
|
14
|
+
```mermaid
|
|
15
|
+
flowchart TD
|
|
16
|
+
Q[["用户 / 客户端请求"]]
|
|
17
|
+
E[["应用入口"]]
|
|
18
|
+
M1["核心业务处理"]
|
|
19
|
+
M2["次要路径"]
|
|
20
|
+
ADM["Admin / Job"]
|
|
21
|
+
FLOW_MAIN[["主路径子流程"]]
|
|
22
|
+
FLOW_DOC[">10_flow_MAIN.md"]
|
|
23
|
+
DB["持久化"]
|
|
24
|
+
STRUCT_DOC[">01_struct.md"]
|
|
25
|
+
|
|
26
|
+
Q --> E
|
|
27
|
+
%% → src/main.py#L1
|
|
28
|
+
%% → app/router/index.ts#L1
|
|
29
|
+
E -->|"主路径 A"| M1
|
|
30
|
+
%% → handlers/resource.py::handle_create
|
|
31
|
+
E -->|"主路径 B"| M2
|
|
32
|
+
%% → handlers/health.py::health_check
|
|
33
|
+
E -->|"管理/批处理"| ADM
|
|
34
|
+
%% → jobs/ingest.py::run_sync
|
|
35
|
+
M1 -->|"::triggers"| FLOW_MAIN
|
|
36
|
+
FLOW_MAIN -->|"加载"| FLOW_DOC
|
|
37
|
+
M1 --> DB
|
|
38
|
+
%% → db/repository.py
|
|
39
|
+
ADM --> DB
|
|
40
|
+
%% → db/repository.py
|
|
41
|
+
E -->|"加载"| STRUCT_DOC
|
|
42
|
+
|
|
43
|
+
classDef phase fill:#e1f5fe,stroke:#01579b,stroke-width:2px
|
|
44
|
+
classDef doc fill:#fff8e1,stroke:#ff6f00,stroke-width:1px
|
|
45
|
+
classDef infra fill:#e8f5e9,stroke:#2e7d32,stroke-width:1px
|
|
46
|
+
class Q,E phase
|
|
47
|
+
class FLOW_DOC,STRUCT_DOC doc
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Structured Data
|
|
51
|
+
|
|
52
|
+
### Nodes
|
|
53
|
+
|
|
54
|
+
| ID | Label | Kind |
|
|
55
|
+
|----|-------|------|
|
|
56
|
+
| Q | 用户 / 客户端请求 | |
|
|
57
|
+
| E | 应用入口 | |
|
|
58
|
+
| M1 | 核心业务处理 | |
|
|
59
|
+
| M2 | 次要路径 | |
|
|
60
|
+
| ADM | Admin / Job | |
|
|
61
|
+
| FLOW_MAIN | 主路径子流程 | |
|
|
62
|
+
| FLOW_DOC | >10_flow_MAIN.md | |
|
|
63
|
+
| DB | 持久化 | |
|
|
64
|
+
| STRUCT_DOC | >01_struct.md | |
|
|
65
|
+
|
|
66
|
+
### Edges
|
|
67
|
+
|
|
68
|
+
| From | To | Mark | Type | Label | Anchors |
|
|
69
|
+
|------|----|------|------|-------|---------|
|
|
70
|
+
| Q | E | -> | depends_on | -> | 2 anchor(s) |
|
|
71
|
+
| E | M1 | -> | depends_on | 主路径 A | 1 anchor(s) |
|
|
72
|
+
| E | M2 | -> | depends_on | 主路径 B | 1 anchor(s) |
|
|
73
|
+
| E | ADM | -> | depends_on | 管理/批处理 | 1 anchor(s) |
|
|
74
|
+
| M1 | FLOW_MAIN | ::triggers | triggers | | |
|
|
75
|
+
| FLOW_MAIN | FLOW_DOC | -> | depends_on | 加载 | |
|
|
76
|
+
| M1 | DB | -> | depends_on | -> | 1 anchor(s) |
|
|
77
|
+
| ADM | DB | -> | depends_on | -> | 1 anchor(s) |
|
|
78
|
+
| E | STRUCT_DOC | -> | depends_on | 加载 | |
|
|
79
|
+
|
|
80
|
+
## Sub-graph Links
|
|
81
|
+
|
|
82
|
+
- `Struct`: [`01_struct.md`](01_struct.md)(手写 · 无 `.graph.yaml`)
|
|
83
|
+
- `Version`: [`02_version.md`](02_version.md)(手写 · 无 `.graph.yaml`)
|
|
84
|
+
- 子图编辑源见 `docs/_tech_graph/*.graph.yaml`
|
|
85
|
+
|