specweave 0.30.16 → 0.30.18

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 (80) hide show
  1. package/CLAUDE.md +43 -0
  2. package/dist/src/cli/commands/plan/increment-detector.js +2 -2
  3. package/dist/src/cli/commands/plan/increment-detector.js.map +1 -1
  4. package/dist/src/cli/commands/plan/plan-orchestrator.js +1 -1
  5. package/dist/src/cli/commands/plan/plan-orchestrator.js.map +1 -1
  6. package/dist/src/cli/commands/plan/plan-validator.js +1 -1
  7. package/dist/src/cli/commands/plan/plan-validator.js.map +1 -1
  8. package/dist/src/cli/workers/living-docs-worker.js +80 -44
  9. package/dist/src/cli/workers/living-docs-worker.js.map +1 -1
  10. package/dist/src/core/increment/active-increment-manager.js +1 -1
  11. package/dist/src/core/increment/active-increment-manager.js.map +1 -1
  12. package/dist/src/core/increment/metadata-manager.d.ts +1 -1
  13. package/dist/src/core/increment/metadata-manager.d.ts.map +1 -1
  14. package/dist/src/core/increment/metadata-manager.js +7 -7
  15. package/dist/src/core/increment/metadata-manager.js.map +1 -1
  16. package/dist/src/core/living-docs/hierarchy-mapper.d.ts.map +1 -1
  17. package/dist/src/core/living-docs/hierarchy-mapper.js +12 -18
  18. package/dist/src/core/living-docs/hierarchy-mapper.js.map +1 -1
  19. package/dist/src/core/living-docs/living-docs-sync.d.ts +49 -24
  20. package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -1
  21. package/dist/src/core/living-docs/living-docs-sync.js +207 -96
  22. package/dist/src/core/living-docs/living-docs-sync.js.map +1 -1
  23. package/dist/src/core/llm/index.d.ts +1 -0
  24. package/dist/src/core/llm/index.d.ts.map +1 -1
  25. package/dist/src/core/llm/index.js +2 -0
  26. package/dist/src/core/llm/index.js.map +1 -1
  27. package/dist/src/core/llm/providers/anthropic-provider.d.ts.map +1 -1
  28. package/dist/src/core/llm/providers/anthropic-provider.js +15 -26
  29. package/dist/src/core/llm/providers/anthropic-provider.js.map +1 -1
  30. package/dist/src/core/llm/providers/azure-openai-provider.d.ts.map +1 -1
  31. package/dist/src/core/llm/providers/azure-openai-provider.js +13 -5
  32. package/dist/src/core/llm/providers/azure-openai-provider.js.map +1 -1
  33. package/dist/src/core/llm/providers/bedrock-provider.d.ts.map +1 -1
  34. package/dist/src/core/llm/providers/bedrock-provider.js +12 -8
  35. package/dist/src/core/llm/providers/bedrock-provider.js.map +1 -1
  36. package/dist/src/core/llm/providers/claude-code-provider.d.ts.map +1 -1
  37. package/dist/src/core/llm/providers/claude-code-provider.js +15 -25
  38. package/dist/src/core/llm/providers/claude-code-provider.js.map +1 -1
  39. package/dist/src/core/llm/providers/ollama-provider.d.ts.map +1 -1
  40. package/dist/src/core/llm/providers/ollama-provider.js +12 -9
  41. package/dist/src/core/llm/providers/ollama-provider.js.map +1 -1
  42. package/dist/src/core/llm/providers/openai-provider.d.ts.map +1 -1
  43. package/dist/src/core/llm/providers/openai-provider.js +13 -6
  44. package/dist/src/core/llm/providers/openai-provider.js.map +1 -1
  45. package/dist/src/core/llm/providers/vertex-ai-provider.d.ts.map +1 -1
  46. package/dist/src/core/llm/providers/vertex-ai-provider.js +12 -8
  47. package/dist/src/core/llm/providers/vertex-ai-provider.js.map +1 -1
  48. package/dist/src/utils/feature-id-collision.d.ts +28 -0
  49. package/dist/src/utils/feature-id-collision.d.ts.map +1 -1
  50. package/dist/src/utils/feature-id-collision.js +83 -0
  51. package/dist/src/utils/feature-id-collision.js.map +1 -1
  52. package/dist/src/utils/llm-json-extractor.d.ts +105 -0
  53. package/dist/src/utils/llm-json-extractor.d.ts.map +1 -0
  54. package/dist/src/utils/llm-json-extractor.js +336 -0
  55. package/dist/src/utils/llm-json-extractor.js.map +1 -0
  56. package/dist/src/utils/structure-level-detector.d.ts +105 -0
  57. package/dist/src/utils/structure-level-detector.d.ts.map +1 -0
  58. package/dist/src/utils/structure-level-detector.js +388 -0
  59. package/dist/src/utils/structure-level-detector.js.map +1 -0
  60. package/package.json +1 -1
  61. package/plugins/specweave/commands/specweave-increment.md +57 -9
  62. package/plugins/specweave/commands/specweave-qa.md +34 -4
  63. package/plugins/specweave/commands/specweave-sync-specs.md +37 -6
  64. package/plugins/specweave/commands/specweave-validate.md +41 -1
  65. package/plugins/specweave/hooks/hooks.json +10 -0
  66. package/plugins/specweave/hooks/spec-project-validator.sh +111 -0
  67. package/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js +1 -1
  68. package/plugins/specweave/lib/vendor/core/increment/active-increment-manager.js.map +1 -1
  69. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.d.ts +1 -1
  70. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js +7 -7
  71. package/plugins/specweave/lib/vendor/core/increment/metadata-manager.js.map +1 -1
  72. package/plugins/specweave/skills/increment-planner/SKILL.md +109 -10
  73. package/plugins/specweave/skills/increment-planner/templates/spec-multi-project.md +2 -0
  74. package/plugins/specweave/skills/increment-planner/templates/spec-single-project.md +1 -0
  75. package/plugins/specweave/skills/increment-quality-judge-v2/SKILL.md +41 -2
  76. package/plugins/specweave/skills/multi-project-spec-mapper/SKILL.md +24 -1
  77. package/plugins/specweave/skills/spec-generator/SKILL.md +18 -0
  78. package/plugins/specweave/skills/specweave-framework/SKILL.md +25 -0
  79. package/plugins/specweave-github/hooks/.specweave/logs/hooks-debug.log +14 -0
  80. package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +21 -0
