@gitgov/core 2.7.2 → 2.8.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.
@@ -67,7 +67,7 @@ interface RecordStore<V, R = void, O = void> {
67
67
  * and run 'pnpm compile:types' to regenerate this file.
68
68
  */
69
69
  /**
70
- * Canonical schema for actor records as defined in actor_protocol.md
70
+ * Canonical schema for actor records as defined in 02_actor.md
71
71
  */
72
72
  interface ActorRecord {
73
73
  /**
@@ -112,42 +112,20 @@ interface ActorRecord {
112
112
  * and run 'pnpm compile:types' to regenerate this file.
113
113
  */
114
114
  /**
115
- * Canonical schema for agent operational manifests.
115
+ * Canonical schema for agent operational manifests — the work contract that defines how an agent is invoked.
116
116
  */
117
117
  interface AgentRecord<TMetadata = object> {
118
118
  /**
119
- * Unique identifier for the agent, linking to an ActorRecord.
119
+ * Unique identifier for the agent, linking 1:1 to an ActorRecord of type agent.
120
120
  */
121
121
  id: string;
122
- status?: 'active' | 'archived';
123
122
  /**
124
- * Optional list of triggers that activate the agent.
125
- * Additional fields are allowed and depend on trigger type:
126
- * - webhook triggers: 'event' (event identifier), 'filter' (condition)
127
- * - scheduled triggers: 'cron' (cron expression)
128
- * - manual triggers: 'command' (example CLI command)
129
- *
123
+ * Operational status. An archived agent cannot be invoked.
130
124
  */
131
- triggers?: {
132
- /**
133
- * Type of trigger that activates the agent
134
- */
135
- type: 'manual' | 'webhook' | 'scheduled';
136
- [k: string]: unknown | undefined;
137
- }[];
138
- knowledge_dependencies?: string[];
139
- prompt_engine_requirements?: {
140
- roles?: string[];
141
- skills?: string[];
142
- };
125
+ status?: 'active' | 'archived';
143
126
  /**
144
- * Optional framework-specific or deployment-specific metadata for agent extensions.
145
- * Common use cases: framework identification (langchain, google-adk), deployment info (provider, image, region),
146
- * cost tracking (cost_per_invocation, currency), tool capabilities, maintainer info.
147
- * This field does NOT affect agent execution - it is purely informational.
148
- *
127
+ * Invocation specification defines how the agent is executed. Uses oneOf with 4 variants: local, api, mcp, custom.
149
128
  */
150
- metadata?: TMetadata;
151
129
  engine: {
152
130
  type: 'local';
153
131
  /**
@@ -168,6 +146,9 @@ interface AgentRecord<TMetadata = object> {
168
146
  * HTTP endpoint for the agent
169
147
  */
170
148
  url: string;
149
+ /**
150
+ * HTTP method
151
+ */
171
152
  method?: 'POST' | 'GET' | 'PUT';
172
153
  /**
173
154
  * Authentication configuration for API requests
@@ -194,7 +175,7 @@ interface AgentRecord<TMetadata = object> {
194
175
  */
195
176
  url: string;
196
177
  /**
197
- * Name of the MCP tool to invoke. If not specified, defaults to agentId without 'agent:' prefix.
178
+ * Name of the MCP tool to invoke. If omitted, the agent has access to all tools on the server.
198
179
  */
199
180
  tool?: string;
200
181
  /**
@@ -226,67 +207,37 @@ interface AgentRecord<TMetadata = object> {
226
207
  */
227
208
  config?: {};
228
209
  };
229
- }
230
-
231
- /**
232
- * This file was automatically generated from changelog_record_schema.json.
233
- * DO NOT MODIFY IT BY HAND. Instead, modify the source schema,
234
- * and run 'pnpm compile:types' to regenerate this file.
235
- */
236
- /**
237
- * Canonical schema for changelog records - aggregates N tasks into 1 release note
238
- */
239
- interface ChangelogRecord {
240
- /**
241
- * Unique identifier for the changelog entry
242
- */
243
- id: string;
244
- /**
245
- * Executive title of the deliverable
246
- */
247
- title: string;
248
- /**
249
- * Detailed description of the value delivered, including key decisions and impact
250
- */
251
- description: string;
252
210
  /**
253
- * IDs of tasks that compose this deliverable (minimum 1 required)
211
+ * Optional list of triggers that activate the agent.
212
+ * Additional fields are allowed and depend on trigger type:
213
+ * - manual: 'command' (example CLI command)
214
+ * - webhook: 'event' (event identifier), 'filter' (condition)
215
+ * - scheduled: 'cron' (cron expression)
254
216
  *
255
- * @minItems 1
256
- */
257
- relatedTasks: [string, ...string[]];
258
- /**
259
- * Unix timestamp in seconds when the deliverable was completed
260
- */
261
- completedAt: number;
262
- /**
263
- * Optional IDs of cycles related to this deliverable
264
- */
265
- relatedCycles?: string[];
266
- /**
267
- * Optional IDs of key execution records related to this work
268
- */
269
- relatedExecutions?: string[];
270
- /**
271
- * Optional version or release identifier (e.g., 'v1.0.0', 'sprint-24')
272
- */
273
- version?: string;
274
- /**
275
- * Optional tags for categorization (e.g., 'feature:auth', 'bugfix', 'security')
276
- */
277
- tags?: string[];
278
- /**
279
- * Optional list of git commit hashes related to this deliverable
280
217
  */
281
- commits?: string[];
218
+ triggers?: {
219
+ /**
220
+ * Type of trigger that activates the agent
221
+ */
222
+ type: 'manual' | 'webhook' | 'scheduled';
223
+ [k: string]: unknown | undefined;
224
+ }[];
225
+ knowledge_dependencies?: string[];
282
226
  /**
283
- * Optional list of main files that were created or modified
227
+ * Requirements for prompt composition roles and skills the agent needs.
284
228
  */
285
- files?: string[];
229
+ prompt_engine_requirements?: {
230
+ roles?: string[];
231
+ skills?: string[];
232
+ };
286
233
  /**
287
- * Optional additional context, decisions, or learnings
234
+ * Optional framework-specific or deployment-specific metadata.
235
+ * Common use cases: framework identification (langchain, google-adk), deployment info,
236
+ * cost tracking, tool capabilities, maintainer info.
237
+ * This field does NOT affect agent execution — it is purely informational.
238
+ *
288
239
  */
289
- notes?: string;
240
+ metadata?: TMetadata;
290
241
  }
291
242
 
292
243
  /**
@@ -295,27 +246,27 @@ interface ChangelogRecord {
295
246
  * and run 'pnpm compile:types' to regenerate this file.
296
247
  */
297
248
  /**
298
- * Canonical schema for cycle records - strategic grouping of work
249
+ * Canonical schema for cycle records strategic grouping of work into sprints, milestones, or roadmaps.
299
250
  */
300
- interface CycleRecord {
251
+ interface CycleRecord<TMetadata = object> {
301
252
  /**
302
- * Unique identifier for the cycle (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max)
253
+ * Unique identifier for the cycle (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max).
303
254
  */
304
255
  id: string;
305
256
  /**
306
- * Human-readable title for the cycle (e.g., 'Sprint 24', 'Auth v2.0', 'Q4 2025')
257
+ * Human-readable title for the cycle (e.g., 'Sprint 24', 'Auth v2.0', 'Q4 2025').
307
258
  */
308
259
  title: string;
309
260
  /**
310
- * The lifecycle status of the cycle
261
+ * The lifecycle status of the cycle.
311
262
  */
312
263
  status: 'planning' | 'active' | 'completed' | 'archived';
313
264
  /**
314
- * Optional array of Task IDs that belong to this cycle. Can be empty for cycles that only contain child cycles. (10 timestamp + 1 dash + 4 'task' + 1 dash + max 50 slug = 66 max)
265
+ * Optional array of Task IDs that belong to this cycle. Bidirectional with TaskRecord.cycleIds. Can be empty for container cycles.
315
266
  */
316
267
  taskIds?: string[];
317
268
  /**
318
- * Optional array of Cycle IDs that are children of this cycle, allowing for hierarchies (e.g., Q1 containing Sprint 1, Sprint 2, Sprint 3). (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max)
269
+ * Optional array of child Cycle IDs for hierarchical composition (e.g., Q1 containing Sprint 1, Sprint 2, Sprint 3).
319
270
  */
320
271
  childCycleIds?: string[];
321
272
  /**
@@ -323,9 +274,17 @@ interface CycleRecord {
323
274
  */
324
275
  tags?: string[];
325
276
  /**
326
- * Optional description of the cycle's goals, objectives, and context
277
+ * Optional description of the cycle's goals, objectives, and context.
327
278
  */
328
279
  notes?: string;
280
+ /**
281
+ * Optional structured data for machine consumption.
282
+ * Use this field for domain-specific data that needs to be programmatically processed.
283
+ * Extends the strategic grouping with structured, queryable attributes.
284
+ * Common use cases: epic lifecycle, sprint configuration, OKR tracking, budget allocation.
285
+ *
286
+ */
287
+ metadata?: TMetadata;
329
288
  }
330
289
 
331
290
  /**
@@ -334,57 +293,59 @@ interface CycleRecord {
334
293
  * and run 'pnpm compile:types' to regenerate this file.
335
294
  */
336
295
  /**
337
- * Canonical schema for execution log records - the universal event stream
296
+ * Canonical schema for execution log records - the universal event stream.
338
297
  */
339
298
  interface ExecutionRecord<TMetadata = object> {
340
299
  /**
341
- * Unique identifier for the execution log entry (10 timestamp + 1 dash + 4 'exec' + 1 dash + max 50 slug = 66 max)
300
+ * Unique identifier for the execution log entry.
342
301
  */
343
302
  id: string;
344
303
  /**
345
- * ID of the parent task this execution belongs to (10 timestamp + 1 dash + 4 'task' + 1 dash + max 50 slug = 66 max)
304
+ * ID of the parent task this execution belongs to.
346
305
  */
347
306
  taskId: string;
348
307
  /**
349
- * Semantic classification of the execution event
308
+ * Classifies what happened in this execution event. Primitive types cover the fundamental kinds of events that occur during any collaborative work. Extend with 'custom:' for your domain.
309
+ * Primitive types:
310
+ * - analysis: Investigation, research, or evaluation before acting.
311
+ * - decision: A choice that changes the direction of work.
312
+ * - progress: Incremental advancement of work.
313
+ * - blocker: An impediment preventing further progress.
314
+ * - completion: Work on the task is finished.
315
+ * - correction: A fix to something previously done incorrectly.
316
+ * - info: Informational note or status update.
317
+ *
318
+ * Custom types use the 'custom:' prefix for industry-specific extensions. Software development examples:
319
+ * - custom:review (code review, design review, QA)
320
+ * - custom:deployment (deploy to staging/production)
321
+ * - custom:rollback (revert a deployment or change)
322
+ * - custom:release (version release, PR merge to main)
323
+ * - custom:hotfix (emergency fix in production)
324
+ * Implementations that encounter an unrecognized custom type MUST treat it as 'info' for display purposes.
325
+ *
350
326
  */
351
- type: 'analysis' | 'progress' | 'blocker' | 'completion' | 'info' | 'correction';
327
+ type: string;
352
328
  /**
353
- * Human-readable title for the execution (used to generate ID)
329
+ * Human-readable title for the execution (used to generate ID slug).
354
330
  */
355
331
  title: string;
356
332
  /**
357
- * The tangible, verifiable output or result of the execution.
358
- * This is the "WHAT" - evidence of work or event summary.
333
+ * The tangible, verifiable output or result of the execution. This is the "WHAT" - evidence of work or event summary.
359
334
  *
360
335
  */
361
336
  result: string;
362
337
  /**
363
- * Optional narrative, context and decisions behind the execution.
364
- * This is the "HOW" and "WHY" - the story behind the result.
338
+ * Optional narrative, context and decisions behind the execution. This is the "HOW" and "WHY" - the story behind the result.
365
339
  *
366
340
  */
367
341
  notes?: string;
368
342
  /**
369
- * Optional list of typed references to relevant commits, files, PRs, or external documents.
370
- * Should use typed prefixes for clarity and trazabilidad (see execution_protocol_appendix.md):
371
- * - commit: Git commit SHA
372
- * - pr: Pull Request number
373
- * - file: File path (relative to repo root)
374
- * - url: External URL
375
- * - issue: GitHub Issue number
376
- * - task: TaskRecord ID
377
- * - exec: ExecutionRecord ID (for corrections or dependencies)
378
- * - changelog: ChangelogRecord ID
343
+ * Optional list of typed references to relevant commits, files, PRs, or external documents. Standard prefixes: commit:, pr:, issue:, file:, url:, task:, exec:.
379
344
  *
380
345
  */
381
346
  references?: string[];
382
347
  /**
383
- * Optional structured data for machine consumption.
384
- * Use this field for data that needs to be programmatically processed (e.g., audit findings,
385
- * performance metrics, scan results). This complements result (human-readable WHAT) and
386
- * notes (narrative HOW/WHY) by providing structured, queryable data.
387
- * Common use cases: audit findings arrays, performance metrics, tool outputs, scan summaries.
348
+ * Optional structured data for machine consumption. Use this field for data that needs to be programmatically processed (e.g., audit findings, performance metrics, scan results). Complements result (WHAT) and notes (HOW/WHY) with structured, queryable data.
388
349
  *
389
350
  */
390
351
  metadata?: TMetadata;
@@ -396,49 +357,53 @@ interface ExecutionRecord<TMetadata = object> {
396
357
  * and run 'pnpm compile:types' to regenerate this file.
397
358
  */
398
359
  /**
399
- * Canonical schema for feedback records - structured conversation about work
360
+ * Canonical schema for feedback records the structured conversation about work.
400
361
  */
401
- interface FeedbackRecord<TMetadata = object> {
362
+ type FeedbackRecord<TMetadata = object> = {
363
+ [k: string]: unknown | undefined;
364
+ } & {
402
365
  /**
403
- * Unique identifier for the feedback entry
366
+ * Unique identifier for the feedback entry (10 timestamp + 1 dash + 8 'feedback' + 1 dash + max 50 slug = 70 max)
404
367
  */
405
368
  id: string;
406
369
  /**
407
- * The type of entity this feedback refers to
370
+ * The type of entity this feedback refers to.
408
371
  */
409
- entityType: 'task' | 'execution' | 'changelog' | 'feedback' | 'cycle';
372
+ entityType: 'actor' | 'agent' | 'task' | 'execution' | 'feedback' | 'cycle' | 'workflow';
410
373
  /**
411
374
  * The ID of the entity this feedback refers to.
412
- * Must match the pattern for its entityType:
375
+ * Must match the ID pattern for its entityType:
376
+ * - actor: ^(human|agent)(:[a-z0-9-]+)+$
377
+ * - agent: ^agent(:[a-z0-9-]+)+$
413
378
  * - task: ^\d{10}-task-[a-z0-9-]{1,50}$
414
379
  * - execution: ^\d{10}-exec-[a-z0-9-]{1,50}$
415
- * - changelog: ^\d{10}-changelog-[a-z0-9-]{1,50}$
416
380
  * - feedback: ^\d{10}-feedback-[a-z0-9-]{1,50}$
417
381
  * - cycle: ^\d{10}-cycle-[a-z0-9-]{1,50}$
382
+ * - workflow: ^\d{10}-workflow-[a-z0-9-]{1,50}$
418
383
  *
419
384
  */
420
385
  entityId: string;
421
386
  /**
422
- * The semantic intent of the feedback
387
+ * The semantic intent of the feedback.
423
388
  */
424
389
  type: 'blocking' | 'suggestion' | 'question' | 'approval' | 'clarification' | 'assignment';
425
390
  /**
426
391
  * The lifecycle status of the feedback.
427
- * Note: FeedbackRecords are immutable. To change status, create a new feedback
392
+ * FeedbackRecords are immutable. To change status, create a new FeedbackRecord
428
393
  * that references this one using entityType: "feedback" and resolvesFeedbackId.
429
394
  *
430
395
  */
431
396
  status: 'open' | 'acknowledged' | 'resolved' | 'wontfix';
432
397
  /**
433
- * The content of the feedback. Reduced from 10000 to 5000 chars for practical use.
398
+ * The content of the feedback.
434
399
  */
435
400
  content: string;
436
401
  /**
437
- * Optional. The Actor ID responsible for addressing the feedback (e.g., 'human:maria', 'agent:camilo:cursor')
402
+ * Optional. The Actor ID responsible for addressing the feedback (e.g., 'human:maria', 'agent:camilo:cursor').
438
403
  */
439
404
  assignee?: string;
440
405
  /**
441
- * Optional. The ID of another feedback record that this one resolves or responds to
406
+ * Optional. The ID of another FeedbackRecord that this one resolves or responds to.
442
407
  */
443
408
  resolvesFeedbackId?: string;
444
409
  /**
@@ -448,7 +413,7 @@ interface FeedbackRecord<TMetadata = object> {
448
413
  *
449
414
  */
450
415
  metadata?: TMetadata;
451
- }
416
+ };
452
417
 
453
418
  /**
454
419
  * This file was automatically generated from task_record_schema.json.
@@ -456,9 +421,9 @@ interface FeedbackRecord<TMetadata = object> {
456
421
  * and run 'pnpm compile:types' to regenerate this file.
457
422
  */
458
423
  /**
459
- * Canonical schema for task records as defined in task_protocol.md
424
+ * Canonical schema for task records as defined in 04_task.md
460
425
  */
461
- interface TaskRecord {
426
+ interface TaskRecord<TMetadata = object> {
462
427
  /**
463
428
  * Unique identifier for the task (10 timestamp + 1 dash + 4 'task' + 1 dash + max 50 slug = 66 max)
464
429
  */
@@ -495,6 +460,14 @@ interface TaskRecord {
495
460
  * Additional comments, decisions made or added context
496
461
  */
497
462
  notes?: string;
463
+ /**
464
+ * Optional structured data for machine consumption.
465
+ * Use this field for domain-specific data that needs to be programmatically processed.
466
+ * Complements tags (classification) and notes (free text) with structured, queryable data.
467
+ * Common use cases: epic metadata, external tool references, agent metrics, compliance tags.
468
+ *
469
+ */
470
+ metadata?: TMetadata;
498
471
  }
499
472
 
500
473
  /**
@@ -506,15 +479,25 @@ interface TaskRecord {
506
479
  * Canonical schema for the wrapper structure of all GitGovernance records.
507
480
  */
508
481
  type EmbeddedMetadataRecord$1 = {
482
+ [k: string]: unknown | undefined;
483
+ } & {
509
484
  header: {
510
485
  /**
511
- * Version of the embedded metadata format.
486
+ * Protocol version in MAJOR.MINOR format (e.g. "1.1", "2.0").
512
487
  */
513
- version: '1.0';
488
+ version: string;
514
489
  /**
515
490
  * The type of the record contained in the payload.
516
491
  */
517
- type: 'actor' | 'agent' | 'task' | 'execution' | 'changelog' | 'feedback' | 'cycle';
492
+ type: 'actor' | 'agent' | 'task' | 'execution' | 'feedback' | 'cycle' | 'workflow' | 'custom';
493
+ /**
494
+ * URL to a custom schema for the payload. Required when type is 'custom'.
495
+ */
496
+ schemaUrl?: string;
497
+ /**
498
+ * SHA-256 checksum of the custom schema. Required when type is 'custom'.
499
+ */
500
+ schemaChecksum?: string;
518
501
  /**
519
502
  * SHA-256 checksum of the canonically serialized payload.
520
503
  */
@@ -527,11 +510,11 @@ type EmbeddedMetadataRecord$1 = {
527
510
  signatures: [
528
511
  {
529
512
  /**
530
- * The Actor ID of the signer (must match ActorRecord.id pattern).
513
+ * The Actor ID of the signer. Supports scoped identifiers (e.g. agent:camilo:cursor).
531
514
  */
532
515
  keyId: string;
533
516
  /**
534
- * The context role of the signature (e.g., 'author', 'reviewer', 'auditor', or 'custom:*').
517
+ * The context role of the signature (e.g., 'author', 'reviewer', or 'custom:*').
535
518
  */
536
519
  role: string;
537
520
  /**
@@ -549,11 +532,11 @@ type EmbeddedMetadataRecord$1 = {
549
532
  },
550
533
  ...{
551
534
  /**
552
- * The Actor ID of the signer (must match ActorRecord.id pattern).
535
+ * The Actor ID of the signer. Supports scoped identifiers (e.g. agent:camilo:cursor).
553
536
  */
554
537
  keyId: string;
555
538
  /**
556
- * The context role of the signature (e.g., 'author', 'reviewer', 'auditor', or 'custom:*').
539
+ * The context role of the signature (e.g., 'author', 'reviewer', or 'custom:*').
557
540
  */
558
541
  role: string;
559
542
  /**
@@ -575,8 +558,6 @@ type EmbeddedMetadataRecord$1 = {
575
558
  * The specific record data, validated against the schema defined by header.type.
576
559
  */
577
560
  payload: {};
578
- } & {
579
- [k: string]: unknown | undefined;
580
561
  };
581
562
 
582
563
  /**
@@ -602,11 +583,11 @@ type EmbeddedMetadataRecord<T extends GitGovRecordPayload> = {
602
583
  /**
603
584
  * Defines the possible 'type' values for any record in the system.
604
585
  */
605
- type GitGovRecordType = "actor" | "agent" | "cycle" | "task" | "execution" | "changelog" | "feedback";
586
+ type GitGovRecordType = "actor" | "agent" | "cycle" | "task" | "execution" | "feedback";
606
587
  /**
607
588
  * The canonical payload for any GitGovernance record.
608
589
  */
609
- type GitGovRecordPayload = ActorRecord | AgentRecord | CycleRecord | TaskRecord | ExecutionRecord | ChangelogRecord | FeedbackRecord;
590
+ type GitGovRecordPayload = ActorRecord | AgentRecord | CycleRecord | TaskRecord | ExecutionRecord | FeedbackRecord;
610
591
  /**
611
592
  * The canonical type for any record in GitGovernance, wrapping a payload with metadata.
612
593
  */
@@ -623,7 +604,6 @@ type GitGovTaskRecord = EmbeddedMetadataRecord<TaskRecord>;
623
604
  type GitGovCycleRecord = EmbeddedMetadataRecord<CycleRecord>;
624
605
  type GitGovFeedbackRecord = EmbeddedMetadataRecord<FeedbackRecord>;
625
606
  type GitGovExecutionRecord = EmbeddedMetadataRecord<ExecutionRecord>;
626
- type GitGovChangelogRecord = EmbeddedMetadataRecord<ChangelogRecord>;
627
607
  type GitGovActorRecord = EmbeddedMetadataRecord<ActorRecord>;
628
608
  type GitGovAgentRecord = EmbeddedMetadataRecord<AgentRecord>;
629
609
  type ActorPayload = Partial<ActorRecord>;
@@ -631,7 +611,6 @@ type AgentPayload = Partial<AgentRecord>;
631
611
  type CyclePayload = Partial<CycleRecord>;
632
612
  type TaskPayload = Partial<TaskRecord>;
633
613
  type ExecutionPayload = Partial<ExecutionRecord>;
634
- type ChangelogPayload = Partial<ChangelogRecord>;
635
614
  type FeedbackPayload = Partial<FeedbackRecord>;
636
615
  /**
637
616
  * Base class for all GitGovernance-specific errors.
@@ -660,7 +639,6 @@ type RecordStores = {
660
639
  cycles?: RecordStore<GitGovCycleRecord>;
661
640
  executions?: RecordStore<GitGovExecutionRecord>;
662
641
  feedbacks?: RecordStore<GitGovFeedbackRecord>;
663
- changelogs?: RecordStore<GitGovChangelogRecord>;
664
642
  };
665
643
 
666
644
  /**
@@ -910,13 +888,6 @@ type FeedbackCreatedEvent = BaseEvent & {
910
888
  };
911
889
  };
912
890
 
913
- type ChangelogCreatedEvent = BaseEvent & {
914
- type: 'changelog.created';
915
- payload: Pick<ChangelogRecord, 'relatedTasks' | 'title' | 'version'> & {
916
- changelogId: string;
917
- };
918
- };
919
-
920
891
  type ActorCreatedEvent = BaseEvent & {
921
892
  type: 'identity.actor.created';
922
893
  payload: Pick<ActorRecord, 'type' | 'publicKey' | 'roles'> & {
@@ -951,7 +922,7 @@ type SystemDailyTickEvent = BaseEvent & {
951
922
  /**
952
923
  * Union type of all possible events
953
924
  */
954
- type GitGovEvent = TaskCreatedEvent | TaskStatusChangedEvent | CycleCreatedEvent | CycleStatusChangedEvent | ExecutionCreatedEvent | FeedbackCreatedEvent | ChangelogCreatedEvent | ActorCreatedEvent | ActorRevokedEvent | AgentRegisteredEvent | SystemDailyTickEvent;
925
+ type GitGovEvent = TaskCreatedEvent | TaskStatusChangedEvent | CycleCreatedEvent | CycleStatusChangedEvent | ExecutionCreatedEvent | FeedbackCreatedEvent | ActorCreatedEvent | ActorRevokedEvent | AgentRegisteredEvent | SystemDailyTickEvent;
955
926
  /**
956
927
  * Event handler function type
957
928
  */
@@ -1006,15 +977,6 @@ type ActivityEvent = {
1006
977
  assignee?: string;
1007
978
  resolution?: string;
1008
979
  };
1009
- } | {
1010
- timestamp: number;
1011
- type: "changelog_created";
1012
- entityId: string;
1013
- entityTitle: string;
1014
- actorId?: string;
1015
- metadata?: {
1016
- version?: string;
1017
- };
1018
980
  } | {
1019
981
  timestamp: number;
1020
982
  type: "execution_created";
@@ -1054,7 +1016,6 @@ type AllRecords = {
1054
1016
  cycles: GitGovCycleRecord[];
1055
1017
  feedback: GitGovFeedbackRecord[];
1056
1018
  executions: GitGovExecutionRecord[];
1057
- changelogs: GitGovChangelogRecord[];
1058
1019
  actors: GitGovActorRecord[];
1059
1020
  };
1060
1021
  /**
@@ -1128,7 +1089,7 @@ type EnrichedTaskRecord = TaskRecord & {
1128
1089
  lastReleaseVersion?: string;
1129
1090
  };
1130
1091
  lastUpdated: number;
1131
- lastActivityType: 'task_modified' | 'feedback_received' | 'execution_added' | 'changelog_created' | 'task_created';
1092
+ lastActivityType: 'task_modified' | 'feedback_received' | 'execution_added' | 'task_created';
1132
1093
  recentActivity?: string;
1133
1094
  };
1134
1095
  /**
@@ -1224,7 +1185,7 @@ interface IRecordProjection {
1224
1185
  */
1225
1186
  type RecordProjectorDependencies = {
1226
1187
  recordMetrics: RecordMetrics;
1227
- stores: Required<Pick<RecordStores, 'tasks' | 'cycles' | 'feedbacks' | 'executions' | 'changelogs' | 'actors'>>;
1188
+ stores: Required<Pick<RecordStores, 'tasks' | 'cycles' | 'feedbacks' | 'executions' | 'actors'>>;
1228
1189
  sink?: IRecordProjection;
1229
1190
  };
1230
1191
  /**
@@ -1249,4 +1210,4 @@ interface IRecordProjector {
1249
1210
  invalidateCache(): Promise<void>;
1250
1211
  }
1251
1212
 
1252
- export { type EventSubscription as $, type ActorPayload as A, type IRecordMetrics as B, type ChangelogPayload as C, DEFAULT_ID_ENCODER as D, type EmbeddedMetadataHeader as E, type FeedbackPayload as F, type GitGovRecord as G, type ProductivityMetrics as H, type IdEncoder as I, RecordMetrics as J, type RecordMetricsDependencies as K, type SystemStatus as L, type TaskHealthReport as M, type ActivityEvent as N, type ActorCreatedEvent as O, type ProjectionContext as P, type ActorRevokedEvent as Q, type RecordStore as R, type Signature as S, type TaskPayload as T, type AgentRegisteredEvent as U, type BaseEvent as V, type ChangelogCreatedEvent as W, type CycleCreatedEvent as X, type CycleStatusChangedEvent as Y, type EventHandler as Z, type EventMetadata as _, type IRecordProjector as a, type ExecutionCreatedEvent as a0, type FeedbackCreatedEvent as a1, type GitGovEvent as a2, type SystemDailyTickEvent as a3, type TaskCreatedEvent as a4, type TaskStatusChangedEvent as a5, type RecordProjectorDependencies as a6, type IndexGenerationReport as a7, type IntegrityReport as a8, type AllRecords as a9, type DerivedStates as aa, type EnrichedTaskRecord as ab, type DerivedStateSets as ac, type IntegrityError as ad, type IntegrityWarning as ae, type IRecordProjection as b, type IndexData as c, type ActorRecord as d, type AgentPayload as e, type AgentRecord as f, type ChangelogRecord as g, type CyclePayload as h, type CycleRecord as i, type EmbeddedMetadataRecord as j, type ExecutionPayload as k, type ExecutionRecord as l, type FeedbackRecord as m, type GitGovActorRecord as n, type GitGovAgentRecord as o, type GitGovChangelogRecord as p, type GitGovCycleRecord as q, GitGovError as r, type GitGovExecutionRecord as s, type GitGovFeedbackRecord as t, type GitGovRecordPayload as u, type GitGovRecordType as v, type GitGovTaskRecord as w, type TaskRecord as x, type RecordStores as y, type CollaborationMetrics as z };
1213
+ export { type SystemDailyTickEvent as $, type ActorPayload as A, type RecordMetricsDependencies as B, type CyclePayload as C, DEFAULT_ID_ENCODER as D, type EmbeddedMetadataHeader as E, type FeedbackPayload as F, type GitGovRecord as G, type SystemStatus as H, type IdEncoder as I, type TaskHealthReport as J, type ActivityEvent as K, type ActorCreatedEvent as L, type ActorRevokedEvent as M, type AgentRegisteredEvent as N, type BaseEvent as O, type ProjectionContext as P, type CycleCreatedEvent as Q, type RecordStore as R, type Signature as S, type TaskPayload as T, type CycleStatusChangedEvent as U, type EventHandler as V, type EventMetadata as W, type EventSubscription as X, type ExecutionCreatedEvent as Y, type FeedbackCreatedEvent as Z, type GitGovEvent as _, type IRecordProjector as a, type TaskCreatedEvent as a0, type TaskStatusChangedEvent as a1, type RecordProjectorDependencies as a2, type IndexGenerationReport as a3, type IntegrityReport as a4, type AllRecords as a5, type DerivedStates as a6, type EnrichedTaskRecord as a7, type DerivedStateSets as a8, type IntegrityError as a9, type IntegrityWarning as aa, type IRecordProjection as b, type IndexData as c, type ActorRecord as d, type AgentPayload as e, type AgentRecord as f, type CycleRecord as g, type EmbeddedMetadataRecord as h, type ExecutionPayload as i, type ExecutionRecord as j, type FeedbackRecord as k, type GitGovActorRecord as l, type GitGovAgentRecord as m, type GitGovCycleRecord as n, GitGovError as o, type GitGovExecutionRecord as p, type GitGovFeedbackRecord as q, type GitGovRecordPayload as r, type GitGovRecordType as s, type GitGovTaskRecord as t, type TaskRecord as u, type RecordStores as v, type CollaborationMetrics as w, type IRecordMetrics as x, type ProductivityMetrics as y, RecordMetrics as z };
@@ -1,5 +1,5 @@
1
1
  import { o as IConfigManager, C as ConfigStore, G as GitGovConfig, p as SyncConfig, q as SyncDefaults, m as AuditState, n as AuditStateUpdate, K as KeyProvider, k as ISessionManager, I as IGitModule } from './index-LULVRsCZ.js';
2
- import { V as BaseEvent, Z as EventHandler, $ as EventSubscription, a2 as GitGovEvent, G as GitGovRecord, v as GitGovRecordType, R as RecordStore, a as IRecordProjector, A as ActorPayload, d as ActorRecord, y as RecordStores$1 } from './record_projection.types-D9NkQbL_.js';
2
+ import { O as BaseEvent, V as EventHandler, X as EventSubscription, _ as GitGovEvent, G as GitGovRecord, s as GitGovRecordType, R as RecordStore, a as IRecordProjector, A as ActorPayload, d as ActorRecord, v as RecordStores$1 } from './record_projection.types-B2OZbgoW.js';
3
3
 
4
4
  /**
5
5
  * ConfigManager - Project Configuration Manager
@@ -247,6 +247,11 @@ interface ILintModule {
247
247
  * @returns Array of lint results
248
248
  */
249
249
  lintRecord(record: GitGovRecord, context: LintRecordContext): LintResult[];
250
+ /**
251
+ * Validates reference prefixes for a single record.
252
+ * Checks that references use known prefixes (task:, commit:, etc.).
253
+ */
254
+ lintRecordReferences(record: GitGovRecord, context: LintRecordContext): LintResult[];
250
255
  /**
251
256
  * Validates all records from stores.
252
257
  * Each implementation resolves its own data source.
@@ -311,7 +316,6 @@ interface RecordStores {
311
316
  cycles?: RecordStore<GitGovRecord>;
312
317
  executions?: RecordStore<GitGovRecord>;
313
318
  feedbacks?: RecordStore<GitGovRecord>;
314
- changelogs?: RecordStore<GitGovRecord>;
315
319
  }
316
320
  /**
317
321
  * Dependencies for pure LintModule.
@@ -431,7 +435,7 @@ interface LintResult {
431
435
  message: string;
432
436
  /** Información de la entidad GitGovernance afectada */
433
437
  entity: {
434
- type: "actor" | "agent" | "task" | "cycle" | "execution" | "changelog" | "feedback";
438
+ type: "actor" | "agent" | "task" | "cycle" | "execution" | "feedback";
435
439
  id: string;
436
440
  };
437
441
  /** Indica si el error es auto-reparable con fixRecord() */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gitgov/core",
3
- "version": "2.7.2",
3
+ "version": "2.8.0",
4
4
  "description": "SDK for the GitGovernance ecosystem, providing a type-safe, local-first API to manage identities, agents, and workflows.",
5
5
  "type": "module",
6
6
  "main": "dist/src/index.js",