@schnick371/devsteps-shared 0.6.2 → 0.6.4

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.
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,gBAAgB,CA8ClB"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGjE;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,EAChB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,WAAW,GACvB,gBAAgB,CAwDlB"}
@@ -18,8 +18,17 @@ export function validateRelationship(source, target, relationType, methodology)
18
18
  if (!isHierarchyRelation(relationType)) {
19
19
  return { valid: false, error: `Unknown relationship type: ${relationType}` };
20
20
  }
21
- // Only validate "implements" direction (implemented-by is automatic reverse)
22
- if (relationType === 'implemented-by') {
21
+ // Special case: blocks relation (Jira 2025 - hybrid flexible/hierarchy)
22
+ // Non-Bug blocks: Flexible (Story→Story, Task→Task allowed)
23
+ // Bug blocks: Hierarchy validation (Bug→Epic/Story/Requirement/Feature only)
24
+ if (relationType === 'blocks') {
25
+ if (source.type !== 'bug') {
26
+ return { valid: true }; // Flexible for non-Bug types
27
+ }
28
+ // Bug blocks: validate as hierarchy below
29
+ }
30
+ // Only validate "implements" direction (implemented-by, blocked-by are automatic reverse)
31
+ if (relationType === 'implemented-by' || relationType === 'blocked-by') {
23
32
  return { valid: true }; // Reverse relationships auto-created, no validation needed
24
33
  }
25
34
  // Validate based on methodology
@@ -89,12 +98,15 @@ function validateScrumHierarchy(source, target) {
89
98
  suggestion: `Change ${target.id} to an Epic or create an Epic first, then link Spike → Epic`,
90
99
  };
91
100
  }
92
- // Bug cannot use "implements" - must use flexible relationships
101
+ // Bug → Epic or Story via implements/blocks (Jira 2025)
93
102
  if (sourceType === 'bug') {
103
+ if (targetType === 'epic' || targetType === 'story') {
104
+ return { valid: true };
105
+ }
94
106
  return {
95
107
  valid: false,
96
- error: 'Bugs cannot use "implements" relationship',
97
- suggestion: `Use "relates-to" (context) or "affects" (impact) to link Bug → Epic. Use Task to implement the fix (Task implements Bug).`,
108
+ error: 'Bugs can only implement/block Epics or Stories in Scrum',
109
+ suggestion: `Link Bug → Epic (epic-level defect) or Bug → Story (story-level defect). Use Task to implement the fix (Task implements Bug).`,
98
110
  };
99
111
  }
100
112
  // Test → Epic or Story (flexible)
@@ -163,12 +175,15 @@ function validateWaterfallHierarchy(source, target) {
163
175
  suggestion: `Change ${target.id} to a Requirement or create a Requirement first, then link Spike → Requirement`,
164
176
  };
165
177
  }
166
- // Bug cannot use "implements" - must use flexible relationships
178
+ // Bug → Requirement or Feature via implements/blocks (Jira 2025)
167
179
  if (sourceType === 'bug') {
180
+ if (targetType === 'requirement' || targetType === 'feature') {
181
+ return { valid: true };
182
+ }
168
183
  return {
169
184
  valid: false,
170
- error: 'Bugs cannot use "implements" relationship',
171
- suggestion: `Use "relates-to" (context) or "affects" (impact) to link Bug → Requirement. Use Task to implement the fix (Task implements Bug).`,
185
+ error: 'Bugs can only implement/block Requirements or Features in Waterfall',
186
+ suggestion: `Link Bug → Requirement (requirement-level defect) or Bug → Feature (feature-level defect). Use Task to implement the fix (Task implements Bug).`,
172
187
  };
173
188
  }
