crewly 1.8.12 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/config/roles/orchestrator/prompt.md +53 -0
  2. package/config/roles/product-manager/prompt.md +40 -0
  3. package/config/roles/team-leader/prompt.md +33 -0
  4. package/config/skills/orchestrator/decompose-okr/SKILL.md +107 -0
  5. package/config/skills/orchestrator/decompose-okr/execute.sh +142 -0
  6. package/config/skills/registry.json +52 -6
  7. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts +8 -0
  8. package/dist/backend/backend/src/controllers/mission/kr.controller.d.ts.map +1 -1
  9. package/dist/backend/backend/src/controllers/mission/kr.controller.js +17 -0
  10. package/dist/backend/backend/src/controllers/mission/kr.controller.js.map +1 -1
  11. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.d.ts.map +1 -1
  12. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js +198 -26
  13. package/dist/backend/backend/src/controllers/mission/mission-policy.routes.js.map +1 -1
  14. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts +92 -1
  15. package/dist/backend/backend/src/services/v3/kr-tracking.service.d.ts.map +1 -1
  16. package/dist/backend/backend/src/services/v3/kr-tracking.service.js +169 -1
  17. package/dist/backend/backend/src/services/v3/kr-tracking.service.js.map +1 -1
  18. package/dist/backend/backend/src/services/v3/mission-period.service.d.ts.map +1 -1
  19. package/dist/backend/backend/src/services/v3/mission-period.service.js +7 -1
  20. package/dist/backend/backend/src/services/v3/mission-period.service.js.map +1 -1
  21. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts +217 -0
  22. package/dist/backend/backend/src/services/v3/okr-cascade.service.d.ts.map +1 -0
  23. package/dist/backend/backend/src/services/v3/okr-cascade.service.js +417 -0
  24. package/dist/backend/backend/src/services/v3/okr-cascade.service.js.map +1 -0
  25. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts +11 -0
  26. package/dist/backend/backend/src/services/v3/okr-review.service.d.ts.map +1 -1
  27. package/dist/backend/backend/src/services/v3/okr-review.service.js +50 -0
  28. package/dist/backend/backend/src/services/v3/okr-review.service.js.map +1 -1
  29. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts +91 -0
  30. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.d.ts.map +1 -1
  31. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js +180 -0
  32. package/dist/backend/backend/src/services/wiki/wiki-migrate.service.js.map +1 -1
  33. package/dist/backend/backend/src/types/v2/index.d.ts +4 -4
  34. package/dist/backend/backend/src/types/v2/index.d.ts.map +1 -1
  35. package/dist/backend/backend/src/types/v2/index.js +2 -2
  36. package/dist/backend/backend/src/types/v2/index.js.map +1 -1
  37. package/dist/backend/backend/src/types/v2/key-result.types.d.ts +84 -0
  38. package/dist/backend/backend/src/types/v2/key-result.types.d.ts.map +1 -1
  39. package/dist/backend/backend/src/types/v2/key-result.types.js +73 -3
  40. package/dist/backend/backend/src/types/v2/key-result.types.js.map +1 -1
  41. package/dist/backend/backend/src/types/v2/mission.types.d.ts +235 -0
  42. package/dist/backend/backend/src/types/v2/mission.types.d.ts.map +1 -1
  43. package/dist/backend/backend/src/types/v2/mission.types.js +230 -0
  44. package/dist/backend/backend/src/types/v2/mission.types.js.map +1 -1
  45. package/package.json +1 -1
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * @module types/v2/key-result
9
9
  */
10
+ import type { MissionLevel } from './mission.types.js';
10
11
  /** How the KR value is interpreted. */
11
12
  export type KRMetricType = 'number' | 'percentage' | 'boolean' | 'currency';
12
13
  /** All valid KR metric types. */
@@ -113,6 +114,31 @@ export interface MissionOKRSummary {
113
114
  /** Recommendation for next action */
114
115
  recommendation: OKRRecommendation;
115
116
  }
