spec-manager 0.1.1 → 0.2.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.
Files changed (101) hide show
  1. package/README.md +58 -7
  2. package/dist/cli/change.d.ts.map +1 -1
  3. package/dist/cli/change.js +93 -4
  4. package/dist/cli/change.js.map +1 -1
  5. package/dist/cli/index.js +4 -1
  6. package/dist/cli/index.js.map +1 -1
  7. package/dist/cli/project.d.ts.map +1 -1
  8. package/dist/cli/project.js +50 -0
  9. package/dist/cli/project.js.map +1 -1
  10. package/dist/cli/task.d.ts.map +1 -1
  11. package/dist/cli/task.js +146 -41
  12. package/dist/cli/task.js.map +1 -1
  13. package/dist/core/agents.d.ts +17 -0
  14. package/dist/core/agents.d.ts.map +1 -1
  15. package/dist/core/agents.js +43 -1
  16. package/dist/core/agents.js.map +1 -1
  17. package/dist/core/archive.d.ts.map +1 -1
  18. package/dist/core/archive.js +74 -2
  19. package/dist/core/archive.js.map +1 -1
  20. package/dist/core/audit.d.ts +1 -0
  21. package/dist/core/audit.d.ts.map +1 -1
  22. package/dist/core/audit.js +60 -40
  23. package/dist/core/audit.js.map +1 -1
  24. package/dist/core/completion.js +1 -1
  25. package/dist/core/completion.js.map +1 -1
  26. package/dist/core/delta.d.ts +30 -1
  27. package/dist/core/delta.d.ts.map +1 -1
  28. package/dist/core/delta.js +141 -4
  29. package/dist/core/delta.js.map +1 -1
  30. package/dist/core/harness.d.ts +69 -0
  31. package/dist/core/harness.d.ts.map +1 -0
  32. package/dist/core/harness.js +278 -0
  33. package/dist/core/harness.js.map +1 -0
  34. package/dist/core/integrity-exemptions.d.ts +29 -0
  35. package/dist/core/integrity-exemptions.d.ts.map +1 -0
  36. package/dist/core/integrity-exemptions.js +100 -0
  37. package/dist/core/integrity-exemptions.js.map +1 -0
  38. package/dist/core/integrity.d.ts +12 -0
  39. package/dist/core/integrity.d.ts.map +1 -0
  40. package/dist/core/integrity.js +163 -0
  41. package/dist/core/integrity.js.map +1 -0
  42. package/dist/core/invariants.d.ts +5 -0
  43. package/dist/core/invariants.d.ts.map +1 -0
  44. package/dist/core/invariants.js +19 -0
  45. package/dist/core/invariants.js.map +1 -0
  46. package/dist/core/lifecycle.d.ts +37 -0
  47. package/dist/core/lifecycle.d.ts.map +1 -0
  48. package/dist/core/lifecycle.js +70 -0
  49. package/dist/core/lifecycle.js.map +1 -0
  50. package/dist/core/paths.d.ts +3 -0
  51. package/dist/core/paths.d.ts.map +1 -1
  52. package/dist/core/paths.js +19 -1
  53. package/dist/core/paths.js.map +1 -1
  54. package/dist/core/reconciliation.d.ts +25 -0
  55. package/dist/core/reconciliation.d.ts.map +1 -0
  56. package/dist/core/reconciliation.js +122 -0
  57. package/dist/core/reconciliation.js.map +1 -0
  58. package/dist/core/remediation.d.ts +41 -0
  59. package/dist/core/remediation.d.ts.map +1 -0
  60. package/dist/core/remediation.js +169 -0
  61. package/dist/core/remediation.js.map +1 -0
  62. package/dist/core/spec-io.d.ts +2 -0
  63. package/dist/core/spec-io.d.ts.map +1 -1
  64. package/dist/core/spec-io.js +23 -2
  65. package/dist/core/spec-io.js.map +1 -1
  66. package/dist/core/status.d.ts +2 -0
  67. package/dist/core/status.d.ts.map +1 -1
  68. package/dist/core/status.js +7 -0
  69. package/dist/core/status.js.map +1 -1
  70. package/dist/core/task.d.ts +24 -0
  71. package/dist/core/task.d.ts.map +1 -1
  72. package/dist/core/task.js +62 -43
  73. package/dist/core/task.js.map +1 -1
  74. package/dist/core/transaction.d.ts +10 -0
  75. package/dist/core/transaction.d.ts.map +1 -0
  76. package/dist/core/transaction.js +65 -0
  77. package/dist/core/transaction.js.map +1 -0
  78. package/dist/core/usability.d.ts.map +1 -1
  79. package/dist/core/usability.js +50 -13
  80. package/dist/core/usability.js.map +1 -1
  81. package/dist/index.d.ts +7 -0
  82. package/dist/index.d.ts.map +1 -1
  83. package/dist/index.js +7 -0
  84. package/dist/index.js.map +1 -1
  85. package/dist/schemas/change.d.ts +20 -20
  86. package/dist/schemas/spec.d.ts +12 -12
  87. package/package.json +1 -1
  88. package/rules/doc-governance.md +2 -2
  89. package/skill/SKILL.md +12 -9
  90. package/skill/subskills/adr.md +2 -2
  91. package/skill/subskills/change.md +4 -4
  92. package/skill/subskills/design.md +4 -4
  93. package/skill/subskills/impl.md +9 -9
  94. package/skill/subskills/plan.md +1 -1
  95. package/skill/subskills/postmortem.md +1 -1
  96. package/skill/subskills/prd.md +9 -9
  97. package/skill/subskills/release.md +2 -2
  98. package/skill/subskills/runbook.md +1 -1
  99. package/skill/subskills/testplan.md +2 -2
  100. package/templates/L2-design.md +2 -2
  101. package/templates/L3-impl.md +1 -1
@@ -6,6 +6,8 @@ import { readAudit } from './audit.js';
6
6
  import { findSpecByCode, isPlaceholderContent, listAllSpecs } from './spec-io.js';
7
7
  import { listTasks } from './task.js';
8
8
  import { REQUIRED_SECTIONS } from './validate.js';