174
189
  // Test → Requirement or Feature (flexible)
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/core/validation.ts"],"names":[],"mappings":"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"}
@@ -71,9 +71,9 @@ export type EisenhowerQuadrant = z.infer<typeof EisenhowerQuadrant>;
71
71
  export declare const RelationType: z.ZodEnum<{
72
72
  implements: "implements";
73
73
  "implemented-by": "implemented-by";
74
- "relates-to": "relates-to";
75
74
  blocks: "blocks";
76
75
  "blocked-by": "blocked-by";
76
+ "relates-to": "relates-to";
77
77
  "depends-on": "depends-on";
78
78
  "required-by": "required-by";
79
79
  "tested-by": "tested-by";
@@ -4,21 +4,21 @@
4
4
  */
5
5
  /**
6
6
  * Hierarchy relationships enforce parent-child rules
7
- * - implements/implemented-by: Enforces proper parent-child hierarchy
8
- * Scrum: Epic → Story/Spike → Task, Bug → Epic, Task → Bug
9
- * Waterfall: Requirement → Feature/Spike → Task, Bug → Requirement, Task → Bug
7
+ * - implements/implemented-by: Standard hierarchy (Epic→Story→Task)
8
+ * - blocks/blocked-by: Jira 2025 hierarchy for Bug (Bug blocks Epic/Story)
9
+ * Note: Other types (Story→Story, Task→Task) bypass validation (flexible)
10
+ * Scrum: Bug blocks Epic/Story | Waterfall: Bug blocks Requirement/Feature
10
11
  */
11
- export declare const HIERARCHY_RELATIONSHIPS: readonly ["implements", "implemented-by"];
12
+ export declare const HIERARCHY_RELATIONSHIPS: readonly ["implements", "implemented-by", "blocks", "blocked-by"];
12
13
  /**
13
14
  * Flexible relationships allow connections between any item types
15
+ * Note: blocks/blocked-by moved to HIERARCHY for Bug validation (Jira 2025)
14
16
  * - relates-to: Generic association
15
- * - affects/affected-by: Impact relationships (Bug affects Epic/Requirement)
16
- * - blocks/blocked-by: Blocking dependencies
17
17
  * - depends-on/required-by: Technical dependencies
18
18
  * - tested-by/tests: Testing relationships
19
19
  * - supersedes/superseded-by: Version/replacement tracking
20
20
  */
21
- export declare const FLEXIBLE_RELATIONSHIPS: readonly ["relates-to", "affects", "affected-by", "blocks", "blocked-by", "depends-on", "required-by", "tested-by", "tests", "supersedes", "superseded-by"];
21
+ export declare const FLEXIBLE_RELATIONSHIPS: readonly ["relates-to", "depends-on", "required-by", "tested-by", "tests", "supersedes", "superseded-by"];
22
22
  export type HierarchyRelation = (typeof HIERARCHY_RELATIONSHIPS)[number];
23
23
  export type FlexibleRelation = (typeof FLEXIBLE_RELATIONSHIPS)[number];
24
24
  export type RelationType = HierarchyRelation | FlexibleRelation;
@@ -1 +1 @@
1
- {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/schemas/relationships.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,2CAA4C,CAAC;AAEjF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,6JAYzB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,iBAAiB,CAE3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,gBAAgB,CAEzF"}
1
+ {"version":3,"file":"relationships.d.ts","sourceRoot":"","sources":["../../src/schemas/relationships.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,mEAK1B,CAAC;AAEX;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,2GAQzB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AACzE,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AACvE,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,gBAAgB,CAAC;AAEhE;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,iBAAiB,CAE3F;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,IAAI,gBAAgB,CAEzF"}
@@ -4,26 +4,27 @@
4
4
  */
5
5
  /**
6
6
  * Hierarchy relationships enforce parent-child rules
7
- * - implements/implemented-by: Enforces proper parent-child hierarchy
8
- * Scrum: Epic → Story/Spike → Task, Bug → Epic, Task → Bug
9
- * Waterfall: Requirement → Feature/Spike → Task, Bug → Requirement, Task → Bug
7
+ * - implements/implemented-by: Standard hierarchy (Epic→Story→Task)
8
+ * - blocks/blocked-by: Jira 2025 hierarchy for Bug (Bug blocks Epic/Story)
9
+ * Note: Other types (Story→Story, Task→Task) bypass validation (flexible)
10
+ * Scrum: Bug blocks Epic/Story | Waterfall: Bug blocks Requirement/Feature
10
11
  */
11
- export const HIERARCHY_RELATIONSHIPS = ['implements', 'implemented-by'];
12
+ export const HIERARCHY_RELATIONSHIPS = [
13
+ 'implements',
14
+ 'implemented-by',
15
+ 'blocks',
16
+ 'blocked-by',
17
+ ];
12
18
  /**
13
19
  * Flexible relationships allow connections between any item types
20
+ * Note: blocks/blocked-by moved to HIERARCHY for Bug validation (Jira 2025)
14
21
  * - relates-to: Generic association
15
- * - affects/affected-by: Impact relationships (Bug affects Epic/Requirement)
16
- * - blocks/blocked-by: Blocking dependencies
17
22
  * - depends-on/required-by: Technical dependencies
18
23
  * - tested-by/tests: Testing relationships
19
24
  * - supersedes/superseded-by: Version/replacement tracking
20
25
  */
21
26
  export const FLEXIBLE_RELATIONSHIPS = [
22
27
  'relates-to',
23
- 'affects',
24
- 'affected-by',
25
- 'blocks',
26
- 'blocked-by',
27
28
  'depends-on',
28
29
  'required-by',
29
30
  'tested-by',
@@ -1 +1 @@
1
- {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/schemas/relationships.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,YAAY,EAAE,gBAAgB,CAAU,CAAC;AAEjF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY;IACZ,SAAS;IACT,aAAa;IACb,QAAQ;IACR,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,WAAW;IACX,OAAO;IACP,YAAY;IACZ,eAAe;CACP,CAAC;AAMX;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,YAAiC,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,YAAgC,CAAC,CAAC;AAC3E,CAAC"}
1
+ {"version":3,"file":"relationships.js","sourceRoot":"","sources":["../../src/schemas/relationships.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,YAAY;IACZ,gBAAgB;IAChB,QAAQ;IACR,YAAY;CACJ,CAAC;AAEX;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,WAAW;IACX,OAAO;IACP,YAAY;IACZ,eAAe;CACP,CAAC;AAMX;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,YAAoB;IACtD,OAAO,uBAAuB,CAAC,QAAQ,CAAC,YAAiC,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,YAAoB;IACrD,OAAO,sBAAsB,CAAC,QAAQ,CAAC,YAAgC,CAAC,CAAC;AAC3E,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@schnick371/devsteps-shared",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Never Code Alone. Shared types, schemas, and utilities for DevSteps task tracking.",
6
6
  "author": "Thomas Hertel <thomas.hantke@devsteps.dev>",