117
+ /**
118
+ * Cross-level (cascade) roll-up of OKR progress for a Mission and its approved
119
+ * children, walking the `Mission.parentMissionId` tree (company → team →
120
+ * project).
121
+ *
122
+ * Extends {@link MissionOKRSummary} with the recursive subtree so a parent's
123
+ * progress reflects its children's progress. Only approved children are
124
+ * included (draft/pending_approval/rejected children are excluded from the
125
+ * roll-up per spec §4.2).
126
+ */
127
+ export interface CascadeOKRSummary extends MissionOKRSummary {
128
+ /** Cascade tier of this mission within company → team → project. */
129
+ level: MissionLevel;
130
+ /** Number of approved children that contributed to the roll-up. */
131
+ childMissionCount: number;
132
+ /**
133
+ * Rolled-up progress (0-100). Equal-weight average of this mission's own
134
+ * `overallProgress` and each approved child's `rolledUpProgress`. For a leaf
135
+ * (no approved children) this equals `overallProgress`. See
136
+ * {@link computeRolledUpProgress}.
137
+ */
138
+ rolledUpProgress: number;
139
+ /** Recursive roll-up summaries for each approved child mission. */
140
+ children: CascadeOKRSummary[];
141
+ }
116
142
  /**
117
143
  * Result of an OKR review cycle.
118
144
  */
@@ -170,6 +196,18 @@ export declare const MAX_MEASUREMENT_HISTORY = 50;
170
196
  * @returns Progress as 0-100 (clamped)
171
197
  */
172
198
  export declare function computeKRProgress(kr: Pick<KeyResult, 'baseline' | 'target' | 'current'>): number;
199
+ /**
200
+ * Progress thresholds (0-100) that delimit the KR status bands. A progress at or
201
+ * above a threshold maps to the associated status (checked high → low).
202
+ */
203
+ export declare const KR_STATUS_THRESHOLDS: {
204
+ /** At/above this progress the KR is fully achieved. */
205
+ readonly ACHIEVED: 100;
206
+ /** At/above this progress the KR is healthy / on track. */
207
+ readonly ON_TRACK: 50;
208
+ /** At/above this progress the KR is at risk (but not off track). */
209
+ readonly AT_RISK: 25;
210
+ };
173
211
  /**
174
212
  * Derive KR status from progress percentage.
175
213
  *
@@ -180,6 +218,52 @@ export declare function computeKRProgress(kr: Pick<KeyResult, 'baseline' | 'targ
180
218
  * - not_started: progress === 0% and current === baseline
181
219
  */
182
220
  export declare function deriveKRStatus(progress: number, current: number, baseline: number): KRStatus;
221
+ /**
222
+ * Map a cascade child's rolled-up progress to a single synthetic KR status used
223
+ * to fold the child into its parent's roll-up recommendation.
224
+ *
225
+ * Unlike {@link deriveKRStatus}, this mapper deliberately has NO
226
+ * `current === baseline` short-circuit: a child stalled at `0` progress is a
227
+ * genuine "in trouble" signal (`off_track`), NOT `not_started`. Treating an
228
+ * all-children-at-zero parent as `not_started` would suppress the
229
+ * escalate/replan recommendation the cascade is meant to surface (spec §4.2).
230
+ *
231
+ * Banding mirrors {@link deriveKRStatus}:
232
+ * - achieved: progress >= 100%
233
+ * - on_track: progress >= 50%
234
+ * - at_risk: progress >= 25%
235
+ * - off_track: progress < 25% (including exactly 0%)
236
+ *
237
+ * @param rolledUpProgress - The child's rolled-up progress (0-100)
238
+ * @returns The synthetic {@link KRStatus} for the child
239
+ *
240
+ * @example
241
+ * ```ts
242
+ * deriveCascadeChildStatus(0); // 'off_track' (a stalled child escalates)
243
+ * deriveCascadeChildStatus(75); // 'on_track'
244
+ * ```
245
+ */
246
+ export declare function deriveCascadeChildStatus(rolledUpProgress: number): KRStatus;
247
+ /**
248
+ * Compute an equal-weight rolled-up progress for a cascade node.
249
+ *
250
+ * v1 weighting is intentionally equal-weight: the node's own progress counts
251
+ * the same as each approved child's rolled-up progress. Future ownership /
252
+ * complexity weighting is a documented hook (spec §4.2) — pass per-input
253
+ * weights here when that lands; do NOT implement weighting now.
254
+ *
255
+ * @param ownProgress - This mission's own `overallProgress` (0-100)
256
+ * @param childProgresses - Each approved child's `rolledUpProgress` (0-100)
257
+ * @returns Equal-weight average rounded to an integer 0-100; for a leaf
258
+ * (no children) this equals `ownProgress` (rounded)
259
+ *
260
+ * @example
261
+ * ```ts
262
+ * computeRolledUpProgress(40, [80, 60]); // round((40 + 80 + 60) / 3) = 60
263
+ * computeRolledUpProgress(40, []); // 40 (leaf)
264
+ * ```
265
+ */
266
+ export declare function computeRolledUpProgress(ownProgress: number, childProgresses: number[]): number;
183
267
  /**
184
268
  * Create a new KeyResult from validated input.
185
269
  */
