create-yss-spec 2.1.14 → 2.2.0
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/README.md +18 -2
- package/package.json +1 -1
- package/src/cli.js +367 -19
- package/template/.agents/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.agents/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.agents/skills/llm-wiki/SKILL.md +1 -1
- package/template/.agents/skills/llm-wiki/references/discover.md +1 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.agents/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.agents/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.agents/skills/yss-router/SKILL.md +1 -1
- package/template/.agents/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.agents/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.claude/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.claude/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.claude/skills/llm-wiki/SKILL.md +1 -1
- package/template/.claude/skills/llm-wiki/references/discover.md +1 -0
- package/template/.claude/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.claude/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.claude/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.claude/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.claude/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.claude/skills/yss-router/SKILL.md +1 -1
- package/template/.claude/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.claude/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.codex/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.codex/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.codex/skills/llm-wiki/SKILL.md +1 -1
- package/template/.codex/skills/llm-wiki/references/discover.md +1 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.codex/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.codex/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.codex/skills/yss-router/SKILL.md +1 -1
- package/template/.codex/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.codex/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.cursor/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.cursor/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.cursor/skills/llm-wiki/SKILL.md +1 -1
- package/template/.cursor/skills/llm-wiki/references/discover.md +1 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.cursor/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.cursor/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.cursor/skills/yss-router/SKILL.md +1 -1
- package/template/.cursor/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.cursor/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.hermes/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.hermes/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.hermes/skills/llm-wiki/SKILL.md +1 -1
- package/template/.hermes/skills/llm-wiki/references/discover.md +1 -0
- package/template/.hermes/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.hermes/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.hermes/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.hermes/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.hermes/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.hermes/skills/yss-router/SKILL.md +1 -1
- package/template/.hermes/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.hermes/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.pi/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.pi/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.pi/skills/llm-wiki/SKILL.md +1 -1
- package/template/.pi/skills/llm-wiki/references/discover.md +1 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.pi/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.pi/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.pi/skills/yss-router/SKILL.md +1 -1
- package/template/.pi/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.pi/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.qoder/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.qoder/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.qoder/skills/llm-wiki/SKILL.md +1 -1
- package/template/.qoder/skills/llm-wiki/references/discover.md +1 -0
- package/template/.qoder/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.qoder/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.qoder/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.qoder/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.qoder/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.qoder/skills/yss-router/SKILL.md +1 -1
- package/template/.qoder/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.qoder/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/.trae/skills/cross-repo-implementation-routing/SKILL.md +2 -2
- package/template/.trae/skills/implementation-repo-onboarding/SKILL.md +5 -5
- package/template/.trae/skills/llm-wiki/SKILL.md +1 -1
- package/template/.trae/skills/llm-wiki/references/discover.md +1 -0
- package/template/.trae/skills/yss-ddd-scaffold-generator/SKILL.md +1 -1
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/generate_scaffold.mjs +30 -3
- package/template/.trae/skills/yss-ddd-scaffold-generator/scripts/scaffold-generator.test.mjs +52 -0
- package/template/.trae/skills/yss-frontend-scaffold-generator/SKILL.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/references/matt-yss-adapter.md +1 -1
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration-contract.yaml +24 -0
- package/template/.trae/skills/yss-product-lifecycle/references/orchestration.md +2 -0
- package/template/.trae/skills/yss-product-lifecycle/references/state-model.md +1 -1
- package/template/.trae/skills/yss-router/SKILL.md +1 -1
- package/template/.trae/skills/yss-router/references/router-contract.yaml +20 -0
- package/template/.trae/skills/yss-router/references/slice-implementation-contract.md +1 -1
- package/template/AGENTS.md +5 -5
- package/template/CONTEXT.md +3 -2
- package/template/docs/process/implementation-repo-integration.md +24 -2
- package/template/docs/templates/cross-repo-slice-template.md +15 -0
- package/template/docs/templates/implementation-repo-registry-template.md +8 -3
- package/template/docs/templates/implementation-routing-template.md +3 -3
- package/template/docs/user-guide//344/272/247/345/223/201/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201.md +2 -2
- package/template/scripts/lib/git-submodule-fixtures.mjs +58 -0
- package/template/scripts/lib/repository-scope-policy.mjs +456 -0
- package/template/scripts/lib/scenario-checks.mjs +11 -1
- package/template/scripts/repository-scope-policy +16 -0
- package/template/scripts/verify-repository-scope-scenarios +239 -0
- package/template/scripts/verify-scaffold-generator-scenarios +54 -0
- package/template/scripts/verify-template +3 -2
- package/template/skills-lock.json +7 -7
- package/template.manifest.json +6 -5
- package/template.snapshot.json +4 -4
- package/template/.cursor/environment.json +0 -5
- package/template/.github/workflows/template-node-tooling.yml +0 -61
- package/template/wiki/.wiki-manifest.json +0 -390
- package/template/wiki/raw/AGENTS.md +0 -122
- package/template/wiki/raw/CONTEXT.md +0 -80
- package/template/wiki/raw/README.md +0 -130
- package/template/wiki/raw/adr-0002-repository-mode.md +0 -3
- package/template/wiki/raw/create-yss-spec-repository-mode-contract.md +0 -95
- package/template/wiki/raw/harness-process-tailoring.md +0 -64
- package/template/wiki/raw/implementation-repo-integration.md +0 -62
- package/template/wiki/raw/issue-tracker.md +0 -135
- package/template/wiki/raw/lifecycle-registry.yaml +0 -369
- package/template/wiki/raw/maintenance-intensity.yaml +0 -25
- package/template/wiki/raw/skills-lock-names.md +0 -93
- package/template/wiki/raw/skills-maintenance.md +0 -90
- package/template/wiki/raw/spec-template.md +0 -102
- package/template/wiki/raw/triage-labels.md +0 -15
- package/template/wiki/raw/vertical-slice-ticket-template.md +0 -132
- package/template/wiki/raw/yss-project.yaml +0 -2
- package/template/wiki/raw/yss-skill-registry.yaml +0 -510
- package/template/wiki/wiki/Agent/345/205/245/345/217/243/350/247/204/345/210/231.md +0 -21
- package/template/wiki/wiki/CLAUDE.md +0 -28
- package/template/wiki/wiki/Fresh/351/252/214/350/257/201/344/270/216/347/213/254/347/253/213/345/256/241/346/237/245.md +0 -19
- package/template/wiki/wiki/LLM Wiki.md +0 -30
- package/template/wiki/wiki/Matt/346/212/200/350/203/275/344/275/223/347/263/273.md +0 -21
- package/template/wiki/wiki/OpenAPI/345/245/221/347/272/246.md +0 -20
- package/template/wiki/wiki/SpecDelta.md +0 -19
- package/template/wiki/wiki/Spec/345/237/272/347/272/277.md +0 -22
- package/template/wiki/wiki/Ticket/344/270/216/346/265/201/347/250/213/347/212/266/346/200/201.md +0 -21
- package/template/wiki/wiki/YSS/345/267/245/347/250/213/346/212/200/350/203/275/344/275/223/347/263/273.md +0 -23
- package/template/wiki/wiki/YSS/350/267/257/347/224/261/344/270/216/345/220/210/345/220/214/347/274/226/350/257/221.md +0 -20
- package/template/wiki/wiki/concept-table.md +0 -9
- package/template/wiki/wiki/index.md +0 -41
- package/template/wiki/wiki/log.md +0 -51
- package/template/wiki/wiki//344/272/247/345/223/201/347/240/224/345/217/221/347/224/237/345/221/275/345/221/250/346/234/237.md +0 -20
- package/template/wiki/wiki//344/272/247/345/223/201/350/256/276/350/256/241/345/275/261/345/223/215/344/270/216/345/216/237/345/236/213.md +0 -19
- package/template/wiki/wiki//344/273/223/345/272/223/350/272/253/344/273/275/344/270/216/350/267/257/347/224/261.md +0 -20
- package/template/wiki/wiki//345/210/207/347/211/207/345/256/236/347/216/260/345/220/210/345/220/214.md +0 -21
- package/template/wiki/wiki//345/236/202/347/233/264/345/210/207/347/211/207Ticket.md +0 -23
- package/template/wiki/wiki//345/244/215/347/233/230/344/270/216/346/235/203/345/250/201/350/265/204/344/272/247/344/277/256/350/256/242.md +0 -20
- package/template/wiki/wiki//345/256/236/347/216/260/344/273/223/345/272/223/344/270/216/350/267/250/344/273/223/345/272/223/345/245/221/347/272/246.md +0 -22
- package/template/wiki/wiki//345/275/261/345/223/215/351/235/242/345/210/206/350/257/212/344/270/216/346/265/201/347/250/213/350/243/201/345/211/252.md +0 -20
- package/template/wiki/wiki//346/212/200/350/203/275/346/212/225/345/275/261/344/270/216/351/224/201/345/256/232.md +0 -23
- package/template/wiki/wiki//346/235/241/344/273/266/345/274/272/345/210/266/351/227/250/347/246/201.md +0 -18
- package/template/wiki/wiki//346/250/241/346/235/277/345/217/221/345/270/203/351/227/250/347/246/201/344/270/216/351/252/214/350/257/201.md +0 -22
- package/template/wiki/wiki//346/250/241/346/235/277/346/200/273/350/247/210.md +0 -20
- package/template/wiki/wiki//346/250/241/346/235/277/347/273/264/346/212/244/346/265/201/347/250/213.md +0 -19
|
@@ -1,390 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"schemaVersion": 1,
|
|
3
|
-
"wikiRoot": "wiki",
|
|
4
|
-
"compiledAt": "2026-08-24T03:05:31.972Z",
|
|
5
|
-
"gitCommit": "de5a8f193f84d44c0b8c9b8dc5da501e60846e66",
|
|
6
|
-
"profile": "documents",
|
|
7
|
-
"sources": [
|
|
8
|
-
{
|
|
9
|
-
"id": "AGENTS.md",
|
|
10
|
-
"kind": "document",
|
|
11
|
-
"livePath": "AGENTS.md",
|
|
12
|
-
"rawPath": "raw/AGENTS.md",
|
|
13
|
-
"role": "copy",
|
|
14
|
-
"sha256": "7cfed91a8e530606f1140acf5156acae1b4c7b16ae13c3d960b8905a61fabd0d"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
"id": "CONTEXT.md",
|
|
18
|
-
"kind": "document",
|
|
19
|
-
"livePath": "CONTEXT.md",
|
|
20
|
-
"rawPath": "raw/CONTEXT.md",
|
|
21
|
-
"role": "copy",
|
|
22
|
-
"sha256": "83c31282a9fcfa5ca22e391045fb482cba87d1fb8ae1f31bd93a6224add462d4"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"id": "README.md",
|
|
26
|
-
"kind": "document",
|
|
27
|
-
"livePath": "README.md",
|
|
28
|
-
"rawPath": "raw/README.md",
|
|
29
|
-
"role": "copy",
|
|
30
|
-
"sha256": "2a8e25ac4dc7798e2b7d1609644990518ece925aecff375160036eb8be611446"
|
|
31
|
-
},
|
|
32
|
-
{
|
|
33
|
-
"id": "yss-project.yaml",
|
|
34
|
-
"kind": "document",
|
|
35
|
-
"livePath": "yss-project.yaml",
|
|
36
|
-
"rawPath": "raw/yss-project.yaml",
|
|
37
|
-
"role": "copy",
|
|
38
|
-
"sha256": "dae2ddacbb024ba25b70a18830fc26ab7d3dcd8aaa361cc8b3767d68307f98af"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
"id": "lifecycle-registry.yaml",
|
|
42
|
-
"kind": "document",
|
|
43
|
-
"livePath": "docs/process/lifecycle-registry.yaml",
|
|
44
|
-
"rawPath": "raw/lifecycle-registry.yaml",
|
|
45
|
-
"role": "copy",
|
|
46
|
-
"sha256": "051a51ea7e5ef3c6fecb5cb43137c5cdd157c646f468614022134e51a5bc5b06"
|
|
47
|
-
},
|
|
48
|
-
{
|
|
49
|
-
"id": "harness-process-tailoring.md",
|
|
50
|
-
"kind": "document",
|
|
51
|
-
"livePath": "docs/process/harness-process-tailoring.md",
|
|
52
|
-
"rawPath": "raw/harness-process-tailoring.md",
|
|
53
|
-
"role": "copy",
|
|
54
|
-
"sha256": "f11bb61f3034560c1607891654b0fb0b79dc82f8fb520f746585e5decf9bf41f"
|
|
55
|
-
},
|
|
56
|
-
{
|
|
57
|
-
"id": "maintenance-intensity.yaml",
|
|
58
|
-
"kind": "document",
|
|
59
|
-
"livePath": "docs/process/maintenance-intensity.yaml",
|
|
60
|
-
"rawPath": "raw/maintenance-intensity.yaml",
|
|
61
|
-
"role": "copy",
|
|
62
|
-
"sha256": "6338e218860416a2a2ca9c187b5589bc1140b967dbac5f3ecea906adfb588a0f"
|
|
63
|
-
},
|
|
64
|
-
{
|
|
65
|
-
"id": "implementation-repo-integration.md",
|
|
66
|
-
"kind": "document",
|
|
67
|
-
"livePath": "docs/process/implementation-repo-integration.md",
|
|
68
|
-
"rawPath": "raw/implementation-repo-integration.md",
|
|
69
|
-
"role": "copy",
|
|
70
|
-
"sha256": "7cd8106029c53773f9ee3e83bcd2d48d6575dbf83d511b0f7d93eeb56538e4e8"
|
|
71
|
-
},
|
|
72
|
-
{
|
|
73
|
-
"id": "skills-maintenance.md",
|
|
74
|
-
"kind": "document",
|
|
75
|
-
"livePath": "docs/agents/skills-maintenance.md",
|
|
76
|
-
"rawPath": "raw/skills-maintenance.md",
|
|
77
|
-
"role": "copy",
|
|
78
|
-
"sha256": "9c95176cc104224b515da9b3ad189d4fc6ea917f31877e60083f1416f342f378"
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"id": "yss-skill-registry.yaml",
|
|
82
|
-
"kind": "document",
|
|
83
|
-
"livePath": "docs/agents/yss-skill-registry.yaml",
|
|
84
|
-
"rawPath": "raw/yss-skill-registry.yaml",
|
|
85
|
-
"role": "copy",
|
|
86
|
-
"sha256": "b265d25be9bc80166e289ca1702337457ac839aec50290d1ba078c7a100cd474"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
"id": "issue-tracker.md",
|
|
90
|
-
"kind": "document",
|
|
91
|
-
"livePath": "docs/agents/issue-tracker.md",
|
|
92
|
-
"rawPath": "raw/issue-tracker.md",
|
|
93
|
-
"role": "copy",
|
|
94
|
-
"sha256": "260db9b67b39f8cba50fc1de7a7ae12abb9d246f3a4b85c0122a71f9fcf431f9"
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
"id": "triage-labels.md",
|
|
98
|
-
"kind": "document",
|
|
99
|
-
"livePath": "docs/agents/triage-labels.md",
|
|
100
|
-
"rawPath": "raw/triage-labels.md",
|
|
101
|
-
"role": "copy",
|
|
102
|
-
"sha256": "5877760bdbb9151a93736247c2dec77d67e969dd1a1b771acf5ff6dc590e5261"
|
|
103
|
-
},
|
|
104
|
-
{
|
|
105
|
-
"id": "adr-0002",
|
|
106
|
-
"kind": "document",
|
|
107
|
-
"livePath": "docs/adr/0002-yss-project-repository-mode.md",
|
|
108
|
-
"rawPath": "raw/adr-0002-repository-mode.md",
|
|
109
|
-
"role": "copy",
|
|
110
|
-
"sha256": "11d2a2b384491b4409e5a2c9b18f30d0566b6c80e1e270ef3c224d72fd264583"
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"id": "create-yss-spec-repository-mode-contract",
|
|
114
|
-
"kind": "document",
|
|
115
|
-
"livePath": ".template-source/contracts/create-yss-spec-repository-mode-contract.md",
|
|
116
|
-
"rawPath": "raw/create-yss-spec-repository-mode-contract.md",
|
|
117
|
-
"role": "copy",
|
|
118
|
-
"sha256": "11abf661e07ae297995f4bc5fbbadff6df33ee66a8990df5ce5ea21e530c615a"
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
"id": "spec-template.md",
|
|
122
|
-
"kind": "document",
|
|
123
|
-
"livePath": "docs/templates/spec-template.md",
|
|
124
|
-
"rawPath": "raw/spec-template.md",
|
|
125
|
-
"role": "copy",
|
|
126
|
-
"sha256": "10d12f0d4c7c148afd74876d057afebdf0a97b65a21cdf2b67ca14a3ce804115"
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
"id": "vertical-slice-ticket-template.md",
|
|
130
|
-
"kind": "document",
|
|
131
|
-
"livePath": "docs/templates/vertical-slice-ticket-template.md",
|
|
132
|
-
"rawPath": "raw/vertical-slice-ticket-template.md",
|
|
133
|
-
"role": "copy",
|
|
134
|
-
"sha256": "49bec2cb6df81ab6d76d01920b52197274b39b6381c329baff360e34e64cc341"
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
"id": "skills-lock.json",
|
|
138
|
-
"kind": "derived",
|
|
139
|
-
"livePath": "skills-lock.json",
|
|
140
|
-
"rawPath": "raw/skills-lock-names.md",
|
|
141
|
-
"role": "extract",
|
|
142
|
-
"extract": {
|
|
143
|
-
"kind": "skill-names"
|
|
144
|
-
},
|
|
145
|
-
"sha256": "8b6df90beb87c526bc2e0a71de61a2ffd1f76b96cb47e6fe87172ebd849bb45b"
|
|
146
|
-
}
|
|
147
|
-
],
|
|
148
|
-
"articles": [
|
|
149
|
-
{
|
|
150
|
-
"id": "模板总览",
|
|
151
|
-
"file": "wiki/模板总览.md",
|
|
152
|
-
"sourceIds": [
|
|
153
|
-
"README.md",
|
|
154
|
-
"AGENTS.md",
|
|
155
|
-
"CONTEXT.md",
|
|
156
|
-
"yss-project.yaml"
|
|
157
|
-
],
|
|
158
|
-
"humanOwned": false
|
|
159
|
-
},
|
|
160
|
-
{
|
|
161
|
-
"id": "仓库身份与路由",
|
|
162
|
-
"file": "wiki/仓库身份与路由.md",
|
|
163
|
-
"sourceIds": [
|
|
164
|
-
"yss-project.yaml",
|
|
165
|
-
"adr-0002",
|
|
166
|
-
"AGENTS.md",
|
|
167
|
-
"create-yss-spec-repository-mode-contract"
|
|
168
|
-
],
|
|
169
|
-
"humanOwned": false
|
|
170
|
-
},
|
|
171
|
-
{
|
|
172
|
-
"id": "Agent入口规则",
|
|
173
|
-
"file": "wiki/Agent入口规则.md",
|
|
174
|
-
"sourceIds": [
|
|
175
|
-
"AGENTS.md",
|
|
176
|
-
"CONTEXT.md"
|
|
177
|
-
],
|
|
178
|
-
"humanOwned": false
|
|
179
|
-
},
|
|
180
|
-
{
|
|
181
|
-
"id": "产品研发生命周期",
|
|
182
|
-
"file": "wiki/产品研发生命周期.md",
|
|
183
|
-
"sourceIds": [
|
|
184
|
-
"lifecycle-registry.yaml",
|
|
185
|
-
"AGENTS.md",
|
|
186
|
-
"harness-process-tailoring.md"
|
|
187
|
-
],
|
|
188
|
-
"humanOwned": false
|
|
189
|
-
},
|
|
190
|
-
{
|
|
191
|
-
"id": "条件强制门禁",
|
|
192
|
-
"file": "wiki/条件强制门禁.md",
|
|
193
|
-
"sourceIds": [
|
|
194
|
-
"lifecycle-registry.yaml",
|
|
195
|
-
"harness-process-tailoring.md",
|
|
196
|
-
"AGENTS.md"
|
|
197
|
-
],
|
|
198
|
-
"humanOwned": false
|
|
199
|
-
},
|
|
200
|
-
{
|
|
201
|
-
"id": "影响面分诊与流程裁剪",
|
|
202
|
-
"file": "wiki/影响面分诊与流程裁剪.md",
|
|
203
|
-
"sourceIds": [
|
|
204
|
-
"harness-process-tailoring.md",
|
|
205
|
-
"lifecycle-registry.yaml",
|
|
206
|
-
"AGENTS.md"
|
|
207
|
-
],
|
|
208
|
-
"humanOwned": false
|
|
209
|
-
},
|
|
210
|
-
{
|
|
211
|
-
"id": "模板维护流程",
|
|
212
|
-
"file": "wiki/模板维护流程.md",
|
|
213
|
-
"sourceIds": [
|
|
214
|
-
"harness-process-tailoring.md",
|
|
215
|
-
"maintenance-intensity.yaml",
|
|
216
|
-
"AGENTS.md"
|
|
217
|
-
],
|
|
218
|
-
"humanOwned": false
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
"id": "Spec基线",
|
|
222
|
-
"file": "wiki/Spec基线.md",
|
|
223
|
-
"sourceIds": [
|
|
224
|
-
"spec-template.md",
|
|
225
|
-
"CONTEXT.md",
|
|
226
|
-
"AGENTS.md",
|
|
227
|
-
"lifecycle-registry.yaml"
|
|
228
|
-
],
|
|
229
|
-
"humanOwned": false
|
|
230
|
-
},
|
|
231
|
-
{
|
|
232
|
-
"id": "SpecDelta",
|
|
233
|
-
"file": "wiki/SpecDelta.md",
|
|
234
|
-
"sourceIds": [
|
|
235
|
-
"CONTEXT.md",
|
|
236
|
-
"AGENTS.md",
|
|
237
|
-
"lifecycle-registry.yaml"
|
|
238
|
-
],
|
|
239
|
-
"humanOwned": false
|
|
240
|
-
},
|
|
241
|
-
{
|
|
242
|
-
"id": "OpenAPI契约",
|
|
243
|
-
"file": "wiki/OpenAPI契约.md",
|
|
244
|
-
"sourceIds": [
|
|
245
|
-
"AGENTS.md",
|
|
246
|
-
"CONTEXT.md",
|
|
247
|
-
"lifecycle-registry.yaml"
|
|
248
|
-
],
|
|
249
|
-
"humanOwned": false
|
|
250
|
-
},
|
|
251
|
-
{
|
|
252
|
-
"id": "产品设计影响与原型",
|
|
253
|
-
"file": "wiki/产品设计影响与原型.md",
|
|
254
|
-
"sourceIds": [
|
|
255
|
-
"CONTEXT.md",
|
|
256
|
-
"AGENTS.md",
|
|
257
|
-
"lifecycle-registry.yaml"
|
|
258
|
-
],
|
|
259
|
-
"humanOwned": false
|
|
260
|
-
},
|
|
261
|
-
{
|
|
262
|
-
"id": "垂直切片Ticket",
|
|
263
|
-
"file": "wiki/垂直切片Ticket.md",
|
|
264
|
-
"sourceIds": [
|
|
265
|
-
"vertical-slice-ticket-template.md",
|
|
266
|
-
"CONTEXT.md",
|
|
267
|
-
"AGENTS.md",
|
|
268
|
-
"issue-tracker.md",
|
|
269
|
-
"triage-labels.md",
|
|
270
|
-
"lifecycle-registry.yaml"
|
|
271
|
-
],
|
|
272
|
-
"humanOwned": false
|
|
273
|
-
},
|
|
274
|
-
{
|
|
275
|
-
"id": "切片实现合同",
|
|
276
|
-
"file": "wiki/切片实现合同.md",
|
|
277
|
-
"sourceIds": [
|
|
278
|
-
"CONTEXT.md",
|
|
279
|
-
"AGENTS.md",
|
|
280
|
-
"lifecycle-registry.yaml"
|
|
281
|
-
],
|
|
282
|
-
"humanOwned": false
|
|
283
|
-
},
|
|
284
|
-
{
|
|
285
|
-
"id": "YSS路由与合同编译",
|
|
286
|
-
"file": "wiki/YSS路由与合同编译.md",
|
|
287
|
-
"sourceIds": [
|
|
288
|
-
"AGENTS.md",
|
|
289
|
-
"CONTEXT.md"
|
|
290
|
-
],
|
|
291
|
-
"humanOwned": false
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
"id": "YSS工程技能体系",
|
|
295
|
-
"file": "wiki/YSS工程技能体系.md",
|
|
296
|
-
"sourceIds": [
|
|
297
|
-
"CONTEXT.md",
|
|
298
|
-
"skills-maintenance.md",
|
|
299
|
-
"yss-skill-registry.yaml",
|
|
300
|
-
"skills-lock.json"
|
|
301
|
-
],
|
|
302
|
-
"humanOwned": false
|
|
303
|
-
},
|
|
304
|
-
{
|
|
305
|
-
"id": "Matt技能体系",
|
|
306
|
-
"file": "wiki/Matt技能体系.md",
|
|
307
|
-
"sourceIds": [
|
|
308
|
-
"CONTEXT.md",
|
|
309
|
-
"skills-maintenance.md",
|
|
310
|
-
"AGENTS.md",
|
|
311
|
-
"skills-lock.json"
|
|
312
|
-
],
|
|
313
|
-
"humanOwned": false
|
|
314
|
-
},
|
|
315
|
-
{
|
|
316
|
-
"id": "技能投影与锁定",
|
|
317
|
-
"file": "wiki/技能投影与锁定.md",
|
|
318
|
-
"sourceIds": [
|
|
319
|
-
"skills-maintenance.md",
|
|
320
|
-
"skills-lock.json",
|
|
321
|
-
"AGENTS.md",
|
|
322
|
-
"yss-skill-registry.yaml"
|
|
323
|
-
],
|
|
324
|
-
"humanOwned": false
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
"id": "实现仓库与跨仓库契约",
|
|
328
|
-
"file": "wiki/实现仓库与跨仓库契约.md",
|
|
329
|
-
"sourceIds": [
|
|
330
|
-
"implementation-repo-integration.md",
|
|
331
|
-
"AGENTS.md"
|
|
332
|
-
],
|
|
333
|
-
"humanOwned": false
|
|
334
|
-
},
|
|
335
|
-
{
|
|
336
|
-
"id": "LLM Wiki",
|
|
337
|
-
"file": "wiki/LLM Wiki.md",
|
|
338
|
-
"sourceIds": [
|
|
339
|
-
"AGENTS.md",
|
|
340
|
-
"CONTEXT.md",
|
|
341
|
-
"yss-skill-registry.yaml",
|
|
342
|
-
"skills-maintenance.md"
|
|
343
|
-
],
|
|
344
|
-
"humanOwned": false
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
"id": "Ticket与流程状态",
|
|
348
|
-
"file": "wiki/Ticket与流程状态.md",
|
|
349
|
-
"sourceIds": [
|
|
350
|
-
"issue-tracker.md",
|
|
351
|
-
"triage-labels.md",
|
|
352
|
-
"CONTEXT.md",
|
|
353
|
-
"AGENTS.md"
|
|
354
|
-
],
|
|
355
|
-
"humanOwned": false
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
"id": "Fresh验证与独立审查",
|
|
359
|
-
"file": "wiki/Fresh验证与独立审查.md",
|
|
360
|
-
"sourceIds": [
|
|
361
|
-
"AGENTS.md",
|
|
362
|
-
"harness-process-tailoring.md",
|
|
363
|
-
"maintenance-intensity.yaml",
|
|
364
|
-
"CONTEXT.md"
|
|
365
|
-
],
|
|
366
|
-
"humanOwned": false
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
"id": "模板发布门禁与验证",
|
|
370
|
-
"file": "wiki/模板发布门禁与验证.md",
|
|
371
|
-
"sourceIds": [
|
|
372
|
-
"AGENTS.md",
|
|
373
|
-
"README.md",
|
|
374
|
-
"skills-maintenance.md",
|
|
375
|
-
"harness-process-tailoring.md"
|
|
376
|
-
],
|
|
377
|
-
"humanOwned": false
|
|
378
|
-
},
|
|
379
|
-
{
|
|
380
|
-
"id": "复盘与权威资产修订",
|
|
381
|
-
"file": "wiki/复盘与权威资产修订.md",
|
|
382
|
-
"sourceIds": [
|
|
383
|
-
"AGENTS.md",
|
|
384
|
-
"lifecycle-registry.yaml",
|
|
385
|
-
"CONTEXT.md"
|
|
386
|
-
],
|
|
387
|
-
"humanOwned": false
|
|
388
|
-
}
|
|
389
|
-
]
|
|
390
|
-
}
|
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
# AGENTS.md — AI 开发入口规则
|
|
2
|
-
|
|
3
|
-
> 本文件只保存 Agent 必须首先遵守的仓库身份路由、硬门禁和禁止事项。完整生命周期、流程裁剪和 YSS 实现细则以下文引用的权威资产为准。
|
|
4
|
-
|
|
5
|
-
## 1. 首先识别仓库身份
|
|
6
|
-
|
|
7
|
-
每个任务开始时先读取根目录 `yss-project.yaml`:
|
|
8
|
-
|
|
9
|
-
- `repository_mode: template-source`:使用“模板维护流程”,不默认生成具体产品的 Spec、原型、OpenAPI 或垂直切片 Ticket。
|
|
10
|
-
- `repository_mode: project-instance`:按产品研发生命周期分诊任务。
|
|
11
|
-
- 文件缺失、schema 版本不支持或模式值非法时,停止路由并执行迁移检查;不根据目录、Git 远程或占位符猜测身份。
|
|
12
|
-
|
|
13
|
-
仓库身份契约见 `docs/adr/0002-yss-project-repository-mode.md`。
|
|
14
|
-
|
|
15
|
-
## 2. 单一事实来源
|
|
16
|
-
|
|
17
|
-
| 事实类型 | 权威资产 |
|
|
18
|
-
| ----------------------- | ------------------------------------------- |
|
|
19
|
-
| 领域与流程词汇 | `CONTEXT.md` |
|
|
20
|
-
| Agent 入口、硬门禁、禁止事项 | `AGENTS.md` |
|
|
21
|
-
| 主阶段、门禁、产物、工作单元、证据和稳定 ID | `docs/process/lifecycle-registry.yaml`;`docs/process/lifecycle-artifact-map.md` 为派生阅读视图 |
|
|
22
|
-
| 影响面触发与 `not-applicable` | `docs/process/harness-process-tailoring.md` |
|
|
23
|
-
| 模板维护强度触发与最低等级 | `docs/process/maintenance-intensity.yaml` |
|
|
24
|
-
| 技能清单、来源、版本、哈希和投影目标 | `skills-lock.json` |
|
|
25
|
-
| 技能分层、别名、默认可发现性和运行时入口 | `docs/agents/yss-skill-registry.yaml`(当前 `status: shadow`,不作为 Router / 生命周期运行时入口) |
|
|
26
|
-
|
|
27
|
-
README、用户指南、根目录 `CLAUDE.md` 和其他说明文档只引用或解释上述事实,不重复定义同一规则。`CLAUDE.md` 是 Claude Code 入口指针,不是第二套 Agent 规则。
|
|
28
|
-
|
|
29
|
-
## 3. 标准文档语言与规范语汇
|
|
30
|
-
|
|
31
|
-
- 所有面向业务、产品、架构、实施、审查、发布和复盘的落地文档,正文统一使用简体中文。
|
|
32
|
-
- 英文专有名词、代码标识、API 路径、schema、类名、方法名、枚举值、错误码、命令、文件名和协议 metadata 保持原样。
|
|
33
|
-
- 新流程统一使用 Spec、Ticket、`to-spec`、`to-tickets`。过时术语和技能名只能出现在迁移指南或明确标注的旧项目上下文。
|
|
34
|
-
- 实施前读取 `CONTEXT.md`。业务术语必须已有 PascalCase `英文标识`;代码类型 / 字段与契约 property 使用该词干按 `CONTEXT.md` 文首规则变形。改中文术语或英文标识都先回写 `CONTEXT.md`。与词汇或 ADR 冲突时立即指出并先解决冲突。
|
|
35
|
-
|
|
36
|
-
## 4. `template-source` 模板维护路由
|
|
37
|
-
|
|
38
|
-
按“影响面 → 单一事实来源 → 投影 / 派生资产 → 分级证据”维护。强度分级、最低证据和 checkpoint 合同见 `docs/process/harness-process-tailoring.md`。
|
|
39
|
-
|
|
40
|
-
- 创建、修改或退役 skill 时使用 `maintaining-skills`,并先按 `docs/process/harness-process-tailoring.md` 判定 L1 / L2 / L3;只有 L3 必须保留完整基线失败、压力场景、修订后验证和正式独立审查证据。
|
|
41
|
-
- `.agents/skills` 是跨 Agent 共享技能的权威内容;`.claude/skills`、`.codex/skills`、`.cursor/skills`、`.hermes/skills`、`.pi/skills`、`.qoder/skills`、`.trae/skills` 中的共享技能是生成投影,禁止分别手工修改。Cursor 的契约运行时入口是 `.cursor/skills`;不得把 canonical `.agents/skills` 与某个平台投影当作同权双入口。
|
|
42
|
-
- `scripts/verify-template` 是模板发布阻断门禁。模板与外部 `create-yss-spec` 的跨仓库契约未完成集成验证时,不得声称可发布。
|
|
43
|
-
|
|
44
|
-
## 5. `project-instance` 产品研发路由
|
|
45
|
-
|
|
46
|
-
先用 `docs/process/harness-process-tailoring.md` 判定变更类型、影响面和最近可信阶段,再按 `docs/process/lifecycle-registry.yaml` 执行命中的工作单元和条件门禁。
|
|
47
|
-
|
|
48
|
-
- 生命周期注册表中的条件门禁全部按影响面强制。命中触发条件时必须完成;未命中时只记录 `not-applicable` 及原因,不生成空文档;不得把产物、工作单元或证据统称为门禁。
|
|
49
|
-
- 安全 / 权限不设独立生命周期资料或专属门禁。日常功能不做额外登记、`not-applicable` 或推导校验;只有需求或冻结资产明确要求改变认证、授权、租户隔离、敏感数据或合规行为时,才把该行为写入普通 Spec、API、架构、验收和测试 seam,并仅按实际 UI、API、Backend、Data、High-risk 影响触发既有门禁。普通 action 注册、沿用既有认证中间件、未变化的 `401` / `403`、一般字段、SQL / DDL / 迁移和上传 / 下载本身不构成安全 / 权限专项。
|
|
50
|
-
- `seam-deferred` 只能显式记录风险、责任人、后续 Ticket、验证计划和目标版本或发布日期。
|
|
51
|
-
- 新功能或较大变更先进入 `yss-product-lifecycle` 的原生 Discovery / 需求分析工作单元;`grill-with-docs` 与 `to-spec` 仅作为用户显式兼容入口,Spec 基线和产品设计影响的完整判定以注册表和裁剪规则为准。
|
|
52
|
-
- API 契约变更先形成 OpenAPI 3.1 Draft,经必要的工程基线、系统 / 数据架构和设计审查后 Freeze,再进入实现。
|
|
53
|
-
- Spec Delta 只记录相对既有冻结 Spec 基线的高风险行为差异;全新产品、全新模块和低风险调整不生成 Spec Delta。
|
|
54
|
-
- OpenAPI Freeze 或无 API 影响记录完成后,由生命周期原生 Ticket 正式化工作单元拆成可独立验证的窄垂直切片;用户显式 `to-tickets` 仅作为兼容入口,禁止只按 Adapter / Application / Domain / Infrastructure 横向拆分。
|
|
55
|
-
|
|
56
|
-
## 6. Ticket 与状态
|
|
57
|
-
|
|
58
|
-
- 每个功能先建立功能父 Ticket,用于汇总 Spec、设计、审查、OpenAPI Freeze、阻塞项和阶段证据。
|
|
59
|
-
- Spec 初稿、产品设计、原型、OpenAPI Draft 和待冻结资产使用 `ready-for-human`。
|
|
60
|
-
- 只有通过必要门禁、阻塞边已清除并具备直接实现条件的垂直切片 Ticket,才能使用 `ready-for-agent`。
|
|
61
|
-
- Ticket、Spec 和阶段证据按 `docs/agents/issue-tracker.md` 选定的主 tracker 持久化;Git remote 不代表 tracker 选择,平台不可用时按该文档生成待发布草案。五态标签见 `docs/agents/triage-labels.md`。
|
|
62
|
-
|
|
63
|
-
## 7. 实现与 YSS 路由硬门禁
|
|
64
|
-
|
|
65
|
-
进入实现时先读 `docs/process/implementation-repo-integration.md`,登记实现仓库、项目根、分支、CI、验证命令和回滚点;再使用 `yss-router` 编译最小 skill 集合与当前实现合同。
|
|
66
|
-
|
|
67
|
-
- 无可复用工程时,先确认外部目标仓库或输出目录,再使用 `yss-ddd-scaffold-generator` / `yss-frontend-scaffold-generator`;当前仓库缺少 frontend / backend 目录不改变此路由。
|
|
68
|
-
- 脚手架只在 `scaffold_status=required` 且受控生成合同已持久化、获得生命周期批准后运行;它只产生机械骨架,业务行为回到 Router 并使用 `behavior-tdd`。
|
|
69
|
-
- 正式垂直切片必须消费已批准、已持久化且版本当前的 Slice Implementation Contract。Router 只生成草案,不批准合同、不设置 `ready-for-agent`、不宣布完成。合同 schema、Backend 子合同和证据字段以 `yss-router` references 为准。
|
|
70
|
-
- 前端测试、type-check 与构建优先使用 `pnpm`;后端校验、测试与编译优先使用项目根 `./mvnw`。不要默认 `npm` / `yarn` 或裸 `mvn`。既有仓库确实没有 pnpm 或 Maven Wrapper 时,必须记录受控例外和实际命令。登记字段见 `docs/process/implementation-repo-integration.md`。
|
|
71
|
-
- 路径越界、证据缺失、未执行验证、`drift`、`violation` 或 `new_impacts` 时停止实现并重新路由。
|
|
72
|
-
|
|
73
|
-
实现细则由已批准合同、YSS skills 和实现接入文档定义;`AGENTS.md` 只保留入口与边界。
|
|
74
|
-
|
|
75
|
-
## 8. 专项任务的强制入口
|
|
76
|
-
|
|
77
|
-
| 触发情形 | 必须使用 |
|
|
78
|
-
|---|---|
|
|
79
|
-
| 技术事实、标准、第三方 API 或框架行为影响决策 | `research` 或等价的一手资料记录 |
|
|
80
|
-
| 竞品、市场或用户口碑事实 | `competitive-intelligence` |
|
|
81
|
-
| UI 设计、原型、组件或主题 | `yss-design-system` 后使用 `yss-prototype-stage`;Codex 再路由 `product-design:index`,其他 Agent 交付等价合同资产;原型产出前后用 `yss-antd-design` 记录 Ant Design v6 事实与浏览器验证。前端代码落地改用 `yss-ui`,不要继续调用 `yss-antd-design` |
|
|
82
|
-
| Bug、测试失败或性能回退 | `diagnosing-bugs` 建立可复现反馈,再用 `tdd` |
|
|
83
|
-
| merge / rebase 冲突 | `resolving-merge-conflicts` |
|
|
84
|
-
| 架构治理、难测模块或深模块设计 | `improve-codebase-architecture` / `codebase-design` |
|
|
85
|
-
| 跨线程、跨仓库、上下文过长或原型结论回流 | `handoff` 或等价交接记录 |
|
|
86
|
-
| 本地知识库 init / refresh / rebuild,或要把研究结果落成持久 wiki | `llm-wiki`(落成持久 wiki 用 `ingest`;已映射 live 源变了用 `refresh`) |
|
|
87
|
-
|
|
88
|
-
业务行为默认按 `tdd` 使用已确认的公开 seam 逐切片实现。一次性生成、纯配置或流程文档不适用代码 TDD 时,必须记录例外理由和可执行验证方式。
|
|
89
|
-
|
|
90
|
-
## 9. 工作区与实现仓库边界
|
|
91
|
-
|
|
92
|
-
当前仓库默认是研发管理仓库,运行时代码优先位于已登记的独立实现仓库。只有用户明确选择当前仓库承载实现代码时,才使用唯一的 `apps/backend/<project>/` 或 `apps/frontend/<project>/` 项目根。
|
|
93
|
-
|
|
94
|
-
`apps/backend/` 和 `apps/frontend/` 只是项目容器;`app/backend/`、`app/frontend/` 及其子路径禁止作为工程输出。完整登记字段和跨仓约束见 `docs/process/implementation-repo-integration.md`。
|
|
95
|
-
|
|
96
|
-
## 10. 独立审查、验证和追踪
|
|
97
|
-
|
|
98
|
-
- 实现者不能承担命中的独立审查。模板维护按 L1 / L2 / L3 分别使用 self-check / 人工 checkpoint、聚焦独立审查、正式独立审查;模板发布、代码切片和高风险变更仍必须由其他 Agent 或人工独立审查。
|
|
99
|
-
- 任何“完成 / 可合并 / 可发布”结论必须基于 fresh verification,不接受“之前跑过”或实现者自述。
|
|
100
|
-
- 在人工暂停、handoff、进入实现、合并或发布边界集中同步范围、验证证据、风险、人工审查点、Ticket 状态和下一步;阻塞、责任人变化或资产单独批准时立即同步。
|
|
101
|
-
- Git checkpoint 只包含本轮明确范围;获得用户授权后才提交或推送。
|
|
102
|
-
- 发布后或阶段性完成后做复盘判断;出现架构返工、验证返工、IMPORTANT / CRITICAL review finding 或人工确认延期时,落简体中文复盘并修订权威资产。
|
|
103
|
-
|
|
104
|
-
## 11. Subagent 协同
|
|
105
|
-
|
|
106
|
-
使用 subagent 前按 `docs/process/subagent-collaboration.md` 定义任务包和不重叠的写入范围。实现者不担任独立审查者;仓库身份、需求 / 契约冻结、Ticket 最终状态、Git checkpoint 和完成结论仍由主控 Agent 或人工决定。
|
|
107
|
-
|
|
108
|
-
## 12. 测试质量基线
|
|
109
|
-
|
|
110
|
-
模板推荐值为 Domain / Application `>= 90%`、API `>= 80%`、前端组件 `>= 75%`、已明确的关键流程 `100% E2E`。只有项目实例在测试策略中明确采纳或覆盖后才构成 CI 门禁;未定义关键流程清单时,不声称其 E2E 覆盖率达到 100%。
|
|
111
|
-
|
|
112
|
-
## Cursor Cloud specific instructions
|
|
113
|
-
|
|
114
|
-
本仓库是 `template-source` Harness / 研发管理仓库,没有前端 / 后端运行时应用;可运行、可测试的表面只有 Node 工具链与治理校验脚本。
|
|
115
|
-
|
|
116
|
-
- 依赖与工具链:Node `>=22 <27`(`.nvmrc` 固定 22);`pnpm` 通过 `packageManager` 字段由 corepack 自动切换到 `10.15.0`,无需手工切换。Node 依赖只装在 `.template-source/tooling/node`,仓库根没有 `package.json`。
|
|
117
|
-
- 测试:`pnpm --dir .template-source/tooling/node test`(`node --test`,共 15 个用例)。
|
|
118
|
-
- 构建 / lint:`pnpm --dir .template-source/tooling/node build:vendor` 与 `check:vendor` 维护 `scripts/vendor/*.mjs`;顶层 lint 是 `verify-template` 内对所有脚本执行的 `node --check`。
|
|
119
|
-
- 完整发布门禁(相当于"运行应用"):`scripts/verify-template`,成功输出 `模板发布校验通过`。它串联证据索引、`pnpm test`、`check:vendor` 和全部 `scripts/verify-*` 场景校验。
|
|
120
|
-
- 非显然的坑:`scripts/verify-lifecycle-registry`(及其对应测试 `Node lifecycle registry verifier ...`)会 shell out 到 `python3` 并 `import jsonschema` 做 JSON Schema 校验。缺少该 Python 模块时测试会以 `ModuleNotFoundError: No module named 'jsonschema'` 失败,而不是代码问题;update script 已负责 `pip3 install jsonschema`。
|
|
121
|
-
- `pnpm install` 输出的 `Ignored build scripts: esbuild` 警告可忽略:esbuild 0.28.2 在本平台自带二进制,`build:vendor` / `check:vendor` 无需 `pnpm approve-builds`。
|
|
122
|
-
- 常用只读入口:`scripts/repository-mode`(返回仓库身份)、`scripts/generate-lifecycle-artifacts`(从 `docs/process/lifecycle-registry.yaml` 派生产物,输出应无 diff)、`scripts/export-yss-skills --output <dir>`(导出公开技能)。
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
# 领域上下文
|
|
2
|
-
|
|
3
|
-
本文档是项目的领域词汇表,只记录稳定业务语言和协作概念,不记录实现细节、计划草稿或架构说明。
|
|
4
|
-
|
|
5
|
-
`英文标识` 是 PascalCase 词干,不是英语释义。`## 业务术语` 必须填写该列;`## 流程术语` 填 `—`。代码类型名、字段名和契约 property 由该词干变形:类名 = 词干 + YSS 工程后缀;字段与 JSON property 为 camelCase;数据库列为 snake_case;枚举常量为 UPPER_SNAKE。工程后缀以 YSS skill 和当前工程惯例为准,不作为领域词写入本表。JSON 与 Java 字段不一致时,以 DTO wire shape / OpenAPI 为准,不在本表另开列。改中文术语或英文标识都是统一语言变更,必须先回写本表。`避免 / 备注` 同时记录禁用中文和禁用英文别名。
|
|
6
|
-
|
|
7
|
-
只有在计划、分诊、调试或架构讨论中明确沉淀出稳定语言时,才新增术语。
|
|
8
|
-
|
|
9
|
-
## 流程术语
|
|
10
|
-
|
|
11
|
-
模板源与生命周期协作概念放在本节。`英文标识` 填 `—`,不回溯补译。
|
|
12
|
-
|
|
13
|
-
| 术语 | 含义 | 英文标识 | 避免 / 备注 |
|
|
14
|
-
|---|---|---|---|
|
|
15
|
-
| Agent | 执行特定工作流步骤的 AI 协作者。 | — | 不要与人工审查者混用。 |
|
|
16
|
-
| Agent 入口规则 | Agent 启动任务时必须先遵守的全局路由、硬门禁和禁止事项。 | — | 不作为 YSS 后端、前端或其他专项编码规范的完整手册。 |
|
|
17
|
-
| 标准文档语言 | 面向业务、产品、架构、实施、审查、发布和复盘的持久化文档所使用的默认语言。 | — | 统一使用简体中文;英文专有名词、代码标识、API 路径、schema、文件名和协议 metadata 保持原样。 |
|
|
18
|
-
| Matt Engineering Skills | 来自 `mattpocock/skills` 的轻量工程流程技能集合。 | — | 用于澄清、Spec、Ticket、实现、TDD、诊断、审查和架构治理,不替代 YSS 专项规范。 |
|
|
19
|
-
| 上游技能基线 | 从外部技能源锁定的可追溯 revision 及其未经项目适配的原始内容。 | — | 不等同于项目当前实际生效的 skill;上游更新不得直接覆盖 YSS 适配。 |
|
|
20
|
-
| YSS 技能适配 | 在上游技能基线之上,为 YSS 仓库身份、门禁、状态、授权和专项规范保留的可追溯差异。 | — | 必须同时保留上游内容哈希、有效内容哈希和适配依据,不作无记录的直接 fork。 |
|
|
21
|
-
| YSS skills | 本项目内置的 YSS 工程规范技能。 | — | 用于 DDD、UI、OpenAPI、Repository、Controller、DTO、组件和编码规范。 |
|
|
22
|
-
| 技能投影 | 从权威共享技能生成、供特定 Agent root 加载的同步副本。 | — | 投影不是独立维护的技能源,不应在各 Agent root 中分别修改。 |
|
|
23
|
-
| Spec | 记录用户问题、解决方案、用户故事、关键决策、验收标准和测试 seam 的产品研发规格。 | — | 新资产统一使用 Spec;旧规格称谓只在迁移记录中保留。 |
|
|
24
|
-
| Spec Delta | 记录相对于既有冻结 Spec 基线的 `ADDED / MODIFIED / REMOVED` 行为、验收场景和测试映射。 | — | 不用于全新产品或全新模块,也不替代完整 Spec、OpenAPI 或架构资产。 |
|
|
25
|
-
| Ticket | 在追踪平台上承载功能生命周期或可实现工作单元的通用追踪对象。 | — | GitHub Issues / GitLab Issues 是具体平台对象名称;领域资产统一称为 Ticket。 |
|
|
26
|
-
| 功能父 Ticket | 汇总一个功能从 Spec 到契约冻结的阶段状态、资产链接、审查结论和阻塞项的 Ticket。 | — | 不作为 Agent 直接实现的垂直切片。 |
|
|
27
|
-
| 垂直切片 Ticket | 契约冻结后生成的可独立验证实现单元,记录范围、阻塞关系、验收标准和验证证据。 | — | 只有通过必要门禁并具备直接实现条件时才能标记 `ready-for-agent`。 |
|
|
28
|
-
| `ready-for-human` | 表示 Spec、设计、契约草案或其他资产仍需人工审查或确认的流程状态。 | — | 此状态不表示可以直接进入实现。 |
|
|
29
|
-
| `ready-for-agent` | 表示垂直切片已通过必要门禁并具备直接实现条件的流程状态。 | — | 不得用于 Spec 初稿、原型、OpenAPI Draft 或其他未冻结资产。 |
|
|
30
|
-
| OpenAPI Draft | review-only 的 OpenAPI 3.1 契约草案。 | — | Freeze 前不得作为前后端稳定实现契约。 |
|
|
31
|
-
| OpenAPI Freeze | 已通过评审、可作为前后端实现和契约测试输入的 OpenAPI 3.1 契约。 | — | Freeze 后变更必须回到 API 影响分析和设计审查。 |
|
|
32
|
-
| YSS 响应包装 | 对外 API 使用 `Result` 基础字段及 `SingleResult`、`MultiResult`、`PageResult` 表达单对象、非分页列表和分页查询结果的统一返回结构。 | — | Java 泛型记法是语义简称;公开 schema 必须落成具体 endpoint wire shape。 |
|
|
33
|
-
| DTO wire shape | DTO 在 HTTP/JSON 边界实际暴露的字段、类型、可空性和方向性;与 Java 字段、getter 或内部协作字段区分。 | — | 以目标 mapper / contract evidence 为准,不从 getter、Lombok 或 `@JsonIgnore` 机械推断。 |
|
|
34
|
-
| UI 影响 | 会改变用户可见页面、导航、交互流程、状态呈现或权限体验的功能影响。 | — | 纯后端、API、批处理或数据变更不自动构成 UI 影响。 |
|
|
35
|
-
| 产品设计影响 | UI 变化触及主流程、导航、权限体验、异常 / 恢复状态、状态流转或 API 反推,需要页面流、状态矩阵和原型校准。 | — | 文案、token、颜色、间距和无行为变化的孤立视觉修复属于 UI 影响,但不自动构成产品设计影响。 |
|
|
36
|
-
| 高保真 HTML 原型 | 低保真原型评审通过后,用于在浏览器中审查真实视觉密度、交互状态和页面流的产品设计资产。 | — | 不等同于生产前端实现,也不替代 OpenAPI、Spec 校准或垂直切片。 |
|
|
37
|
-
| Visual Baseline Contract | 为生产前端还原冻结页面、视口、交互状态、参考图像和允许差异的可验收合同。 | — | 不是仅有一张原型截图或绝对像素匹配;每个基线必须可定位到同一视口和同一状态复验。 |
|
|
38
|
-
| 垂直切片(Vertical Slice) | 贯穿所有受影响层、可独立验证的窄功能路径。 | — | 优先使用垂直切片,避免只按层拆分的横向任务。 |
|
|
39
|
-
| Slice Implementation Contract | 阶段 7 进入实现前,由 `yss-router` 根据冻结资产和垂直切片编译、再由生命周期编排器批准的实现合同,包含 Common、Frontend、Backend、Contract 和 Cross-repo 子合同。 | — | Router 只能生成草案,不能自行批准、设置 `ready-for-agent` 或宣布完成;Backend 子合同仍保留额外强约束。 |
|
|
40
|
-
| YSS Skill Execution Result | YSS 专项 skill 完成工作单元后返回的结构化执行证据,记录合同版本、变更文件、证据文件、实际验证、延期 seam、偏离和新增影响。 | — | 实现者自报 `implemented` 不构成最终通过,必须由 Router、生命周期编排器和独立 Reviewer 复核。 |
|
|
41
|
-
| ADR | 架构决策记录,用于沉淀难以回滚、非显而易见且存在真实取舍的技术决策。 | — | 常规实现选择不要写 ADR。 |
|
|
42
|
-
| Fresh Verification | 完成前重新执行的验证证据,包括测试命令、契约校验、关键路径检查或人工审查结论。 | — | 不等同于“之前跑过”或实现者自述。 |
|
|
43
|
-
| 实现验证命令 | 前端测试 / 构建优先 `pnpm`,后端校验 / 测试 / 编译优先 `./mvnw`。 | — | 不要默认 `npm`、`yarn` 或裸 `mvn`;仓库确实缺少 pnpm 或 Maven Wrapper 时记受控例外。 |
|
|
44
|
-
| 测试质量基线 | 项目实例明确采纳的覆盖率阈值、关键流程清单和受控例外。 | — | 模板推荐值本身不构成可执行门禁;未定义关键流程时,不得声称其 E2E 覆盖率达到 100%。 |
|
|
45
|
-
| 主阶段 | 对相邻研发目标、工作单元和退出条件的粗粒度生命周期分组。 | — | 不等同于门禁编号,也不因增加门禁而自动增加主阶段。 |
|
|
46
|
-
| 生命周期门禁(条件强制门禁) | 只有当影响面命中触发条件时才必须裁决的生命周期审查点。 | — | 未触发时记录 `not-applicable` 及原因,不生成空文档;门禁不是产物、工作单元或证据的统称。 |
|
|
47
|
-
| 生命周期产物 | 生命周期工作单元形成并持久化、可被审查和引用的业务或工程结果。 | — | 文件存在不代表产物已经批准或仍然新鲜。 |
|
|
48
|
-
| 工作单元 | 具有明确输入、输出、允许动作和完成条件的一次有界执行。 | — | 不等同于主阶段或门禁;一个主阶段可以包含多个工作单元。 |
|
|
49
|
-
| 执行证据 | 用于证明工作单元结果、门禁裁决或完成结论的可读取引用和实际验证记录。 | — | 口头声明、计划执行的命令或无法解析的引用不构成执行证据。 |
|
|
50
|
-
| 单一事实来源(Single Source of Truth) | 对某一类流程事实拥有唯一定义权的权威资产。 | — | 其他资产只引用或解释,不重复定义同一规则。 |
|
|
51
|
-
| 流程模板资产 | 可被不同项目复用的文档模板、技能说明、校验脚本、流程规范和目录占位文件。 | — | 不包含某个具体产品的 Spec、设计、OpenAPI 或 Ticket。 |
|
|
52
|
-
| 模板维护流程 | 用于评估影响、修改权威资产、同步投影、执行压力验证并审查模板演进的工作流。 | — | 面向模板源仓库,不默认生成具体产品的 Spec、原型、OpenAPI 或垂直切片 Ticket。 |
|
|
53
|
-
| 模板发布门禁 | 模板源发布前必须通过的结构、技能同步、流程语义和压力场景验证集合。 | — | 不等同于只检查文件存在、Markdown 链接或 YAML 语法。 |
|
|
54
|
-
| Harness 工程 | 串联研发生命周期阶段、门禁、产物、Agent/Skill 编排和追踪证据的工程化治理载体。 | — | 不等同于单个 CI 流水线或零散提示词集合。 |
|
|
55
|
-
| YSS 研发操作系统 | 由生命周期控制、通用工作流、YSS 专项技能、证据反馈和技能供应链共同构成的可版本化研发治理体系。 | — | 不等同于单个主控 skill、某个 Agent 客户端或运行时代码平台。 |
|
|
56
|
-
| 生命周期注册表 | 结构化定义主阶段、门禁、产物、工作单元、证据及其稳定标识和关系的机器可读权威资产。 | — | Markdown 地图、数量说明和验证 fixture 是其派生产物,不应分别维护同一结构事实。 |
|
|
57
|
-
| 生命周期编排器 | 持有阶段、影响面、产物状态、门禁裁决、工作单元路由和恢复条件的研发流程控制平面。 | — | 不替代专项技能执行业务实现,也不以文件存在或执行者自述宣布完成。 |
|
|
58
|
-
| 前端实现还原验证 | 证明生产前端相对冻结 Spec、交互说明、状态矩阵和高保真原型不存在未解释差异的独立验证。 | — | 不是绝对像素复刻、普通 type-check 或原型评审;UI 影响切片需覆盖关键视觉、状态、交互和工程证据。 |
|
|
59
|
-
| 生命周期稳定 ID | 以对象类型命名空间和英文标识唯一指向一个生命周期对象的兼容身份。 | — | 中文名称、展示顺序和数量可以变化;已发布 ID 不得复用来表达另一种语义。 |
|
|
60
|
-
| 派生产物 | 根据生命周期注册表确定性生成的结构表、数量、索引、依赖图或测试 fixture。 | — | 不承载需要人工解释的原理、取舍或实践建议,禁止脱离注册表分别维护。 |
|
|
61
|
-
| 核心技能(Core Skill) | 默认可发现、负责生命周期控制或通用研发入口的稳定技能。 | — | 不包含只在特定技术影响下才需要的专项实现规则。 |
|
|
62
|
-
| 专项技能(Specialist Skill) | 由 Router 根据影响面和实现合同按需选择的前端、后端、OpenAPI 或组件技能。 | — | 不作为所有任务的平级默认入口。 |
|
|
63
|
-
| 试验技能 | 尚未达到项目默认支持成熟度的技能。 | — | 只在明确试验范围内使用,不进入 Router 默认技能闭包。 |
|
|
64
|
-
| 显式兼容入口 | 为已有用户操作习惯保留的 user-invoked 工作流入口,写入前由生命周期编排器预检,结果回交其验收。 | — | 不是默认路径、过时别名或可以越过门禁的第二套生命周期。 |
|
|
65
|
-
| 技能成熟度 | 描述技能从 `draft`、`verified`、`supported` 到 `deprecated` 的治理状态。 | — | 不等同于文件存在、已被投影或能够安装。 |
|
|
66
|
-
| 技能注册表 | 记录技能身份、别名、分层、适用影响面、成熟度、默认可发现性和 Agent 运行时入口的机器可读路由资产。 | — | 不替代 `skills-lock.json` 的来源、hash 和投影完整性职责。当前 `docs/agents/yss-skill-registry.yaml` 为 `shadow`,Router 与生命周期不得按其裁剪发现面。 |
|
|
67
|
-
| LLM Wiki | 由 `raw/`、`wiki/` 与 `.wiki-manifest.json` 组成的本地持久知识库。 | — | 不是 `research` 一次性笔记,也不替代权威源。`ingest` 只把用户点名的外源或已落盘研究笔记编进 IR,不改 live 权威文件。 |
|
|
68
|
-
| 生态发布清单 | 关联模板 schema 与 commit、CLI 版本与快照、公开技能来源与导出 hash 的跨仓发布证据。 | — | 不要求尚未生成的仓库 commit 互相循环引用。 |
|
|
69
|
-
| 研发管理仓库 | 承载 Spec、OpenAPI、架构、Ticket、验证、发布和复盘等研发管理资产的仓库。 | — | 不等同于前端 / 后端代码 monorepo。 |
|
|
70
|
-
| 实现仓库 | 承载前端、后端或其他运行时代码及其 Git、CI、MR / PR、测试命令和发布流水线的仓库。 | — | 不要把实现仓库的源码所有权混入研发管理仓库。 |
|
|
71
|
-
| 跨仓库契约变更 | 需要两个或多个独立仓库协同实现、验证和按顺序发布的共享契约变化。 | — | 任一参与仓库未完成契约对齐和集成验证时,不得单独声称整体可发布。 |
|
|
72
|
-
| 模板源仓库(`template-source`) | 承载 `yss-spec-project-template` 权威模板资产及其演进规则的仓库身份。 | — | 只管理可复用模板,不承载某个具体产品的研发生命周期资产。 |
|
|
73
|
-
| 模板实例仓库(`project-instance`) | 由模板初始化后生成、承载某个具体产品研发生命周期资产的仓库身份。 | — | 不作为通用流程模板的权威来源。 |
|
|
74
|
-
| 模板实例分发面 | 模板源中应随 CLI 快照进入 `project-instance` 的共享生命周期、模板、用户指南和验证资产集合。 | — | 不包含模板源审查、研究、发布路线或源仓库专属 ADR。 |
|
|
75
|
-
| 模板源治理区 | 仅供 `template-source` 使用、保存审查证据、研究记录、跨仓契约、发布路线和源仓库治理决策的归档区域。 | — | 不随 CLI 分发;不等于产品实例的研发管理资产。 |
|
|
76
|
-
| 仓库身份清单 | 显式声明仓库身份和清单结构版本的机器可读资产。 | — | 不承载项目名称、团队规模、Tracker 或其他易变业务配置。 |
|
|
77
|
-
|
|
78
|
-
## 业务术语
|
|
79
|
-
|
|
80
|
-
`project-instance` 在本节新增产品对象。每一行必须有 PascalCase `英文标识`;缺该列视为统一语言未冻结。模板源不放虚构业务行。
|