@@ -103,22 +103,53 @@ await syncSpecs(args);
103
103
 
104
104
  **This will**:
105
105
  1. **Derive feature ID from increment number** (e.g., 0040 → FS-040, 0002 → FS-002)
106
- 2. **Smart project matching** from (priority order):
107
- - `**Project**:` field in spec.md (explicit)
106
+ 2. **Read project/board from spec.md YAML frontmatter** (v0.31.0+ REQUIRED):
107
+ - For 1-level: `project:` field REQUIRED
108
+ - For 2-level: `project:` AND `board:` fields REQUIRED
109
+ - See [ADR-0190](/internal/architecture/adr/0190-spec-project-board-requirement.md)
110
+ 3. **Smart project matching fallback** (only if YAML fields missing - deprecated):
111
+ - `**Project**:` field in spec.md body (legacy)
108
112
  - `multiProject.activeProject` in config.json
109
113
  - ADO area path / JIRA board mapping
110
114
  - Git remote (repo name)
111
115
  - **ASK USER if unsure** (multi-project mode)
112
- 3. Parse spec.md for user stories and acceptance criteria
113
- 4. Create living docs structure:
114
- - `.specweave/docs/internal/specs/{project}/FS-XXX/FEATURE.md`
115
- - `.specweave/docs/internal/specs/{project}/FS-XXX/us-*.md`
116
+ 4. Parse spec.md for user stories and acceptance criteria
117
+ 5. Create living docs structure:
118
+ - 1-level: `.specweave/docs/internal/specs/{project}/FS-XXX/`
119
+ - 2-level: `.specweave/docs/internal/specs/{project}/{board}/FS-XXX/`
116
120
 
117
121
  **CRITICAL**: Feature ID is DERIVED from increment number (ADR-0187)
118
122
  - Increment 0002-user-authentication → FS-002
119
123
  - Increment 0040-some-feature → FS-040
120
124
  - NO date-based patterns like FS-YY-MM-DD-name
121
125
 
126
+ ### 3.2 Project/Board Validation (v0.31.0+)
127
+
128
+ **Structure Level Detection** (from `src/utils/structure-level-detector.ts`):
129
+ - Detects 1-level vs 2-level from config (ADO, JIRA, umbrella, multiProject, folders)
130
+ - Validates spec.md has required fields based on structure level
131
+ - For 2-level: **ERROR if project OR board missing** (cannot sync)
132
+ - For 1-level: **WARNING if project missing** (uses fallback, deprecated)
133
+
134
+ **Expected spec.md frontmatter**:
135
+
136
+ ```yaml
137
+ # 1-level structure
138
+ ---
139
+ increment: 0001-feature-name
140
+ project: my-project # REQUIRED for 1-level
141
+ ---
142
+
143
+ # 2-level structure
144
+ ---
145
+ increment: 0001-feature-name
146
+ project: acme-corp # REQUIRED for 2-level
147
+ board: clinical-insights # REQUIRED for 2-level
148
+ ---
149
+ ```
150
+
151
+ **Migration**: See [Migration Guide](/public/guides/migration-v031-project-fields.md)
152
+
122
153
  ---
123
154
 
124
155
  ## STEP 4: Report Distribution Results
@@ -19,10 +19,50 @@ You are helping the user validate a SpecWeave increment with optional AI-powered
19
19
 
20
20
  ## Flags
21
21
 
22
- - `--quality`: Run AI quality assessment (LLM-as-judge, ~2k tokens, 1-2 minutes)
22
+ - `--quality`: **Run LLM-as-Judge gate** (AI quality assessment, ~2k tokens, 1-2 minutes)
23
23
  - `--export`: Export AI suggestions to tasks.md automatically
24
24
  - `--fix`: Auto-fix HIGH priority issues (experimental, requires confirmation)
25
25
 
26
+ ## Quality Gates
27
+
28
+ This command implements a **two-gate validation system**:
29
+
30
+ ```
31
+ ┌─────────────────────────────────────────────────────────────┐
32
+ │ GATE 1: Rule-Based Validation │
33
+ │ (Always runs, FREE) │
34
+ ├─────────────────────────────────────────────────────────────┤
35
+ │ 130+ automated checks: │
36
+ │ • Structure (file existence, format) │
37
+ │ • Three-file canonical (ADR-0047 compliance) │
38
+ │ • Consistency (cross-document alignment) │
39
+ │ • Completeness (required sections) │
40
+ │ • Traceability (AC-ID linkage) │
41
+ │ │
42
+ │ Result: PASS (all checks) or FAIL (with specific errors) │
43
+ └─────────────────────────────────────────────────────────────┘
44
+
45
+
46
+ ┌─────────────────────────────────────────────────────────────┐
47
+ │ GATE 2: LLM-as-Judge │
48
+ │ (Optional, --quality flag) │
49
+ ├─────────────────────────────────────────────────────────────┤
50
+ │ AI-powered evaluation using chain-of-thought reasoning: │
51
+ │ • 6 quality dimensions (clarity, testability, etc.) │
52
+ │ • Evidence-based scoring (0-100 per dimension) │
53
+ │ • Structured suggestions with code examples │
54
+ │ • Formal verdict (score + recommendations) │
55
+ │ │
56
+ │ Pattern: "LLM-as-Judge" (established AI/ML technique) │
57
+ │ Cost: ~$0.02-0.05 per assessment │
58
+ └─────────────────────────────────────────────────────────────┘
59
+ ```
60
+
61
+ **Why two gates?**
62
+ - **Gate 1** catches structural issues (FREE, instant)
63
+ - **Gate 2** catches semantic issues (paid, ~30 seconds)
64
+ - Run Gate 1 first to avoid wasting tokens on invalid specs
65
+
26
66
  ## Workflow
27
67
 
28
68
  ### Step 1: Parse and Validate Arguments
@@ -20,6 +20,16 @@
20
20
  "command": "bash -c 'F=\"${CLAUDE_PLUGIN_ROOT}/hooks/universal/dispatcher.mjs\"; [ -f \"$F\" ] && node \"$F\" completion-guard || printf \"{\\\"continue\\\":true}\"' 2>/dev/null || printf '{\"continue\":true}'"
21
21
  }
22
22
  ]