@@ -1 +1 @@
1
- {"version":3,"file":"key-result.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/key-result.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-result.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/key-result.types.ts"],"names":[],"mappings":"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"}
@@ -118,6 +118,18 @@ export function computeKRProgress(kr) {
118
118
  const progress = ((kr.current - kr.baseline) / range) * 100;
119
119
  return Math.max(0, Math.min(100, progress));
120
120
  }
121
+ /**
122
+ * Progress thresholds (0-100) that delimit the KR status bands. A progress at or
123
+ * above a threshold maps to the associated status (checked high → low).
124
+ */
125
+ export const KR_STATUS_THRESHOLDS = {
126
+ /** At/above this progress the KR is fully achieved. */
127
+ ACHIEVED: 100,
128
+ /** At/above this progress the KR is healthy / on track. */
129
+ ON_TRACK: 50,
130
+ /** At/above this progress the KR is at risk (but not off track). */
131
+ AT_RISK: 25,
132
+ };
121
133
  /**
122
134
  * Derive KR status from progress percentage.
123
135
  *
@@ -128,16 +140,74 @@ export function computeKRProgress(kr) {
128
140
  * - not_started: progress === 0% and current === baseline
129
141
  */
130
142
  export function deriveKRStatus(progress, current, baseline) {
131
- if (progress >= 100)
143
+ if (progress >= KR_STATUS_THRESHOLDS.ACHIEVED)
132
144
  return 'achieved';
133
145
  if (current === baseline)
134
146
  return 'not_started';
135
- if (progress >= 50)
147
+ if (progress >= KR_STATUS_THRESHOLDS.ON_TRACK)
148
+ return 'on_track';
149
+ if (progress >= KR_STATUS_THRESHOLDS.AT_RISK)
150
+ return 'at_risk';
151
+ return 'off_track';
152
+ }
153
+ /**
154
+ * Map a cascade child's rolled-up progress to a single synthetic KR status used
155
+ * to fold the child into its parent's roll-up recommendation.
156
+ *
157
+ * Unlike {@link deriveKRStatus}, this mapper deliberately has NO
158
+ * `current === baseline` short-circuit: a child stalled at `0` progress is a
159
+ * genuine "in trouble" signal (`off_track`), NOT `not_started`. Treating an
160
+ * all-children-at-zero parent as `not_started` would suppress the
161
+ * escalate/replan recommendation the cascade is meant to surface (spec §4.2).
162
+ *
163
+ * Banding mirrors {@link deriveKRStatus}:
164
+ * - achieved: progress >= 100%
165
+ * - on_track: progress >= 50%
166
+ * - at_risk: progress >= 25%
167
+ * - off_track: progress < 25% (including exactly 0%)
168
+ *
169
+ * @param rolledUpProgress - The child's rolled-up progress (0-100)
170
+ * @returns The synthetic {@link KRStatus} for the child
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * deriveCascadeChildStatus(0); // 'off_track' (a stalled child escalates)
175
+ * deriveCascadeChildStatus(75); // 'on_track'
176
+ * ```
177
+ */
178
+ export function deriveCascadeChildStatus(rolledUpProgress) {
179
+ if (rolledUpProgress >= KR_STATUS_THRESHOLDS.ACHIEVED)
180
+ return 'achieved';
181
+ if (rolledUpProgress >= KR_STATUS_THRESHOLDS.ON_TRACK)
136
182
  return 'on_track';
137
- if (progress >= 25)
183
+ if (rolledUpProgress >= KR_STATUS_THRESHOLDS.AT_RISK)
138
184
  return 'at_risk';
139
185
  return 'off_track';
140
186
  }