9
+ import { inspectProjectIntegrity } from './integrity.js';
10
+ import { assessImplementationReadiness } from './lifecycle.js';
9
11
  export function runProjectDoctor(paths) {
10
12
  const checks = [];
11
13
  checks.push(fileCheck(paths.isInitialized, '.spec-manager/', 'Project initialized', 'spec-manager project init', true));
@@ -25,8 +27,8 @@ export function runProjectDoctor(paths) {
25
27
  });
26
28
  const claudeSkill = join(paths.root, '.claude', 'skills', 'spec-manager');
27
29
  if (existsSync(claudeSkill)) {
28
- checks.push(fileCheck(existsSync(join(claudeSkill, 'rules')), '.claude/skills/spec-manager/rules', 'Claude skill rules bundled', 'spec-manager project agents --provider claude --force', false));
29
- checks.push(fileCheck(existsSync(join(claudeSkill, 'templates')), '.claude/skills/spec-manager/templates', 'Claude skill templates bundled', 'spec-manager project agents --provider claude --force', false));
30
+ checks.push(fileCheck(existsSync(join(claudeSkill, 'rules')), '.claude/skills/spec-manager/rules', 'Claude skill rules bundled', 'spec-manager project remediate --migration repository-remediation-v1 --dry-run', false));
31
+ checks.push(fileCheck(existsSync(join(claudeSkill, 'templates')), '.claude/skills/spec-manager/templates', 'Claude skill templates bundled', 'spec-manager project remediate --migration repository-remediation-v1 --dry-run', false));
30
32
  }
31
33
  const codeBuddySkill = join(paths.root, '.codebuddy', 'skills', 'spec-manager');
32
34
  if (existsSync(codeBuddySkill)) {
@@ -55,6 +57,16 @@ export function runProjectDoctor(paths) {
55
57
  blocking: true,
56
58
  });
57
59
  }
60
+ if (paths.isInitialized) {
61
+ const issues = inspectProjectIntegrity(paths);
62
+ checks.push({
63
+ status: issues.length === 0 ? 'ok' : 'warn',
64
+ label: 'Repository integrity',
65
+ detail: issues.length === 0 ? 'No integrity issues' : `${issues.length} issue(s): ${issues.slice(0, 3).map(issue => issue.message).join('; ')}`,
66
+ action: issues.length === 0 ? undefined : 'Review project doctor output and repair issues explicitly',
67
+ blocking: false,
68
+ });
69
+ }
58
70
  return checks;
59
71
  }
60
72
  function fileCheck(condition, detail, label, action, blocking) {
@@ -123,11 +135,19 @@ export function suggestNextActionForTopic(topic, specs, tasks) {
123
135
  if (task.status === 'waiting')
124
136
  return `Resolve wait reason, then spec-manager task start ${task.id} --spec ${task.specCode}`;
125
137
  }
126
- const confirmedNonL3 = specs.find((s) => (s.fm.level === 'L1' || s.fm.level === 'L2') && s.fm.status === 'confirmed');
127
- if (confirmedNonL3?.fm.level === 'L1')
128
- return `spec-manager spec new L2 --topic ${topic} --parent ${confirmedNonL3.fm.code} --title "..."`;
129
- if (confirmedNonL3?.fm.level === 'L2')
130
- return `spec-manager spec new L3 --topic ${topic} --parent ${confirmedNonL3.fm.code} --title "..."`;
138
+ const confirmedNonL3 = specs.find((s) => s.fm.level === 'L2' && s.fm.status === 'confirmed')
139
+ ?? specs.find((s) => s.fm.level === 'L1' && s.fm.status === 'confirmed');
140
+ if (confirmedNonL3) {
141
+ const children = specs.filter(spec => spec.fm.parentCode === confirmedNonL3.fm.code);
142
+ if (children.length === 0) {
143
+ if (confirmedNonL3.fm.level === 'L1')
144
+ return `spec-manager spec new L2 --topic ${topic} --parent ${confirmedNonL3.fm.code} --title "..."`;
145
+ return `spec-manager spec new L3 --topic ${topic} --parent ${confirmedNonL3.fm.code} --title "..."`;
146
+ }
147
+ if (assessImplementationReadinessForSpecs(specs, confirmedNonL3.fm.code)) {
148
+ return 'spec-manager project reconcile --dry-run';
149
+ }
150
+ }
131
151
  return 'No immediate action. Use spec-manager flow status for details.';
132
152
  }