23
+ },
24
+ {
25
+ "matcher": "Write",
26
+ "matcher_content": "\\.specweave/increments/\\d{4}-[^/]+/spec\\.md",
27
+ "hooks": [
28
+ {
29
+ "type": "command",
30
+ "command": "bash -c 'F=\"${CLAUDE_PLUGIN_ROOT}/hooks/spec-project-validator.sh\"; [ -f \"$F\" ] && \"$F\" || printf \"{\\\"decision\\\":\\\"allow\\\"}\"' 2>/dev/null || printf '{\"decision\":\"allow\"}'"
31
+ }
32
+ ]
23
33
  }
24
34
  ],
25
35
  "PostToolUse": [
@@ -0,0 +1,111 @@
1
+ #!/bin/bash
2
+ #
3
+ # spec-project-validator.sh
4
+ #
5
+ # Pre-tool-use hook that validates spec.md has required project/board fields
6
+ # before allowing Write tool to create/update spec.md files.
7
+ #
8
+ # Activation:
9
+ # - tool_name: Write
10
+ # - file_path matches: .specweave/increments/*/spec.md
11
+ #
12
+ # Rules:
13
+ # - 1-level structure: spec.md MUST have `project:` in YAML frontmatter
14
+ # - 2-level structure: spec.md MUST have BOTH `project:` AND `board:` in frontmatter
15
+ #
16
+ # Returns exit code 1 (block) if validation fails, 0 (allow) otherwise.
17
+
18
+ set -e
19
+
20
+ # Read tool input from stdin
21
+ INPUT=$(cat)
22
+
23
+ # Extract tool name
24
+ TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // ""')
25
+
26
+ # Only validate Write tool calls
27
+ if [ "$TOOL_NAME" != "Write" ]; then
28
+ echo '{"decision": "allow"}'
29
+ exit 0
30
+ fi
31
+
32
+ # Extract file path
33
+ FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // ""')
34
+
35
+ # Only validate spec.md files in increments folder
36
+ if [[ ! "$FILE_PATH" =~ \.specweave/increments/[0-9]{4}-[^/]+/spec\.md$ ]]; then
37
+ echo '{"decision": "allow"}'
38
+ exit 0
39
+ fi
40
+
41
+ # Extract file content
42
+ CONTENT=$(echo "$INPUT" | jq -r '.tool_input.content // ""')
43
+
44
+ # Check if content has YAML frontmatter
45
+ if [[ ! "$CONTENT" =~ ^---$'\n' ]]; then
46
+ echo '{"decision": "block", "reason": "spec.md must have YAML frontmatter (starting with ---)"}'
47
+ exit 0
48
+ fi
49
+
50
+ # Extract YAML frontmatter
51
+ FRONTMATTER=$(echo "$CONTENT" | sed -n '/^---$/,/^---$/p' | tail -n +2 | head -n -1)
52
+
53
+ # Check for unresolved project placeholder
54
+ if echo "$FRONTMATTER" | grep -q 'project:\s*{{PROJECT_ID}}'; then
55
+ echo '{"decision": "block", "reason": "spec.md has unresolved placeholder {{PROJECT_ID}}. Run STEP 0B to select project before creating spec.md."}'
56
+ exit 0
57
+ fi
58
+
59
+ # Check for unresolved board placeholder
60
+ if echo "$FRONTMATTER" | grep -q 'board:\s*{{BOARD_ID}}'; then
61
+ echo '{"decision": "block", "reason": "spec.md has unresolved placeholder {{BOARD_ID}}. Run STEP 0B to select board before creating spec.md."}'
62
+ exit 0
63
+ fi
64
+
65
+ # Check for project field
66
+ PROJECT=$(echo "$FRONTMATTER" | grep -E '^project:\s*' | sed 's/^project:\s*//' | tr -d '"'"'" | tr -d '[:space:]')
67
+
68
+ # Detect structure level by checking config
69
+ PROJECT_ROOT="${FILE_PATH%%/.specweave/*}"
70
+ CONFIG_PATH="$PROJECT_ROOT/.specweave/config.json"
71
+
72
+ IS_2_LEVEL=false
73
+
74
+ if [ -f "$CONFIG_PATH" ]; then
75
+ # Check for ADO area path mapping (indicates 2-level)
76
+ if jq -e '.sync.profiles | to_entries[] | select(.value.provider == "ado") | .value.config.areaPathMapping.mappings | length > 0' "$CONFIG_PATH" >/dev/null 2>&1; then
77
+ IS_2_LEVEL=true
78
+ fi
79
+
80
+ # Check for ADO areaPaths (indicates 2-level)
81
+ if jq -e '.sync.profiles | to_entries[] | select(.value.provider == "ado") | .value.config.areaPaths | length > 0' "$CONFIG_PATH" >/dev/null 2>&1; then
82
+ IS_2_LEVEL=true
83
+ fi
84
+ fi
85
+
86
+ # Validation based on structure level
87
+ if [ "$IS_2_LEVEL" = true ]; then
88
+ # 2-level: BOTH project AND board required
89
+ if [ -z "$PROJECT" ] || [ "$PROJECT" = "null" ]; then
90
+ echo '{"decision": "block", "reason": "spec.md missing required '\''project:'\'' field in YAML frontmatter. This is a 2-level structure - add '\''project: <project_name>'\'' to frontmatter."}'
91
+ exit 0
92
+ fi
93
+
94
+ BOARD=$(echo "$FRONTMATTER" | grep -E '^board:\s*' | sed 's/^board:\s*//' | tr -d '"'"'" | tr -d '[:space:]')
95
+
96
+ if [ -z "$BOARD" ] || [ "$BOARD" = "null" ]; then
97
+ echo '{"decision": "block", "reason": "spec.md missing required '\''board:'\'' field in YAML frontmatter. This is a 2-level structure - add '\''board: <board_name>'\'' to frontmatter."}'
98
+ exit 0
99
+ fi
100
+ else
101
+ # 1-level: project is strongly recommended (warning, not block)
102
+ if [ -z "$PROJECT" ] || [ "$PROJECT" = "null" ]; then
103
+ # For 1-level, we warn but don't block (backward compatibility)
104
+ echo '{"decision": "allow", "message": "⚠️ spec.md should have '\''project:'\'' field in YAML frontmatter for explicit sync target."}'
105
+ exit 0
106
+ fi
107
+ fi
108
+
109
+ # All validations passed
110
+ echo '{"decision": "allow"}'
111
+ exit 0
@@ -70,7 +70,7 @@ export class ActiveIncrementManager {
70
70
  addActive(incrementId, skipValidation = false) {
71
71
  // Validate increment exists and is active (unless skipValidation is true)
72
72
  if (!skipValidation) {
73
- const metadata = MetadataManager.read(incrementId);
73
+ const metadata = MetadataManager.read(incrementId, this.rootDir);
74
74
  // Validate increment is actually active
75
75
  if (metadata.status !== IncrementStatus.ACTIVE) {
76
76
  throw new Error(`Cannot add ${incrementId} as active: status is ${metadata.status}, not active`);
@@ -1 +1 @@
1
- {"version":3,"file":"active-increment-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/active-increment-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"active-increment-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/active-increment-manager.ts"],"names":[],"mappings":"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"}
@@ -85,7 +85,7 @@ export declare class MetadataManager {
85
85
  * before returning. This prevents race conditions in tests and ensures
86
86
  * data consistency.
87
87
  */
88
- static updateStatus(incrementId: string, newStatus: IncrementStatus, reason?: string): IncrementMetadata;
88
+ static updateStatus(incrementId: string, newStatus: IncrementStatus, reason?: string, rootDir?: string): IncrementMetadata;
89
89
  /**
90
90
  * Update spec.md status synchronously (used by updateStatus)
91
91
  *
@@ -245,8 +245,8 @@ export class MetadataManager {
245
245
  * before returning. This prevents race conditions in tests and ensures
246
246
  * data consistency.
247
247
  */
248
- static updateStatus(incrementId, newStatus, reason) {
249
- const metadata = this.read(incrementId);
248
+ static updateStatus(incrementId, newStatus, reason, rootDir) {
249
+ const metadata = this.read(incrementId, rootDir);
250
250
  const oldStatus = metadata.status; // ← Capture old status for sync trigger
251
251
  // Validate transition
252
252
  if (!isValidTransition(metadata.status, newStatus)) {
@@ -299,9 +299,9 @@ export class MetadataManager {
299
299
  // This prevents race conditions and ensures data consistency
300
300
  try {
301
301
  // Step 1: Update spec.md (may throw if spec.md exists but has errors)
302
- this.updateSpecMdStatusSync(incrementId, newStatus);
302
+ this.updateSpecMdStatusSync(incrementId, newStatus, rootDir);
303
303
  // Step 2: Update metadata.json (only if spec.md succeeded)
304
- this.write(incrementId, metadata);
304
+ this.write(incrementId, metadata, rootDir);
305
305
  }
306
306
  catch (error) {
307
307
  // CRITICAL: spec.md update failed - prevent desync by NOT updating metadata.json
@@ -322,7 +322,7 @@ export class MetadataManager {
322
322
  `To check for desyncs, run: /specweave:sync-status`, incrementId, error instanceof Error ? error : undefined);
323
323
  }
324
324
  // **CRITICAL**: Update active increment state
325
- const activeManager = new ActiveIncrementManager();
325
+ const activeManager = new ActiveIncrementManager(rootDir);
326
326
  if (newStatus === IncrementStatus.ACTIVE) {
327
327
  // Increment became active → set as active
328
328
  activeManager.setActive(incrementId);
@@ -360,13 +360,13 @@ export class MetadataManager {
360
360
  * This is a private helper to avoid async/await in updateStatus() which would
361
361
  * break backward compatibility with callers expecting sync behavior.
362
362
  */
363
- static updateSpecMdStatusSync(incrementId, status) {
363
+ static updateSpecMdStatusSync(incrementId, status, rootDir) {
364
364
  // Validate status is valid enum value
365
365
  if (!Object.values(IncrementStatus).includes(status)) {
366
366
  throw new MetadataError(`Invalid status value: "${status}". Must be one of: ${Object.values(IncrementStatus).join(', ')}`, incrementId);
367
367
  }
368
368
  // Build spec.md path
369
- const specPath = path.join(process.cwd(), '.specweave', 'increments', incrementId, 'spec.md');
369
+ const specPath = path.join(rootDir || process.cwd(), '.specweave', 'increments', incrementId, 'spec.md');
370
370
  // Check if spec.md exists
371
371
  if (!fs.existsSync(specPath)) {
372
372
  // Spec doesn't exist - this is OK for legacy increments
@@ -1 +1 @@
1
- {"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,aAAa,CAAC;AACjC,OAAO,EAGL,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,OAAO,EACP,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAAU,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE9D;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,KAAK;IACtC,YAAY,OAAe,EAAS,WAAmB,EAAS,KAAa;QAC3E,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,gBAAW,GAAX,WAAW,CAAQ;QAAS,UAAK,GAAL,KAAK,CAAQ;QAE3E,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAe;IAM1B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,MAAc;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,eAAe,CAAC,WAAmB,EAAE,OAAgB;QAClE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACK,MAAM,CAAC,gBAAgB,CAAC,WAAmB,EAAE,OAAgB;QACnE,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;IAC7D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,WAAmB,EAAE,OAAgB;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChE,OAAO,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,CAAC,WAAmB,EAAE,OAAgB;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEhE,wDAAwD;QACxD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,mCAAmC;YACnC,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,aAAa,CACrB,wBAAwB,WAAW,EAAE,EACrC,WAAW,CACZ,CAAC;YACJ,CAAC;YAED,0BAA0B;YAC1B,MAAM,eAAe,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;YAElD,0EAA0E;YAC1E,qFAAqF;YACrF,4EAA4E;YAC5E,IAAI,eAAe,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;gBACtD,MAAM,aAAa,GAAG,IAAI,sBAAsB,EAAE,CAAC;gBACnD,aAAa,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,wBAAwB;YACtE,CAAC;YAED,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,QAAQ,GAAsB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAExD,kBAAkB;YAClB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAExB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,aAAa,CACrB,+BAA+B,WAAW,KAAK,YAAY,EAAE,EAC7D,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAoBD;;;OAGG;IACK,MAAM,CAAC,mBAAmB,CAAC,WAAmB;QACpD,oBAAoB;QACpB,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,aAAa,CACrB,yBAAyB,WAAW,iCAAiC;gBACrE,2BAA2B;gBAC3B,oEAAoE;gBACpE,sDAAsD;gBACtD,sDAAsD;gBACtD,+DAA+D,EAC/D,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,oEAAoE;QACpE,IAAI,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,aAAa,CACrB,yBAAyB,WAAW,kDAAkD;gBACtF,6EAA6E;gBAC7E,mDAAmD,EACnD,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,wDAAwD;QACxD,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAI,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,aAAa,CACrB,yBAAyB,WAAW,iBAAiB,QAAQ,oBAAoB;gBACjF,4DAA4D,EAC5D,WAAW,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,WAAmB,EAAE,OAAgB;QACrE,iCAAiC;QACjC,IAAI,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC;QAEtC,wEAAwE;QACxE,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,aAAa,CACrB,gCAAgC,WAAW,8BAA8B,EACzE,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAEvC,uBAAuB;QACvB,MAAM,UAAU,GAAG,MAAM,wBAAwB,CAAC,eAAe,EAAE,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAE7F,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC7D,MAAM,IAAI,aAAa,CACrB,2BAA2B,WAAW,sBAAsB,eAAe,8CAA8C,SAAS,MAAM;gBACxI,uBAAuB;gBACvB,yCAAyC;gBACzC,iDAAiD;gBACjD,yDAAyD,EACzD,WAAW,CACZ,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,WAAmB,EAAE,QAA2B,EAAE,OAAgB;QAC7E,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChE,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElE,oCAAoC;QACpC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,aAAa,CACrB,kCAAkC,WAAW,EAAE,EAC/C,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,sEAAsE;QACtE,sFAAsF;QACtF,+DAA+D;QAC/D,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,SAAS,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,CAAC;QAElE,IAAI,CAAC;YACH,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAExB,mCAAmC;YACnC,MAAM,QAAQ,GAAG,GAAG,YAAY,MAAM,CAAC;YACvC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACvE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,aAAa,CACrB,gCAAgC,WAAW,KAAK,YAAY,EAAE,EAC9D,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;QAED,0DAA0D;QAC1D,uFAAuF;QACvF,4DAA4D;QAC5D,sEAAsE;QACtE,2EAA2E;QAC3E,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;YACrD,MAAM,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAE3C,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,+DAA+D,CAAC,CAAC;gBACjF,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;gBAC1E,4CAA4C;gBAC5C,2FAA2F;gBAC3F,6CAA6C;YAC/C,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mEAAmE,CAAC,CAAC;gBAErF,yDAAyD;gBACzD,CAAC,KAAK,IAAI,EAAE;oBACV,IAAI,CAAC;wBACH,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,oCAAoC,CAAC,CAAC;wBAC9E,MAAM,IAAI,GAAG,IAAI,cAAc,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE;4BACxD,MAAM,EAAE,IAAI,CAAC,MAAM;yBACpB,CAAC,CAAC;wBAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;wBAErD,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;4BACnB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,WAAW,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;wBACnF,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kDAAkD,WAAW,EAAE,CAAC,CAAC;wBACpF,CAAC;oBACH,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,GAAG,EAAE,KAAK,CAAC,CAAC;wBAC1E,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,WAAW,WAAW,CAAC,CAAC;oBAC1E,CAAC;gBACH,CAAC,CAAC,EAAE,CAAC;YACP,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,WAAmB,EAAE,OAAgB;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAEhE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,CAAC,kBAAkB;QAC5B,CAAC;QAED,IAAI,CAAC;YACH,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,aAAa,CACrB,iCAAiC,WAAW,KAAK,YAAY,EAAE,EAC/D,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAC1D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,MAAM,CAAC,YAAY,CACjB,WAAmB,EACnB,SAA0B,EAC1B,MAAe;QAEf,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,wCAAwC;QAE3E,sBAAsB;QACtB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC;YACnD,MAAM,IAAI,aAAa,CACrB,8BAA8B,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,EAC9D,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,gBAAgB;QAChB,QAAQ,CAAC,MAAM,GAAG,SAAS,CAAC;QAC5B,QAAQ,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEjD,gCAAgC;QAChC,IAAI,SAAS,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1C,QAAQ,CAAC,aAAa,GAAG,MAAM,IAAI,yBAAyB,CAAC;YAC7D,QAAQ,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAChD,CAAC;aAAM,IAAI,SAAS,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YAChD,QAAQ,CAAC,YAAY,GAAG,MAAM,IAAI,oBAAoB,CAAC;YACvD,QAAQ,CAAC,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC/C,CAAC;aAAM,IAAI,SAAS,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YAChD,8CAA8C;YAC9C,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC;YACnC,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;YAC/B,QAAQ,CAAC,YAAY,GAAG,SAAS,CAAC;YAClC,QAAQ,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC9B,4CAA4C;YAC5C,QAAQ,CAAC,gBAAgB,GAAG,SAAS,CAAC;QACxC,CAAC;aAAM,IAAI,SAAS,KAAK,eAAe,CAAC,gBAAgB,EAAE,CAAC;YAC1D,yDAAyD;YACzD,QAAQ,CAAC,gBAAgB,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,WAAW,kDAAkD,CAAC,CAAC;QACjG,CAAC;aAAM,IAAI,SAAS,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACnD,qEAAqE;YACrE,QAAQ,CAAC,UAAU,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,CAAC;aAAM,IAAI,SAAS,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACnD,QAAQ,CAAC,eAAe,GAAG,MAAM,IAAI,oBAAoB,CAAC;YAC1D,QAAQ,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAClD,CAAC;QAED,kEAAkE;QAClE,gFAAgF;QAChF,0EAA0E;QAC1E,EAAE;QACF,wEAAwE;QACxE,2EAA2E;QAC3E,EAAE;QACF,+EAA+E;QAC/E,mDAAmD;QACnD,iEAAiE;QACjE,6DAA6D;QAE7D,IAAI,CAAC;YACH,sEAAsE;YACtE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;YAEpD,2DAA2D;YAC3D,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iFAAiF;YACjF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,yCAAyC,WAAW,+BAA+B,EACnF,KAAK,CACN,CAAC;YAEF,6CAA6C;YAC7C,MAAM,IAAI,aAAa,CACrB,yDAAyD;gBACvD,IAAI;gBACJ,iEAAiE;gBACjE,0DAA0D;gBAC1D,IAAI;gBACJ,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI;gBACpE,IAAI;gBACJ,4BAA4B;gBAC5B,iDAAiD,WAAW,YAAY;gBACxE,yCAAyC;gBACzC,8BAA8B;gBAC9B,IAAI;gBACJ,mDAAmD,EACrD,WAAW,EACX,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAC3C,CAAC;QACJ,CAAC;QAED,8CAA8C;QAC9C,MAAM,aAAa,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAEnD,IAAI,SAAS,KAAK,eAAe,CAAC,MAAM,EAAE,CAAC;YACzC,0CAA0C;YAC1C,aAAa,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;QACvC,CAAC;aAAM,IACL,SAAS,KAAK,eAAe,CAAC,SAAS;YACvC,SAAS,KAAK,eAAe,CAAC,OAAO;YACrC,SAAS,KAAK,eAAe,CAAC,MAAM;YACpC,SAAS,KAAK,eAAe,CAAC,SAAS,EACvC,CAAC;YACD,wEAAwE;YACxE,aAAa,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;QAED,4EAA4E;QAC5E,6EAA6E;QAC7E,mEAAmE;QACnE,mEAAmE;QACnE,CAAC,KAAK,IAAI,EAAE;YACV,IAAI,CAAC;gBACH,8CAA8C;gBAC9C,MAAM,EAAE,uBAAuB,EAAE,GAAG,MAAM,MAAM,CAAC,iCAAiC,CAAC,CAAC;gBAEpF,MAAM,uBAAuB,CAAC,eAAe,CAC3C,WAAW,EACX,SAAS,EACT,SAAS,CACV,CAAC,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;oBACvB,mEAAmE;oBACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wBAAwB,WAAW,KAAK,KAAK,CAAC,OAAO,EAAE,CACxD,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,uDAAuD;gBACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAuC,WAAqB,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5F,CAAC;QACH,CAAC,CAAC,EAAE,CAAC,CAAC,sDAAsD;QAE5D,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,sBAAsB,CACnC,WAAmB,EACnB,MAAuB;QAEvB,sCAAsC;QACtC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,MAAM,IAAI,aAAa,CACrB,0BAA0B,MAAM,sBAAsB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EACjG,WAAW,CACZ,CAAC;QACJ,CAAC;QAED,qBAAqB;QACrB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CACxB,OAAO,CAAC,GAAG,EAAE,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,SAAS,CACV,CAAC;QAEF,0BAA0B;QAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,wDAAwD;YACxD,OAAO;QACT,CAAC;QAED,uCAAuC;QACvC,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAEnD,sDAAsD;QACtD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAE5B,4BAA4B;QAC5B,MAAM,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QAErE,mDAAmD;QACnD,MAAM,QAAQ,GAAG,GAAG,QAAQ,MAAM,CAAC;QACnC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;QACpD,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,WAAmB,EAAE,IAAmB;QACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;QACrB,QAAQ,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,WAAmB;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,QAAQ,CAAC,YAAY,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAClC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,MAAM;QACX,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;QAE5E,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC;aACpD,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACxE,CAAC,CAAC,CAAC;QAEL,OAAO,gBAAgB;aACpB,GAAG,CAAC,MAAM,CAAC,EAAE;YACZ,IAAI,CAAC;gBACH,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,gDAAgD;gBAChD,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,MAAuB;QACxC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,SAAS;QACd,MAAM,aAAa,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAEnD,6BAA6B;QAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,EAAE,CAAC;QAE5C,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,4BAA4B;YAC5B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;YAEzC,IAAI,OAAO,EAAE,CAAC;gBACZ,iDAAiD;gBACjD,OAAO,SAAS;qBACb,GAAG,CAAC,EAAE,CAAC,EAAE;oBACR,IAAI,CAAC;wBACH,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACvB,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,qCAAqC;wBACrC,aAAa,CAAC,WAAW,EAAE,CAAC;wBAC5B,OAAO,IAAI,CAAC;oBACd,CAAC;gBACH,CAAC,CAAC;qBACD,MAAM,CAAC,CAAC,CAAC,EAA0B,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAED,wDAAwD;QACxD,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAE3D,sGAAsG;QACtG,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzB,2CAA2C;YAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjD,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjD,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,aAAa;YACrC,CAAC,CAAC,CAAC;YAEH,sCAAsC;YACtC,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACpD,MAAM,KAAK,GAAG;gBACZ,GAAG,EAAE,SAAS;gBACd,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACtC,CAAC;YACF,gGAAgG;YAChG,MAAM,SAAS,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAC;YACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,CAAC;YACD,MAAM,QAAQ,GAAG,GAAG,SAAS,MAAM,CAAC;YACpC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACpE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,oCAAoC;YACpC,aAAa,CAAC,WAAW,EAAE,CAAC;QAC9B,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU;QACf,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS;QACd,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAS,CAAC,IAAmB;QAClC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ;QACb,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB;QACzB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,WAAmB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,MAAM,QAAQ,GAA8B,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE5D,mCAAmC;QACnC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC;YAC5E,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC7B,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAEzD,oCAAoC;gBACpC,MAAM,gBAAgB,GAAG,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACvD,QAAQ,CAAC,cAAc,GAAG,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzE,gCAAgC;gBAChC,MAAM,YAAY,GAAG,YAAY,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;gBACzD,QAAQ,CAAC,UAAU,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;gBAE7D,gCAAgC;gBAChC,IAAI,QAAQ,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;oBAC5B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,cAAc,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC;gBACxF,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,iCAAiC;QACnC,CAAC;QAED,wBAAwB;QACxB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC/C,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QAEjG,wBAAwB;QACxB,IAAI,QAAQ,CAAC,MAAM,KAAK,eAAe,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACpE,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;QACnG,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,QAA2B;QACzC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;QACzD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,mBAAmB,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACnE,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAqB,EAAE,EAAmB;QAC7D,OAAO,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAqB,EAAE,EAAmB;QAClE,IAAI,IAAI,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACvC,OAAO,wEAAwE,CAAC;QAClF,CAAC;QAED,IAAI,EAAE,KAAK,eAAe,CAAC,MAAM,IAAI,IAAI,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YACxE,OAAO,oEAAoE,CAAC;QAC9E,CAAC;QAED,IAAI,EAAE,KAAK,eAAe,CAAC,SAAS,IAAI,IAAI,KAAK,eAAe,CAAC,SAAS,EAAE,CAAC;YAC3E,OAAO,uEAAuE,CAAC;QACjF,CAAC;QAED,OAAO,uBAAuB,IAAI,MAAM,EAAE,EAAE,CAAC;IAC/C,CAAC;;AAnvBD;;GAEG;AACY,sBAAM,GAAW,aAAa,CAAC;AAsF9C;;;GAGG;AACqB,sCAAsB,GAAG;IAC/C,iDAAiD;IACjD,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW;IAEvD,0CAA0C;IAC1C,UAAU,EAAE,YAAY,EAAE,SAAS;IAEnC,+CAA+C;IAC/C,kBAAkB,EAAE,OAAO,EAAE,QAAQ;IAErC,sCAAsC;IACtC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM;CAC3C,CAAC"}
1
+ {"version":3,"file":"metadata-manager.js","sourceRoot":"","sources":["../../../../src/core/increment/metadata-manager.ts"],"names":[],"mappings":"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"}
@@ -176,6 +176,81 @@ echo "Using coverageTarget: $coverageTarget"
176
176
 
177
177
  **Store these values for use in STEP 4 and STEP 7!**
178
178
 
179
+ ### STEP 0B: Detect Structure Level & Select Project/Board (MANDATORY!)
180
+
181
+ **⚠️ CRITICAL: Before generating spec.md, you MUST know the target project (and board for 2-level structures)!**
182
+
183
+ **Structure Levels:**
184
+ - **1-Level**: `internal/specs/{project}/FS-XXX/` - requires `project` in spec.md
185
+ - **2-Level**: `internal/specs/{project}/{board}/FS-XXX/` - requires BOTH `project` AND `board`
186
+
187
+ **Detection Logic** (use `src/utils/structure-level-detector.ts`):
188
+
189
+ ```typescript
190
+ import { detectStructureLevel, getRequiredSpecFields } from './utils/structure-level-detector.js';
191
+
192
+ const structureConfig = detectStructureLevel(projectRoot);
193
+ console.log(`Structure level: ${structureConfig.level}`);
194
+ console.log(`Detection reason: ${structureConfig.detectionReason}`);
195
+ console.log(`Available projects: ${structureConfig.projects.map(p => p.id).join(', ')}`);
196
+
197
+ if (structureConfig.level === 2 && structureConfig.boardsByProject) {
198
+ console.log('Available boards by project:');
199
+ for (const [projectId, boards] of Object.entries(structureConfig.boardsByProject)) {
200
+ console.log(` ${projectId}: ${boards.map(b => b.id).join(', ')}`);
201
+ }
202
+ }
203
+ ```
204
+
205
+ **Manual Detection:**
206
+ ```bash
207
+ # Check if 2-level (ADO area paths or JIRA boards)
208
+ jq '.sync.profiles | to_entries[] | select(.value.provider == "ado") | .value.config.areaPathMapping' .specweave/config.json
209
+
210
+ # Check existing folder structure
211
+ ls -la .specweave/docs/internal/specs/*/ # If sub-folders exist (not FS-XXX) → 2-level
212
+ ```
213
+
214
+ **Project/Board Selection (MANDATORY BEFORE STEP 4!):**
215
+
216
+ 1. **For 1-level structure:**
217
+ - ASK user: "Which project should this increment sync to?"
218
+ - Options: List from `structureConfig.projects`
219
+ - Store selected `PROJECT_ID`
220
+
221
+ 2. **For 2-level structure:**
222
+ - ASK user: "Which project should this increment sync to?"
223
+ - Then ASK: "Which board/area path within {project}?"
224
+ - Options: List from `structureConfig.boardsByProject[selectedProject]`
225
+ - Store BOTH `PROJECT_ID` and `BOARD_ID`
226
+
227
+ **VALIDATION RULE:**
228
+ ```
229
+ ❌ FORBIDDEN: Creating spec.md without PROJECT_ID set
230
+ ❌ FORBIDDEN: Creating spec.md for 2-level without BOARD_ID set
231
+ ❌ FORBIDDEN: Vague increments like "show last git commits" without project context
232
+ ✅ REQUIRED: Always know WHERE this increment will sync BEFORE creating spec.md
233
+ ```
234
+
235
+ **Example User Interaction:**
236
+
237
+ ```
238
+ 🔍 Detected 2-level structure (ADO area path mapping)
239
+ Available projects: acme-corp
240
+
241
+ 📁 Project: acme-corp
242
+ Boards: clinical-insights, platform-engineering, digital-operations
243
+
244
+ Which board should this increment sync to?
245
+ > digital-operations
246
+
247
+ ✅ Increment will sync to: internal/specs/acme-corp/digital-operations/FS-XXX/
248
+ ```
249
+
250
+ **Store PROJECT_ID and BOARD_ID for use in STEP 4!**
251
+
252
+ ---
253
+
179
254
  ### STEP 1: Get Next Increment Number
180
255
 
181
256
  Use helper script:
@@ -207,26 +282,50 @@ mkdir -p .specweave/increments/0021-feature-name
207
282
 
208
283
  Create `.specweave/increments/0021-feature-name/spec.md`:
209
284
 
285
+ **⚠️ CRITICAL: You MUST have PROJECT_ID (and BOARD_ID for 2-level) from STEP 0B before proceeding!**
286
+
210
287
  **⚠️ IMPORTANT: Use the correct template based on STEP 0 detection!**
211
288
 
212
- #### 4A: Single-Project Template (umbrella.enabled: false)
289
+ #### 4A: Single-Project Template (1-level structure)
213
290
 
214
291
  **Template File**: `templates/spec-single-project.md`
215
292
 
216
- Replace placeholders: `{{INCREMENT_ID}}`, `{{FEATURE_TITLE}}`, `{{TYPE}}`, `{{PRIORITY}}`, `{{DATE}}`, `{{TEST_MODE}}`, `{{COVERAGE_TARGET}}`
293
+ Replace placeholders:
294
+ - `{{INCREMENT_ID}}`, `{{FEATURE_TITLE}}`, `{{TYPE}}`, `{{PRIORITY}}`, `{{DATE}}`
295
+ - `{{TEST_MODE}}`, `{{COVERAGE_TARGET}}`
296
+ - **`{{PROJECT_ID}}`** ← MANDATORY (from STEP 0B)
217
297
 
218
- #### 4B: Multi-Project Template (umbrella.enabled: true) - USE THIS!
298
+ #### 4B: Multi-Project Template (2-level structure) - USE THIS!
219
299
 
220
300
  **Template File**: `templates/spec-multi-project.md`
221
301
 
222
- Replace placeholders: `{{INCREMENT_ID}}`, `{{FEATURE_TITLE}}`, `{{PROJECT_FE_ID}}`, `{{PROJECT_BE_ID}}`, `{{PROJECT_SHARED_ID}}`, etc.
302
+ Replace placeholders:
303
+ - `{{INCREMENT_ID}}`, `{{FEATURE_TITLE}}`, `{{TYPE}}`, `{{PRIORITY}}`, `{{DATE}}`
304
+ - **`{{PROJECT_ID}}`** ← MANDATORY (from STEP 0B)
305
+ - **`{{BOARD_ID}}`** ← MANDATORY for 2-level (from STEP 0B)
306
+ - `{{PROJECT_FE_ID}}`, `{{PROJECT_BE_ID}}`, `{{PROJECT_SHARED_ID}}` (for multi-repo)
307
+
308
+ **Key Rules for spec.md:**
309
+ 1. **`project:` field MUST be set in YAML frontmatter** (1-level and 2-level)
310
+ 2. **`board:` field MUST be set in YAML frontmatter** (2-level only)
311
+ 3. **User stories grouped by project** if multi-project (Frontend, Backend, Shared, etc.)
312
+ 4. **User story IDs have project prefix**: `US-FE-001`, `US-BE-001` (multi-project)
313
+ 5. **AC-IDs have project prefix**: `AC-FE-US1-01`, `AC-BE-US1-01` (multi-project)
314
+
315
+ **VALIDATION (spec.md frontmatter):**
316
+ ```yaml
317
+ # 1-level structure (REQUIRED):
318
+ project: digital-operations # ← MUST be set
319
+
320
+ # 2-level structure (BOTH REQUIRED):
321
+ project: acme-corp # ← MUST be set
322
+ board: digital-operations # ← MUST be set
323
+ ```
223
324
 
224
- **Key Rules for Multi-Project spec.md:**
225
- 1. **User stories MUST be grouped by project** (Frontend, Backend, Shared, etc.)
226
- 2. **User story IDs MUST have project prefix**: `US-FE-001`, `US-BE-001`, `US-SHARED-001`
227
- 3. **AC-IDs MUST have project prefix**: `AC-FE-US1-01`, `AC-BE-US1-01`
228
- 4. **Each user story MUST have `Related Repo` field**
229
- 5. **Frontmatter MUST include `multi_project: true` and `projects` list**
325
+ **⚠️ FORBIDDEN:**
326
+ - Creating spec.md with `project: {{PROJECT_ID}}` (unresolved placeholder)
327
+ - Creating spec.md for 2-level with `board: {{BOARD_ID}}` (unresolved placeholder)
328
+ - Leaving project/board fields empty or undefined
230
329
 
231
330
  ### STEP 5: Create plan.md Template
232
331
 
@@ -8,6 +8,8 @@ created: {{DATE}}
8
8
  structure: user-stories
9
9
  test_mode: {{TEST_MODE}}
10
10
  coverage_target: {{COVERAGE_TARGET}}
11
+ project: {{PROJECT_ID}}
12
+ board: {{BOARD_ID}}
11
13
  multi_project: true
12
14
  projects:
13
15
  - id: {{PROJECT_FE_ID}}
@@ -8,6 +8,7 @@ created: {{DATE}}
8
8
  structure: user-stories
9
9
  test_mode: {{TEST_MODE}}
10
10
  coverage_target: {{COVERAGE_TARGET}}
11
+ project: {{PROJECT_ID}}
11
12
  ---
12
13
 
13
14
  # Feature: {{FEATURE_TITLE}}
@@ -6,9 +6,48 @@ allowed-tools: Read, Grep, Glob
6
6
 
7
7
  # Increment Quality Judge v2.0
8
8
 
9
- Risk Assessment + Quality Gate Decisions
9
+ **LLM-as-Judge Pattern Implementation**
10
10
 
11
- AI-powered quality assessment with BMAD-pattern risk scoring and formal quality gate decisions (PASS/CONCERNS/FAIL).
11
+ AI-powered quality assessment using the **LLM-as-Judge** pattern - an established AI/ML evaluation technique where an LLM evaluates outputs with chain-of-thought reasoning, BMAD-pattern risk scoring, and formal quality gate decisions (PASS/CONCERNS/FAIL).
12
+
13
+ ## LLM-as-Judge: What It Is
14
+
15
+ **LLM-as-Judge (LaaJ)** is a recognized pattern in AI/ML evaluation where a large language model assesses quality using structured reasoning.
16
+
17
+ ```
18
+ ┌─────────────────────────────────────────────────────────────┐
19
+ │ LLM-as-Judge Pattern │
20
+ ├─────────────────────────────────────────────────────────────┤
21
+ │ Input: spec.md, plan.md, tasks.md │
22
+ │ │
23
+ │ Process: │
24
+ │ ┌─────────────────────────────────────────────────────┐ │
25
+ │ │ <thinking> │ │
26
+ │ │ 1. Read and understand the specification │ │
27
+ │ │ 2. Evaluate against 7 quality dimensions │ │
28
+ │ │ 3. Identify risks (P×I scoring) │ │
29
+ │ │ 4. Form evidence-based verdict │ │
30
+ │ │ </thinking> │ │
31
+ │ └─────────────────────────────────────────────────────┘ │
32
+ │ │
33
+ │ Output: Structured verdict with: │
34
+ │ • Dimension scores (0-100) │
35
+ │ • Risk assessment (CRITICAL/HIGH/MEDIUM/LOW) │
36
+ │ • Quality gate decision (PASS/CONCERNS/FAIL) │
37
+ │ • Actionable recommendations │
38
+ └─────────────────────────────────────────────────────────────┘
39
+ ```
40
+
41
+ **Why LLM-as-Judge works:**
42
+ - **Consistency**: Uniform evaluation criteria without human fatigue
43
+ - **Reasoning**: Chain-of-thought explains WHY something is an issue
44
+ - **Scalability**: Evaluates in seconds vs hours of manual review
45
+ - **Industry standard**: Used by OpenAI, Anthropic, Google for AI evals
46
+
47
+ **References:**
48
+ - "Judging LLM-as-a-Judge" (NeurIPS 2023)
49
+ - LMSYS Chatbot Arena evaluation methodology
50
+ - AlpacaEval, MT-Bench frameworks
12
51
 
13
52
  ## IMPORTANT: This is a SKILL (Not an Agent)
14
53