187
+ /**
188
+ * Compute an equal-weight rolled-up progress for a cascade node.
189
+ *
190
+ * v1 weighting is intentionally equal-weight: the node's own progress counts
191
+ * the same as each approved child's rolled-up progress. Future ownership /
192
+ * complexity weighting is a documented hook (spec §4.2) — pass per-input
193
+ * weights here when that lands; do NOT implement weighting now.
194
+ *
195
+ * @param ownProgress - This mission's own `overallProgress` (0-100)
196
+ * @param childProgresses - Each approved child's `rolledUpProgress` (0-100)
197
+ * @returns Equal-weight average rounded to an integer 0-100; for a leaf
198
+ * (no children) this equals `ownProgress` (rounded)
199
+ *
200
+ * @example
201
+ * ```ts
202
+ * computeRolledUpProgress(40, [80, 60]); // round((40 + 80 + 60) / 3) = 60
203
+ * computeRolledUpProgress(40, []); // 40 (leaf)
204
+ * ```
205
+ */
206
+ export function computeRolledUpProgress(ownProgress, childProgresses) {
207
+ const values = [ownProgress, ...childProgresses];
208
+ const total = values.reduce((sum, v) => sum + v, 0);
209
+ return Math.round(total / values.length);
210
+ }
141
211
  /**
142
212
  * Create a new KeyResult from validated input.
143
213
  */