133
153
  export function suggestAfterSpecCommand(spec, paths) {
@@ -144,10 +164,20 @@ export function suggestAfterSpecCommand(spec, paths) {
144
164
  if (spec.fm.level === 'L3' && spec.fm.status === 'frozen') {
145
165
  return appendAdvice(`spec-manager task create ${spec.fm.code} --plan ./plan.json`, paths ? getUpstreamFreezeAdvice(paths, spec) : []);
146
166
  }
147
- if (spec.fm.level === 'L1' && spec.fm.status === 'confirmed')
148
- return `spec-manager spec new L2 --topic ${spec.fm.topic} --parent ${spec.fm.code} --title "..."`;
149
- if (spec.fm.level === 'L2' && spec.fm.status === 'confirmed')
150
- return `spec-manager spec new L3 --topic ${spec.fm.topic} --parent ${spec.fm.code} --title "..."`;
167
+ if ((spec.fm.level === 'L1' || spec.fm.level === 'L2') && spec.fm.status === 'confirmed') {
168
+ if (!paths)
169
+ return 'spec-manager flow status';
170
+ const specs = listAllSpecs(paths);
171
+ const children = specs.filter(child => child.fm.parentCode === spec.fm.code);
172
+ if (children.length === 0) {
173
+ return spec.fm.level === 'L1'
174
+ ? `spec-manager spec new L2 --topic ${spec.fm.topic} --parent ${spec.fm.code} --title "..."`
175
+ : `spec-manager spec new L3 --topic ${spec.fm.topic} --parent ${spec.fm.code} --title "..."`;
176
+ }
177
+ if (assessImplementationReadiness(paths, spec.fm.code, 'project-reconcile').ready) {
178
+ return 'spec-manager project reconcile --dry-run';
179
+ }
180
+ }
151
181
  return 'spec-manager flow status';
152
182
  }
153
183
  export function getUpstreamFreezeAdvice(paths, spec) {
@@ -162,13 +192,20 @@ function getUpstreamFreezeAdviceForSpecs(specs, spec) {
162
192
  const upstream = specs.find((s) => s.fm.code === parentCode);
163
193
  if (!upstream)
164
194
  break;
165
- if (upstream.fm.status !== 'frozen' && upstream.fm.status !== 'implemented') {
166
- advice.push(`Upstream ${upstream.fm.code} is ${upstream.fm.status}; task complete will not cascade it unless it is frozen.`);
195
+ if (upstream.fm.status !== 'confirmed' && upstream.fm.status !== 'implemented') {
196
+ advice.push(`Upstream ${upstream.fm.code} is ${upstream.fm.status}; L1/L2 must be confirmed for task completion to cascade.`);
167
197
  }
168
198
  parentCode = upstream.fm.parentCode;
169
199
  }
170
200
  return advice;
171
201
  }
202
+ function assessImplementationReadinessForSpecs(specs, specCode) {
203
+ const spec = specs.find(item => item.fm.code === specCode);
204
+ if (!spec || spec.fm.status !== 'confirmed' || (spec.fm.level !== 'L1' && spec.fm.level !== 'L2'))
205
+ return false;
206
+ const children = specs.filter(item => item.fm.parentCode === specCode);
207
+ return children.length > 0 && children.every(child => child.fm.status === 'implemented');
208
+ }
172
209
  function appendAdvice(command, advice) {
173
210
  if (advice.length === 0)
174
211
  return command;
@@ -1 +1 @@
1
- {"version":3,"file":"usability.js","sourceRoot":"","sources":["../../src/core/usability.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usability.js","sourceRoot":"","sources":["../../src/core/usability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,YAAY,EAAmB,MAAM,cAAc,CAAC;AACnG,OAAO,EAAE,SAAS,EAAmB,MAAM,WAAW,CAAC;AAEvD,OAAO,EAAE,iBAAiB,EAAkB,MAAM,eAAe,CAAC;AAClE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,6BAA6B,EAAE,MAAM,gBAAgB,CAAC;AAY/D,MAAM,UAAU,gBAAgB,CAAC,KAAmB;IAClD,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;IACxH,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;IAC5I,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;IACzI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;IAC3H,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;IACjI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,UAAU,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,IAAI,CAAC,CAAC,CAAC;IAEjI,MAAM,UAAU,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC/D,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9H,MAAM,CAAC,IAAI,CAAC;QACV,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACtD,KAAK,EAAE,uBAAuB;QAC9B,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC;QAC5G,MAAM,EAAE,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,4CAA4C;QACjG,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAC1E,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,EAAE,mCAAmC,EAAE,4BAA4B,EAAE,gFAAgF,EAAE,KAAK,CAAC,CAAC,CAAC;QAC3N,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,EAAE,uCAAuC,EAAE,gCAAgC,EAAE,gFAAgF,EAAE,KAAK,CAAC,CAAC,CAAC;IACzO,CAAC;IACD,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;IAChF,IAAI,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC,EAAE,sCAAsC,EAAE,+BAA+B,EAAE,0DAA0D,EAAE,KAAK,CAAC,CAAC,CAAC;QAC9M,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC,EAAE,0CAA0C,EAAE,mCAAmC,EAAE,0DAA0D,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5N,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC7D,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1E,MAAM,CAAC,IAAI,CAAC;QACV,MAAM,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;QACjD,KAAK,EAAE,0BAA0B;QACjC,MAAM,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1G,MAAM,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,gGAAgG;QAChJ,QAAQ,EAAE,KAAK;KAChB,CAAC,CAAC;IAEH,IAAI,CAAC;QACH,SAAS,CAAC,KAAK,CAAC,CAAC;QACjB,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC;YACV,MAAM,EAAE,MAAM;YACd,KAAK,EAAE,gBAAgB;YACvB,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC;YACxD,MAAM,EAAE,2DAA2D;YACnE,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC;YACV,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM;YAC3C,KAAK,EAAE,sBAAsB;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,cAAc,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YAC/I,MAAM,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,2DAA2D;YACrG,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,SAAS,CAAC,SAAkB,EAAE,MAAc,EAAE,KAAa,EAAE,MAAe,EAAE,QAAkB;IACvG,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;AAChH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,KAAkB;IACtD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,KAAK,CAAC,QAAQ,CAAC;IACxD,OAAO,KAAK,CAAC,MAAM,KAAK,MAAM,IAAI,uBAAuB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,uBAAuB,CAAC,KAAa;IAC5C,OAAO;QACL,qBAAqB;QACrB,qBAAqB;QACrB,oBAAoB;QACpB,yBAAyB;QACzB,2BAA2B;QAC3B,2BAA2B;QAC3B,gBAAgB;KACjB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpB,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,OAAO,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;AAC1D,CAAC;AAWD,MAAM,UAAU,aAAa,CAAC,KAAmB,EAAE,IAAyB;IAC1E,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,IAAI,IAAI,EAAE,KAAK;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAExC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtF,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1C,OAAO;YACL,KAAK;YACL,KAAK,EAAE,UAAU;YACjB,KAAK;YACL,UAAU,EAAE,yBAAyB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC;SAChE,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,KAAa,EAAE,KAAmB,EAAE,KAAmB;IAC/F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,oCAAoC,KAAK,gBAAgB,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,4BAA4B,WAAW,CAAC,EAAE,CAAC,IAAI,iEAAiE,CAAC;IAC1H,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC;IACzD,IAAI,KAAK;QAAE,OAAO,6BAA6B,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC1F,IAAI,WAAW;QAAE,OAAO,YAAY,CAAC,4BAA4B,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,+BAA+B,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAC7I,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;IACpF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACrH,IAAI,CAAC,IAAI;YAAE,OAAO,YAAY,CAAC,4BAA4B,QAAQ,CAAC,EAAE,CAAC,IAAI,qBAAqB,EAAE,+BAA+B,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;QACpJ,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO;YAAE,OAAO,2BAA2B,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QACjG,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,0BAA0B,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,QAAQ,gEAAgE,CAAC;QAChK,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,OAAO,qDAAqD,IAAI,CAAC,EAAE,WAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/H,CAAC;IACD,MAAM,cAAc,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC;WACvF,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;IAC3E,IAAI,cAAc,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,cAAc,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI;gBAAE,OAAO,oCAAoC,KAAK,aAAa,cAAc,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC;YAC1I,OAAO,oCAAoC,KAAK,aAAa,cAAc,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC;QACtG,CAAC;QACD,IAAI,qCAAqC,CAAC,KAAK,EAAE,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACzE,OAAO,0CAA0C,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,gEAAgE,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAgB,EAAE,KAAoB;IAC5E,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,OAAO,4BAA4B,IAAI,CAAC,EAAE,CAAC,IAAI,kEAAkE,CAAC;IACpH,CAAC;IACD,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;QAChE,OAAO,0DAA0D,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC,MAAM,OAAO,OAAO,GAAG,CAAC;IACpH,CAAC;IACD,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAC7D,OAAO,YAAY,CACjB,yDAAyD,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EACvE,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1D,OAAO,YAAY,CACjB,4BAA4B,IAAI,CAAC,EAAE,CAAC,IAAI,qBAAqB,EAC7D,KAAK,CAAC,CAAC,CAAC,uBAAuB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAClD,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QACzF,IAAI,CAAC,KAAK;YAAE,OAAO,0BAA0B,CAAC;QAC9C,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7E,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI;gBAC3B,CAAC,CAAC,oCAAoC,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB;gBAC5F,CAAC,CAAC,oCAAoC,IAAI,CAAC,EAAE,CAAC,KAAK,aAAa,IAAI,CAAC,EAAE,CAAC,IAAI,gBAAgB,CAAC;QACjG,CAAC;QACD,IAAI,6BAA6B,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;YAClF,OAAO,0CAA0C,CAAC;QACpD,CAAC;IACH,CAAC;IACD,OAAO,0BAA0B,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAmB,EAAE,IAAgB;IAC3E,OAAO,+BAA+B,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;AACpE,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAmB,EAAE,IAAgB;IAC5E,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI;QAAE,OAAO,EAAE,CAAC;IACtC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC;IACpC,OAAO,UAAU,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,QAAQ;YAAE,MAAM;QACrB,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,QAAQ,CAAC,EAAE,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;YAC/E,MAAM,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,EAAE,CAAC,IAAI,OAAO,QAAQ,CAAC,EAAE,CAAC,MAAM,2DAA2D,CAAC,CAAC;QAChI,CAAC;QACD,UAAU,GAAG,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC;IACtC,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qCAAqC,CAAC,KAAmB,EAAE,QAAgB;IAClF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC;IAC3D,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAChH,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC;IACvE,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,YAAY,CAAC,OAAe,EAAE,MAAgB;IACrD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC;IACxC,OAAO,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAmB;IACpD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAmC,CAAC;QAChE,MAAM,OAAO,GAAG,MAAM,EAAE,OAAO,CAAC;QAChC,OAAO,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAmB,EAAE,WAAmB,EAAE,OAAe;IACvF,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,WAAW,EAAE,EAAE,CAAC,KAAK,IAAI,qBAAqB,CAAC,OAAO,CAAC,IAAI,SAAS,CAAC;IACnF,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,WAAW,GAAG,WAAW;QAC7B,CAAC,CAAC,uBAAuB,CAAC,WAAW,EAAE,KAAK,CAAC;QAC7C,CAAC,CAAC,IAAI,EAAE,UAAU,IAAI,oCAAoC,KAAK,gBAAgB,CAAC;IAElF,OAAO;QACL,SAAS,CAAC,MAAM,EAAE,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QACxD,SAAS,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC;QACnE,SAAS,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACpE,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,CAAC;QACtC,SAAS,CAAC,mBAAmB,EAAE,sBAAsB,CAAC,WAAW,CAAC,CAAC;QACnE,SAAS,CAAC,UAAU,EAAE,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACpE,SAAS,CAAC,cAAc,EAAE,WAAW,CAAC;KACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,kBAAkB,CAAC,CAAa,EAAE,CAAa;IACtD,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,WAAmB,EAAE,KAA+B,EAAE,KAAc;IACjG,MAAM,QAAQ,GAAG,KAAK,KAAK,YAAY,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,KAAK,SAAS,CAAC;IAChF,MAAM,MAAM,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1F,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;IACzE,OAAO,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,IAAI,UAAU,CAAC,CAAC;AAC1D,CAAC;AAED,SAAS,kBAAkB,CAAC,KAAmB,EAAE,OAAe;IAC9D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC;AACtE,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAa;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACnE,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,SAAS,eAAe,CAAC,IAAuB,EAAE,OAAe;IAC/D,IAAI,IAAI;QAAE,OAAO,KAAK,IAAI,CAAC,EAAE,CAAC,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC,KAAK,UAAU,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IACnF,OAAO,OAAO,CAAC,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;AACzD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAmB,EAAE,IAAuB;IACvE,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU;QAAE,OAAO,QAAQ,CAAC;IAC1C,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,MAAM;QAAE,OAAO,gBAAgB,IAAI,CAAC,EAAE,CAAC,UAAU,cAAc,CAAC;IACrE,OAAO;QACL,gBAAgB,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE;QAChC,UAAU,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE;QAC3B,WAAW,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE;QAC7B,cAAc,MAAM,CAAC,EAAE,CAAC,SAAS,IAAI,SAAS,EAAE;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,gBAAgB;IACvB,OAAO;QACL,4BAA4B;QAC5B,wCAAwC;QACxC,8CAA8C;QAC9C,qBAAqB;KACtB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAuB;IACrD,IAAI,CAAC,IAAI;QAAE,OAAO,yCAAyC,CAAC;IAC5D,OAAO,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvF,CAAC;AAED,SAAS,mBAAmB,CAAC,WAAmB,EAAE,IAAuB;IACvE,IAAI,CAAC,IAAI;QAAE,OAAO,yCAAyC,CAAC;IAC5D,OAAO,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,IAAY;IAC3C,OAAO,IAAI,IAAI,MAAM,IAAI,OAAO,IAAI,GAAG,CAAC;AAC1C,CAAC"}
package/dist/index.d.ts CHANGED
@@ -7,5 +7,12 @@ export * from './core/agents.js';
7
7
  export * from './core/audit-events.js';
8
8
  export * from './core/repository.js';
9
9
  export * from './core/usability.js';
10
+ export * from './core/invariants.js';
11
+ export * from './core/integrity.js';
12
+ export * from './core/integrity-exemptions.js';
13
+ export * from './core/remediation.js';
14
+ export * from './core/lifecycle.js';
15
+ export * from './core/reconciliation.js';
16
+ export * from './core/transaction.js';
10
17
  export * from './schemas/spec.js';
11
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -8,5 +8,12 @@ export * from './core/agents.js';
8
8
  export * from './core/audit-events.js';
9
9
  export * from './core/repository.js';
10
10
  export * from './core/usability.js';
11
+ export * from './core/invariants.js';
12
+ export * from './core/integrity.js';
13
+ export * from './core/integrity-exemptions.js';
14
+ export * from './core/remediation.js';
15
+ export * from './core/lifecycle.js';
16
+ export * from './core/reconciliation.js';
17
+ export * from './core/transaction.js';
11
18
  export * from './schemas/spec.js';
12
19
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,yBAAyB;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -23,23 +23,23 @@ export declare const ChangeEntrySchema: z.ZodObject<{
23
23
  }, "strip", z.ZodTypeAny, {
24
24
  code: string;
25
25
  op: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
26
- content?: string | undefined;
26
+ parentCode?: string | null | undefined;
27
27
  level?: "L0" | "L1" | "L2" | "L3" | undefined;
28
28
  title?: string | undefined;
29
- parentCode?: string | null | undefined;
29
+ content?: string | undefined;
30
+ newCode?: string | undefined;
30
31
  changeSummary?: string | undefined;
31
32
  affectedCriteria?: string[] | undefined;
32
- newCode?: string | undefined;
33
33
  }, {
34
34
  code: string;
35
35
  op: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
36
- content?: string | undefined;
36
+ parentCode?: string | null | undefined;
37
37
  level?: "L0" | "L1" | "L2" | "L3" | undefined;
38
38
  title?: string | undefined;
39
- parentCode?: string | null | undefined;
39
+ content?: string | undefined;
40
+ newCode?: string | undefined;
40
41
  changeSummary?: string | undefined;
41
42
  affectedCriteria?: string[] | undefined;
42
- newCode?: string | undefined;
43
43
  }>;
44
44
  export declare const DeltaSpecSchema: z.ZodObject<{
45
45
  name: z.ZodString;
@@ -58,35 +58,35 @@ export declare const DeltaSpecSchema: z.ZodObject<{
58
58
  }, "strip", z.ZodTypeAny, {
59
59
  code: string;
60
60
  op: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
61
- content?: string | undefined;
61
+ parentCode?: string | null | undefined;
62
62
  level?: "L0" | "L1" | "L2" | "L3" | undefined;
63
63
  title?: string | undefined;
64
- parentCode?: string | null | undefined;
64
+ content?: string | undefined;
65
+ newCode?: string | undefined;
65
66
  changeSummary?: string | undefined;
66
67
  affectedCriteria?: string[] | undefined;
67
- newCode?: string | undefined;
68
68
  }, {
69
69
  code: string;
70
70
  op: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
71
- content?: string | undefined;
71
+ parentCode?: string | null | undefined;
72
72
  level?: "L0" | "L1" | "L2" | "L3" | undefined;
73
73
  title?: string | undefined;
74
- parentCode?: string | null | undefined;
74
+ content?: string | undefined;
75
+ newCode?: string | undefined;
75
76
  changeSummary?: string | undefined;
76
77
  affectedCriteria?: string[] | undefined;
77
- newCode?: string | undefined;
78
78
  }>, "many">;
79
79
  }, "strip", z.ZodTypeAny, {
80
80
  changes: {
81
81
  code: string;
82
82
  op: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
83
- content?: string | undefined;
83
+ parentCode?: string | null | undefined;
84
84
  level?: "L0" | "L1" | "L2" | "L3" | undefined;
85
85
  title?: string | undefined;
86
- parentCode?: string | null | undefined;
86
+ content?: string | undefined;
87
+ newCode?: string | undefined;
87
88
  changeSummary?: string | undefined;
88
89
  affectedCriteria?: string[] | undefined;
89
- newCode?: string | undefined;
90
90
  }[];
91
91
  name: string;
92
92
  created?: string | undefined;
@@ -95,13 +95,13 @@ export declare const DeltaSpecSchema: z.ZodObject<{
95
95
  changes: {
96
96
  code: string;
97
97
  op: "ADDED" | "MODIFIED" | "REMOVED" | "RENAMED";
98
- content?: string | undefined;
98
+ parentCode?: string | null | undefined;
99
99
  level?: "L0" | "L1" | "L2" | "L3" | undefined;
100
100
  title?: string | undefined;
101
- parentCode?: string | null | undefined;
101
+ content?: string | undefined;
102
+ newCode?: string | undefined;
102
103
  changeSummary?: string | undefined;
103
104
  affectedCriteria?: string[] | undefined;
104
- newCode?: string | undefined;
105
105
  }[];
106
106
  name: string;
107
107
  created?: string | undefined;
@@ -119,16 +119,16 @@ export declare const ProposalSchema: z.ZodObject<{
119
119
  name: string;
120
120
  why: string;
121
121
  scope: string;
122
- created?: string | undefined;
123
122
  affectedCriteria?: string[] | undefined;
123
+ created?: string | undefined;
124
124
  risk?: string | undefined;
125
125
  rollback?: string | undefined;
126
126
  }, {
127
127
  name: string;
128
128
  why: string;
129
129
  scope: string;
130
- created?: string | undefined;
131
130
  affectedCriteria?: string[] | undefined;
131
+ created?: string | undefined;
132
132
  risk?: string | undefined;
133
133
  rollback?: string | undefined;
134
134
  }>;
@@ -108,12 +108,12 @@ export declare const SpecFrontmatterSchema: z.ZodObject<{
108
108
  changeSummary: z.ZodOptional<z.ZodString>;
109
109
  }, "strip", z.ZodTypeAny, {
110
110
  project: number;
111
- status: "draft" | "confirmed" | "frozen" | "implemented" | "archived";
112
- topic: string;
113
111
  code: string;
112
+ status: "draft" | "confirmed" | "frozen" | "implemented" | "archived";
113
+ parentCode: string | null;
114
114
  level: "L0" | "L1" | "L2" | "L3";
115
115
  title: string;
116
- parentCode: string | null;
116
+ topic: string;
117
117
  aiSummary: string;
118
118
  coveredTasks: string[];
119
119
  relations: {
@@ -133,18 +133,18 @@ export declare const SpecFrontmatterSchema: z.ZodObject<{
133
133
  latencyMs?: number | undefined;
134
134
  reportedAt?: string | undefined;
135
135
  }[] | undefined;
136
+ changeSummary?: string | undefined;
137
+ created?: string | undefined;
136
138
  id?: string | undefined;
137
139
  milestone?: string | undefined;
138
- created?: string | undefined;
139
140
  updated?: string | undefined;
140
- changeSummary?: string | undefined;
141
141
  }, {
142
- status: "draft" | "confirmed" | "frozen" | "implemented" | "archived";
143
- topic: string;
144
142
  code: string;
143
+ status: "draft" | "confirmed" | "frozen" | "implemented" | "archived";
144
+ parentCode: string | null;
145
145
  level: "L0" | "L1" | "L2" | "L3";
146
146
  title: string;
147
- parentCode: string | null;
147
+ topic: string;
148
148
  project?: number | undefined;
149
149
  steps?: {
150
150
  stepNo: string | number;
@@ -159,6 +159,8 @@ export declare const SpecFrontmatterSchema: z.ZodObject<{
159
159
  latencyMs?: number | undefined;
160
160
  reportedAt?: string | undefined;
161
161
  }[] | undefined;
162
+ changeSummary?: string | undefined;
163
+ created?: string | undefined;
162
164
  id?: string | undefined;
163
165
  milestone?: string | undefined;
164
166
  aiSummary?: string | undefined;
@@ -167,9 +169,7 @@ export declare const SpecFrontmatterSchema: z.ZodObject<{
167
169
  type: "based_on" | "supersedes" | "implements" | "references";
168
170
  target: string;
169
171
  }[] | undefined;
170
- created?: string | undefined;
171
172
  updated?: string | undefined;
172
- changeSummary?: string | undefined;
173
173
  }>;
174
174
  export declare const PlanStepSchema: z.ZodObject<{
175
175
  stepNo: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
@@ -222,12 +222,12 @@ export declare const DecisionInputSchema: z.ZodObject<{
222
222
  }, "strip", z.ZodTypeAny, {
223
223
  topic: string;
224
224
  what: string;
225
- why?: string | undefined;
226
225
  affectedCriteria?: string[] | undefined;
226
+ why?: string | undefined;
227
227
  }, {
228
228
  topic: string;
229
229
  what: string;
230
- why?: string | undefined;
231
230
  affectedCriteria?: string[] | undefined;
231
+ why?: string | undefined;
232
232
  }>;
233
233
  //# sourceMappingURL=spec.d.ts.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "spec-manager",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "spec-manager: local-first spec-driven development platform. Pure markdown storage, no network, no MCP. Portable CLI + multi-agent instructions.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -76,8 +76,8 @@ applies_to: [L2_write, L3_write]
76
76
 
77
77
  ✅ 正确:
78
78
 
79
- - L2: `本 L2 实现 2026-06-04-a1b2c3 的目标 3(演进闭环)。L1 的用户故事详见其正文。`
80
- - L3: `本 L3 对应 2026-06-05-b2c3d4 的 L3 裂变计划,落地 5 份模板文件。`
79
+ - L2: `本 L2 实现 auth-L1 的目标 3(演进闭环)。L1 的用户故事详见其正文。`
80
+ - L3: `本 L3 对应 auth-L2.1 的 L3 裂变计划,落地 5 份模板文件。`
81
81
 
82
82
  ❌ 错误:
83
83
 
package/skill/SKILL.md CHANGED
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: spec-manager
2
3
  description: "Spec-driven project iteration workflow — L1 PRD → L2 Design → L3 Impl → Agent Task → Deploy, with human review gates at each layer. Pure local markdown storage, no MCP, no network. Use when the user invokes /spec-manager or asks for: new feature/PRD, technical design, implementation spec, agent task, iteration plan, test plan, release notes, runbook, postmortem, or ADR."
3
4
  argument-hint: "<需求描述> | run <taskId>"
4
5
  ---
@@ -56,12 +57,12 @@ PRD → Design → Spec → Agent Task → 部署。**纯本地**,所有数据
56
57
 
57
58
  | 主题 | 规则 | 文件 |
58
59
  |---|---|---|
59
- | 流程控制 | R1-R4 停下审核/状态归用户/frozen 才建 Task | [rules/flow-control.md](rules/flow-control.md) |
60
- | 质量门禁 | R5/R6/R10/R15/R18 不跳步/planJson 校验 | [rules/quality-gate.md](rules/quality-gate.md) |
61
- | 文档治理 | R7/R11/R13/R14/R16-R22 层级绑定/aiSummary | [rules/doc-governance.md](rules/doc-governance.md) |
62
- | 代码纪律 | R8/R9/R12 改代码前自检 | [rules/code-discipline.md](rules/code-discipline.md) |
63
- | 代码调查 | R23 Spec 前必须基于实际代码 | [rules/codebase-survey.md](rules/codebase-survey.md) |
64
- | Delta | R24 delta 必须含 proposal | [rules/delta.md](rules/delta.md) |
60
+ | 流程控制 | R1-R4 停下审核/状态归用户/frozen 才建 Task | [rules/flow-control.md](../rules/flow-control.md) |
61
+ | 质量门禁 | R5/R6/R10/R15/R18 不跳步/planJson 校验 | [rules/quality-gate.md](../rules/quality-gate.md) |
62
+ | 文档治理 | R7/R11/R13/R14/R16-R22 层级绑定/aiSummary | [rules/doc-governance.md](../rules/doc-governance.md) |
63
+ | 代码纪律 | R8/R9/R12 改代码前自检 | [rules/code-discipline.md](../rules/code-discipline.md) |
64
+ | 代码调查 | R23 Spec 前必须基于实际代码 | [rules/codebase-survey.md](../rules/codebase-survey.md) |
65
+ | Delta | R24 delta 必须含 proposal | [rules/delta.md](../rules/delta.md) |
65
66
 
66
67
  ## Spec 状态流
67
68
 
@@ -89,9 +90,9 @@ L3: draft → frozen → implemented
89
90
  <project>/
90
91
  ├── .spec-manager/ # config + audit + incidents
91
92
  ├── specs/<topic>/ # spec 平铺(点分编号自文档化层级)
92
- │ ├── <L1-code>-<date>.md
93
- │ ├── <L2-code>-<date>.md
94
- │ ├── <L3-code>[-desc]-<date>.md
93
+ │ ├── <topic>-L1.md # 如 auth-L1.md
94
+ │ ├── <topic>-L2.1.md # 如 auth-L2.1.md
95
+ │ ├── <topic>-L3.1.1[-desc].md # 如 auth-L3.1.1-jwt.md
95
96
  │ ├── decisions/ # 决策卡片(topic 级别)
96
97
  │ └── tasks/ # Agent Task(topic 级别)
97
98
  │ └── <specCode>-<taskId>.json
@@ -99,4 +100,6 @@ L3: draft → frozen → implemented
99
100
  └── archive/<name>/ # 已合并 change
100
101
  ```
101
102
 
103
+ **文件命名规则**:`<topic>-L<level>[.<序号>][.<序号>][-desc].md`,点分编号自文档化层级关系,topic 前缀必填。必须通过 CLI 命令创建,不要用 Write 工具直接写文件。
104
+
102
105
  违反任一规则视为流程事故,参照 `.spec-manager/incidents/_TEMPLATE.md` 记录。
@@ -20,7 +20,7 @@
20
20
  2. 必走:
21
21
 
22
22
  ```bash
23
- spec-manager decision create 2026-06-04-a1b2c3 \
23
+ spec-manager decision create auth-L1 \
24
24
  --topic auth \
25
25
  --what "采用 JWT 而非 session" \
26
26
  --why "无状态扩展,便于多服务共享身份" \
@@ -63,7 +63,7 @@ JWT 有 alg=none 等已知攻击面...
63
63
  - 决策卡片:DC-002
64
64
 
65
65
  ## 关联
66
- - spec: 2026-06-04-a1b2c3
66
+ - spec: auth-L1
67
67
  - decision: DC-002
68
68
  EOF
69
69
  ```
@@ -43,12 +43,12 @@ affectedCriteria:
43
43
 
44
44
  ```markdown
45
45
  ---
46
- code: 2026-06-04-a1b2c3
46
+ code: auth-L1
47
47
  ---
48
48
 
49
49
  ## MODIFIED Requirements
50
50
 
51
- ### Requirement: 2026-06-04-a1b2c3
51
+ ### Requirement: auth-L1
52
52
  ## 2FA 强制
53
53
 
54
54
  登录成功后系统 **SHALL** 要求 TOTP 二次校验。
@@ -98,8 +98,8 @@ spec-manager change archive add-2fa
98
98
  ```
99
99
  ✓ Change add-2fa archived
100
100
  applied: 2
101
- [MODIFIED] 2026-06-04-a1b2c3
102
- [ADDED] 2026-06-05-d4e5f6
101
+ [MODIFIED] auth-L1
102
+ [ADDED] auth-L3.1.1-new-feature
103
103
  archived to: archive/add-2fa
104
104
  ```
105
105
 
@@ -19,7 +19,7 @@
19
19
  3. **Level 2 代码调查**(R23):Read ≥3 个源文件了解模块
20
20
  4. **创建 L2**:
21
21
  ```bash
22
- spec-manager spec new L2 --topic <topic> --title "..." --parent <L1 code> # --code 不传则自动生成
22
+ spec-manager spec new L2 --topic <topic> --title "..." --parent <L1 code> # --code 不传则自动生成 <topic>-L2.N
23
23
  ```
24
24
  > 🔍 **R7 自检**: L2 是否绑定了父 L1?→ `spec-manager audit hit R7`
25
25
  5. **写正文**:
@@ -48,6 +48,6 @@ R1 / R2 / R4 / R7 / R13 / R14 / R17 / R19 / R22 / R23
48
48
 
49
49
  | 规则 ID | 文件 | 适用场景 |
50
50
  |---|---|---|
51
- | R7/R14/R17 | [rules/doc-governance.md](../rules/doc-governance.md) | 层级绑定 / 跨层引用 / 架构拆解 |
52
- | R19 | [rules/doc-governance.md](../rules/doc-governance.md) | 写 L2 前必读父 L1 全文 |
53
- | R23 | [rules/codebase-survey.md](../rules/codebase-survey.md) | Level 2 模块深潜(≥3 源文件) |
51
+ | R7/R14/R17 | [rules/doc-governance.md](../../rules/doc-governance.md) | 层级绑定 / 跨层引用 / 架构拆解 |
52
+ | R19 | [rules/doc-governance.md](../../rules/doc-governance.md) | 写 L2 前必读父 L1 全文 |
53
+ | R23 | [rules/codebase-survey.md](../../rules/codebase-survey.md) | Level 2 模块深潜(≥3 源文件) |
@@ -24,7 +24,7 @@
24
24
  > ☑ **R23** / **R12** / **R8** — 流程规则,人工把关
25
25
  4. **创建 L3**:
26
26
  ```bash
27
- spec-manager spec new L3 --topic <topic> --title "..." --parent <L2 code> # --code 不传则自动生成
27
+ spec-manager spec new L3 --topic <topic> --title "..." --parent <L2 code> # --code 不传则自动生成 <topic>-L3.N.M[-desc]
28
28
  ```
29
29
  > ☑ **R20** — 流程规则:scope-split L2 时所有子 L3 一次建齐
30
30
  5. **写正文**:
@@ -57,7 +57,7 @@
57
57
  ```
58
58
  > ☑ **R3** — 非 frozen 时 CLI 拒绝并 audit hit
59
59
  10. `spec-manager task start <task-id>`
60
- 11. 逐步 `spec-manager task step <task-id> --no N --type T --name S --status ok --output-json J --latency L`
60
+ 11. 逐步 `spec-manager task step <task-id> --no N --type T --name S --status succeeded --output-json J --latency L`
61
61
  - 禁跳步(R5)
62
62
  - outputJson 必含 summary(R15)
63
63
  - step_report 必须在工作完成后才报(R15)
@@ -87,13 +87,13 @@ R1 / R2 / R3 / R4 / R5 / R6 / R7 / R8 / R10 / R11 / R12 / R13 / R14 / R15 / R18
87
87
 
88
88
  | 规则 ID | 文件 | 适用场景 | 类型 |
89
89
  |---|---|---|---|
90
- | R1/R2/R4 | [rules/flow-control.md](../rules/flow-control.md) | 停下审核 / 状态归用户 / 每层独立 | 流程 |
91
- | R3/R5/R6 | [rules/flow-control.md](../rules/flow-control.md) + [rules/quality-gate.md](../rules/quality-gate.md) | frozen 才建 Task / 不跳步 / task 后校验 | 流程 + 代码 |
92
- | R7/R11/R13/R14/R22 | [rules/doc-governance.md](../rules/doc-governance.md) | 层级绑定 / 粒度 / aiSummary / 跨层引用 / 创建即写正文 | 代码 + 流程 |
93
- | R8/R12 | [rules/code-discipline.md](../rules/code-discipline.md) | 改代码前自检 / 禁凭记忆 | 流程 |
94
- | R10/R15/R18 | [rules/quality-gate.md](../rules/quality-gate.md) | planJson 必含验证 / step 必含 summary / 决策卡片 | 代码 |
95
- | R20 | [rules/doc-governance.md](../rules/doc-governance.md) | scope-split 批量建齐 | 流程 |
96
- | R23 | [rules/codebase-survey.md](../rules/codebase-survey.md) | Level 3 文件级分析 | 流程 |
90
+ | R1/R2/R4 | [rules/flow-control.md](../../rules/flow-control.md) | 停下审核 / 状态归用户 / 每层独立 | 流程 |
91
+ | R3/R5/R6 | [rules/flow-control.md](../../rules/flow-control.md) + [rules/quality-gate.md](../../rules/quality-gate.md) | frozen 才建 Task / 不跳步 / task 后校验 | 流程 + 代码 |
92
+ | R7/R11/R13/R14/R22 | [rules/doc-governance.md](../../rules/doc-governance.md) | 层级绑定 / 粒度 / aiSummary / 跨层引用 / 创建即写正文 | 代码 + 流程 |
93
+ | R8/R12 | [rules/code-discipline.md](../../rules/code-discipline.md) | 改代码前自检 / 禁凭记忆 | 流程 |
94
+ | R10/R15/R18 | [rules/quality-gate.md](../../rules/quality-gate.md) | planJson 必含验证 / step 必含 summary / 决策卡片 | 代码 |
95
+ | R20 | [rules/doc-governance.md](../../rules/doc-governance.md) | scope-split 批量建齐 | 流程 |
96
+ | R23 | [rules/codebase-survey.md](../../rules/codebase-survey.md) | Level 3 文件级分析 | 流程 |
97
97
 
98
98
  **类型说明**:
99
99
  - **代码**:违反时 CLI 自动抛错或 audit hit
@@ -14,7 +14,7 @@
14
14
  3. 写 `plan.md`:
15
15
 
16
16
  ```bash
17
- spec-manager spec show 2026-06-04-b2c3d4 --include-content
17
+ spec-manager spec show auth-L2.1 --include-content
18
18
  ```
19
19
 
20
20
  4. `plan.md` 结构:
@@ -45,7 +45,7 @@ R15 是软约束(warning),缺乏 hard fail 机制
45
45
 
46
46
  ## 关联
47
47
  - incident: INC-20260604-001
48
- - spec: 2026-06-04-c3d4e5
48
+ - spec: auth-L3.1.1
49
49
  - 规则: R15
50
50
  EOF
51
51
  ```
@@ -32,7 +32,7 @@
32
32
  > ☑ **R16** — 流程规则:查重确认无重复 L1
33
33
  4. **创建 L1**:
34
34
  ```bash
35
- spec-manager spec new L1 --topic <topic> --title "..." # --code 不传则自动生成 <YYYY-MM-DD>-<shortId>
35
+ spec-manager spec new L1 --topic <topic> --title "..." # --code 不传则自动生成 <topic>-L1
36
36
  ```
37
37
  5. **写正文**:把 L1-prd.md 模板填好后写到文件
38
38
  ```bash
@@ -62,11 +62,11 @@ R1 / R2 / R4 / R7 / R13 / R14 / R16 / R17 / R19 / R22 / R23
62
62
 
63
63
  | 规则 ID | 文件 | 适用场景 | 类型 |
64
64
  |---|---|---|---|
65
- | R1/R2/R4 | [rules/flow-control.md](../rules/flow-control.md) | 停下审核 / 状态归用户 / 每层独立 | 流程 |
66
- | R7 | [rules/doc-governance.md](../rules/doc-governance.md) | 层级绑定(虽 L1 无父,但确认子层要绑) | 代码 |
67
- | R13/R21 | [rules/doc-governance.md](../rules/doc-governance.md) | aiSummary 必传 + ≤300 字符 | 代码 |
68
- | R14 | [rules/doc-governance.md](../rules/doc-governance.md) | 跨层引用 — L1 不复述上层 | 流程 |
69
- | R16 | [rules/doc-governance.md](../rules/doc-governance.md) | L1 去重搜索 | 流程 |
70
- | R19 | [rules/doc-governance.md](../rules/doc-governance.md) | 研究期读 aiSummary 而非全文 | 流程 |
71
- | R22 | [rules/doc-governance.md](../rules/doc-governance.md) | 创建后立即写正文 | 代码(CLI 在 `confirm` 时强制) |
72
- | R23 | [rules/codebase-survey.md](../rules/codebase-survey.md) | 写 L1 前 Level 1 架构概览 | 流程 |
65
+ | R1/R2/R4 | [rules/flow-control.md](../../rules/flow-control.md) | 停下审核 / 状态归用户 / 每层独立 | 流程 |
66
+ | R7 | [rules/doc-governance.md](../../rules/doc-governance.md) | 层级绑定(虽 L1 无父,但确认子层要绑) | 代码 |
67
+ | R13/R21 | [rules/doc-governance.md](../../rules/doc-governance.md) | aiSummary 必传 + ≤300 字符 | 代码 |
68
+ | R14 | [rules/doc-governance.md](../../rules/doc-governance.md) | 跨层引用 — L1 不复述上层 | 流程 |
69
+ | R16 | [rules/doc-governance.md](../../rules/doc-governance.md) | L1 去重搜索 | 流程 |
70
+ | R19 | [rules/doc-governance.md](../../rules/doc-governance.md) | 研究期读 aiSummary 而非全文 | 流程 |
71
+ | R22 | [rules/doc-governance.md](../../rules/doc-governance.md) | 创建后立即写正文 | 代码(CLI 在 `confirm` 时强制) |
72
+ | R23 | [rules/codebase-survey.md](../../rules/codebase-survey.md) | 写 L1 前 Level 1 架构概览 | 流程 |