@@ -1 +1 @@
1
- {"version":3,"file":"key-result.types.js","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/key-result.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"key-result.types.js","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/key-result.types.ts"],"names":[],"mappings":"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"}
@@ -26,6 +26,119 @@ export declare const MISSION_STATUSES: readonly MissionStatus[];
26
26
  export declare const TERMINAL_MISSION_STATUSES: ReadonlySet<MissionStatus>;
27
27
  /** Valid mission status transitions. */
28
28
  export declare const MISSION_TRANSITIONS: Record<MissionStatus, ReadonlySet<MissionStatus>>;
29
+ /**
30
+ * Organizational tier of a Mission within the OKR cascade.
31
+ *
32
+ * The cascade is the Mission tree expressed via `Mission.parentMissionId`:
33
+ * company → team → project (3 levels).
34
+ *
35
+ * - `company`: root of the cascade; has no parent Mission.
36
+ * - `team`: decomposes a company Mission; parent must be `company`.
37
+ * - `project`: decomposes a team Mission; parent must be `team`; `projectId` set.
38
+ */
39
+ export type MissionLevel = 'company' | 'team' | 'project';
40
+ /** All valid MissionLevel values, ordered top → bottom of the cascade. */
41
+ export declare const MISSION_LEVELS: readonly MissionLevel[];
42
+ /**
43
+ * Numeric depth of each cascade tier (company = 0, team = 1, project = 2).
44
+ * Used to enforce the "child is exactly one tier below parent" rule.
45
+ */
46
+ export declare const MISSION_LEVEL_DEPTH: Record<MissionLevel, number>;
47
+ /** Depth threshold at or beyond which a mission is treated as `project` level. */
48
+ export declare const PROJECT_LEVEL_DEPTH = 2;
49
+ /**
50
+ * Checks whether a string is a valid MissionLevel.
51
+ *
52
+ * @param value - Candidate string
53
+ * @returns `true` if `value` is one of `company` | `team` | `project`
54
+ */
55
+ export declare function isValidMissionLevel(value: string): value is MissionLevel;
56
+ /**
57
+ * Validates a single downward cascade step: a child level may only sit exactly
58
+ * one tier below its parent, and `company` must be a root (no parent).
59
+ *
60
+ * Adjacency matrix:
61
+ * | child | required parent | parentMissionId |
62
+ * |---------|-----------------|-------------------|
63
+ * | company | — | must be undefined |
64
+ * | team | company | required |
65
+ * | project | team | required |
66
+ *
67
+ * @param childLevel - The level of the child mission
68
+ * @param parentLevel - The level of the parent mission, or `undefined` if no parent
69
+ * @returns `null` if the pairing is legal, otherwise a human-readable reason
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * validateLevelLink('team', 'company'); // null
74
+ * validateLevelLink('company', 'team'); // "A company mission cannot have a parent"
75
+ * ```
76
+ */
77
+ export declare function validateLevelLink(childLevel: MissionLevel, parentLevel: MissionLevel | undefined): string | null;
78
+ /**
79
+ * Lifecycle state of a decomposition proposal.
80
+ *
81
+ * A team-leader/PM agent drafts a child OKR decomposition as a proposal; it is
82
+ * NOT cascade-active until the human owner approves. Reject carries a reason.
83
+ *
84
+ * - `draft`: agent is still composing the proposal.
85
+ * - `pending_approval`: submitted, awaiting the human owner's decision.
86
+ * - `approved`: owner accepted; mission is now cascade-active (terminal).
87
+ * - `rejected`: owner declined with a reason; owner may request a redraft.
88
+ */
89
+ export type ProposalState = 'draft' | 'pending_approval' | 'approved' | 'rejected';
90
+ /** All valid ProposalState values. */
91
+ export declare const PROPOSAL_STATES: readonly ProposalState[];
92
+ /**
93
+ * Legal proposal-state transitions.
94
+ *
95
+ * - draft → pending_approval
96
+ * - pending_approval → approved | rejected
97
+ * - approved → (terminal)
98
+ * - rejected → draft (owner can ask for a redraft)
99
+ */
100
+ export declare const PROPOSAL_TRANSITIONS: Record<ProposalState, ReadonlySet<ProposalState>>;
101
+ /**
102
+ * Checks whether a string is a valid ProposalState.
103
+ *
104
+ * @param value - Candidate string
105
+ * @returns `true` if `value` is one of the four proposal states
106
+ */
107
+ export declare function isValidProposalState(value: string): value is ProposalState;
108
+ /**
109
+ * Checks whether a proposal-state transition is legal.
110
+ *
111
+ * @param from - Current proposal state
112
+ * @param to - Proposed next proposal state
113
+ * @returns `true` if `from → to` is an allowed transition
114
+ *
115
+ * @example
116
+ * ```ts
117
+ * isValidProposalTransition('pending_approval', 'approved'); // true
118
+ * isValidProposalTransition('approved', 'draft'); // false
119
+ * ```
120
+ */
121
+ export declare function isValidProposalTransition(from: ProposalState, to: ProposalState): boolean;
122
+ /**
123
+ * Governance metadata attached to a Mission that arose from a decomposition
124
+ * proposal. Kept small and self-contained so the approval *workflow* layer can
125
+ * be relocated to `crewly-pro` later without touching `Mission` core (see
126
+ * spec §2.5 FLAG).
127
+ */
128
+ export interface ApprovalState {
129
+ /** Current proposal lifecycle state. */
130
+ state: ProposalState;
131
+ /** Agent session that drafted the decomposition. */
132
+ proposedBy?: string;
133
+ /** ISO8601 timestamp the proposal was submitted. */
134
+ proposedAt?: string;
135
+ /** Human owner who decided (e.g. "steve"). */
136
+ decidedBy?: string;
137
+ /** ISO8601 timestamp of the decision. */
138
+ decidedAt?: string;
139
+ /** Required when `state === 'rejected'`. */
140
+ rejectionReason?: string;
141
+ }
29
142
  /**
30
143
  * Priority levels for a Mission.
31
144
  *
@@ -226,6 +339,21 @@ export interface Mission {
226
339
  * Must not be self, and the resulting chain must not form a cycle.
227
340
  */
228
341
  parentMissionId?: string;
342
+ /**
343
+ * Cascade tier of this mission. When absent (legacy missions), it is resolved
344
+ * via {@link resolveMissionLevel}, which falls back to {@link deriveLevel}:
345
+ * a parentless legacy mission resolves to `company`, a one-parent chain to
346
+ * `team`, and a two-or-more-parent chain to `project`.
347
+ */
348
+ level?: MissionLevel;
349
+ /** Project this mission belongs to. REQUIRED when `level === 'project'`. */
350
+ projectId?: string;
351
+ /**
352
+ * Decomposition governance. Absent ⇒ treat as already-active (legacy
353
+ * missions). A mission is cascade-active iff `approval` is absent OR
354
+ * `approval.state === 'approved'`.
355
+ */
356
+ approval?: ApprovalState;
229
357
  }
230
358
  /**
231
359
  * Actions that can be checked against a MissionPolicy.
@@ -283,6 +411,33 @@ export interface CreateMissionInput {
283
411
  ownerId?: string;
284
412
  /** Optional parent Mission ID (validated to avoid self-ref and cycles). */
285
413
  parentMissionId?: string;
414
+ /** Cascade tier. Inferred from the parent chain when omitted. */
415
+ level?: MissionLevel;
416
+ /** Project this mission belongs to. Required when `level === 'project'`. */
417
+ projectId?: string;
418
+ /** Decomposition governance state (set when created via a proposal). */
419
+ approval?: ApprovalState;
420
+ }
421
+ /**
422
+ * Input for updating an existing Mission (general updater).
423
+ *
424
+ * Excludes the immutable `id` and `createdAt`. Every field is optional so a
425
+ * caller may PATCH any subset. `approval.state` transitions are NOT enforced
426
+ * here — they must flow through the dedicated approve/reject workflow so there
427
+ * is a single source of transition enforcement (spec §3.3).
428
+ */
429
+ export interface UpdateMissionInput {
430
+ objective?: string;
431
+ currentStrategy?: string;
432
+ successCriteria?: string[];
433
+ status?: MissionStatus;
434
+ priority?: MissionPriority;
435
+ period?: MissionPeriod;
436
+ keyResultIds?: string[];
437
+ parentMissionId?: string;
438
+ level?: MissionLevel;
439
+ projectId?: string;
440
+ approval?: ApprovalState;
286
441
  }
287
442
  /**
288
443
  * Input for updating a MissionPolicy.
@@ -397,6 +552,24 @@ export interface MissionPeriod {
397
552
  export declare function isPeriodActive(period: MissionPeriod, now?: Date): boolean;
398
553
  export declare function isPeriodPast(period: MissionPeriod, now?: Date): boolean;
399
554
  export declare function isPeriodFuture(period: MissionPeriod, now?: Date): boolean;
555
+ /**
556
+ * Build a `monthly` MissionPeriod for a given calendar month.
557
+ *
558
+ * The period is half-open `[first day of month, first day of next month)`,
559
+ * matching the `now >= start && now < end` convention used by
560
+ * {@link isPeriodActive}. Dates are UTC so the boundaries are deterministic
561
+ * regardless of server timezone. Handles December → January year rollover.
562
+ *
563
+ * @param year - Full year, e.g. `2026`.
564
+ * @param month - 1-based month (`1` = January … `12` = December).
565
+ * @returns A `monthly` MissionPeriod with ISO8601 start/end and a `YYYY-MM` label.
566
+ *
567
+ * @example
568
+ * ```typescript
569
+ * createMonthlyPeriod(2026, 3); // March 2026: 2026-03-01 → 2026-04-01, label "2026-03"
570
+ * ```
571
+ */
572
+ export declare function createMonthlyPeriod(year: number, month: number): MissionPeriod;
400
573
  /**
401
574
  * Validates a proposed parent link between a child mission and a parent.
402
575
  *
@@ -416,6 +589,68 @@ export declare function isPeriodFuture(period: MissionPeriod, now?: Date): boole
416
589
  * ```
417
590
  */
418
591
  export declare function validateParentLink(childId: string, parentId: string, byId: ReadonlyMap<string, Pick<Mission, 'id' | 'parentMissionId'>>): string | null;
592
+ /**
593
+ * Derives a Mission's cascade level by walking its `parentMissionId` chain.
594
+ *
595
+ * Depth 0 (no parent) ⇒ `company`, depth 1 ⇒ `team`, depth ≥ 2 ⇒ `project`.
596
+ * Used to backfill `level` for legacy missions persisted before the cascade
597
+ * fields existed. Guards against cycles defensively (returns the level computed
598
+ * at the point a repeat is detected rather than looping forever).
599
+ *
600
+ * @param missionId - The mission whose level to derive
601
+ * @param byId - All missions indexed by ID (need only `id` + `parentMissionId`)
602
+ * @returns The derived MissionLevel
603
+ *
604
+ * @example
605
+ * ```ts
606
+ * deriveLevel('teamM', new Map([['teamM', { id: 'teamM', parentMissionId: 'co' }], ['co', { id: 'co' }]])); // 'team'
607
+ * ```
608
+ */
609
+ export declare function deriveLevel(missionId: string, byId: ReadonlyMap<string, Pick<Mission, 'id' | 'parentMissionId'>>): MissionLevel;
610
+ /**
611
+ * Resolve a mission's effective cascade level through a SINGLE canonical rule,
612
+ * shared by every read path (cascade service, mission routes' read-migration).
613
+ *
614
+ * Prefers the mission's explicit `level`; when absent (legacy missions persisted
615
+ * before the cascade fields existed) it falls back to {@link deriveLevel}, which
616
+ * walks the `parentMissionId` chain (no parent ⇒ `company`, one parent ⇒ `team`,
617
+ * two-or-more ⇒ `project`). Centralising the fallback here guarantees the same
618
+ * document resolves to the same level no matter which code path reads it.
619
+ *
620
+ * @param mission - The mission whose level to resolve (needs `id`, optional
621
+ * `level` + `parentMissionId`)
622
+ * @param byId - All missions indexed by ID for the parent-chain walk
623
+ * @returns The resolved {@link MissionLevel}
624
+ *
625
+ * @example
626
+ * ```ts
627
+ * resolveMissionLevel({ id: 'co', }, byId); // 'company' (no parent)
628
+ * resolveMissionLevel({ id: 't', parentMissionId: 'co' }, byId); // 'team'
629
+ * ```
630
+ */
631
+ export declare function resolveMissionLevel(mission: Pick<Mission, 'id' | 'level' | 'parentMissionId'>, byId: ReadonlyMap<string, Pick<Mission, 'id' | 'parentMissionId'>>): MissionLevel;
632
+ /**
633
+ * Combined cascade-link guard: runs the raw cycle/self-ref check
634
+ * ({@link validateParentLink}) AND the level-adjacency check
635
+ * ({@link validateLevelLink}). The parent's level is read from `byId` (its own
636
+ * `level` field, falling back to {@link deriveLevel} when absent).
637
+ *
638
+ * `validateParentLink` keeps its original signature for callers that only need
639
+ * the cycle check.
640
+ *
641
+ * @param childId - The mission that would acquire the parent
642
+ * @param childLevel - The proposed level of the child mission
643
+ * @param parentId - The proposed parent mission ID, or `undefined` for a root
644
+ * @param byId - All existing missions indexed by ID
645
+ * @returns `null` if the link is valid, otherwise a human-readable reason
646
+ *
647
+ * @example
648
+ * ```ts
649
+ * const reason = validateCascadeLink('p1', 'project', 't1', byId);
650
+ * if (reason) throw new Error(reason);
651
+ * ```
652
+ */
653
+ export declare function validateCascadeLink(childId: string, childLevel: MissionLevel, parentId: string | undefined, byId: ReadonlyMap<string, Pick<Mission, 'id' | 'parentMissionId' | 'level'>>): string | null;
419
654
  /**
420
655
  * Sort missions by status (active first), then by priority rank, then by recency.
421
656
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mission.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/mission.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mission.types.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/types/v2/mission.types.ts"],"names":[],"mappings":"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"}