@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.
- package/dist/src/{agent_runner-DijNVjaF.d.ts → agent_runner-D3G5zzGv.d.ts} +2 -2
- package/dist/src/fs.d.ts +6 -6
- package/dist/src/fs.js +427 -805
- package/dist/src/fs.js.map +1 -1
- package/dist/src/github.d.ts +115 -115
- package/dist/src/github.js +1594 -1596
- package/dist/src/github.js.map +1 -1
- package/dist/src/index.d.ts +617 -1212
- package/dist/src/index.js +550 -1176
- package/dist/src/index.js.map +1 -1
- package/dist/src/memory.d.ts +1 -1
- package/dist/src/prisma.d.ts +3 -1
- package/dist/src/prisma.js +7 -2
- package/dist/src/prisma.js.map +1 -1
- package/dist/src/{record_projection.types-D9NkQbL_.d.ts → record_projection.types-B2OZbgoW.d.ts} +127 -166
- package/dist/src/{sync_state-C2a2RuBQ.d.ts → sync_state-GmqG3pLj.d.ts} +7 -3
- package/package.json +1 -1
package/dist/src/fs.js
CHANGED
|
@@ -735,7 +735,6 @@ var DIR_TO_TYPE = {
|
|
|
735
735
|
"tasks": "task",
|
|
736
736
|
"cycles": "cycle",
|
|
737
737
|
"executions": "execution",
|
|
738
|
-
"changelogs": "changelog",
|
|
739
738
|
"feedbacks": "feedback",
|
|
740
739
|
"actors": "actor",
|
|
741
740
|
"agents": "agent"
|
|
@@ -762,9 +761,6 @@ function inferEntityTypeFromId(recordId) {
|
|
|
762
761
|
if (recordId.match(/^\d+-exec-/) || recordId.includes("-execution-")) {
|
|
763
762
|
return "execution";
|
|
764
763
|
}
|
|
765
|
-
if (recordId.match(/^\d+-changelog-/)) {
|
|
766
|
-
return "changelog";
|
|
767
|
-
}
|
|
768
764
|
if (recordId.match(/^\d+-feedback-/)) {
|
|
769
765
|
return "feedback";
|
|
770
766
|
}
|
|
@@ -887,7 +883,7 @@ var actor_record_schema_default = {
|
|
|
887
883
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
888
884
|
$id: "actor_record_schema.json",
|
|
889
885
|
title: "ActorRecord",
|
|
890
|
-
description: "Canonical schema for actor records as defined in
|
|
886
|
+
description: "Canonical schema for actor records as defined in 02_actor.md",
|
|
891
887
|
additionalProperties: false,
|
|
892
888
|
type: "object",
|
|
893
889
|
required: [
|
|
@@ -982,8 +978,9 @@ var agent_record_schema_default = {
|
|
|
982
978
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
983
979
|
$id: "agent_record_schema.json",
|
|
984
980
|
title: "AgentRecord",
|
|
985
|
-
description: "Canonical schema for agent operational manifests.",
|
|
981
|
+
description: "Canonical schema for agent operational manifests \u2014 the work contract that defines how an agent is invoked.",
|
|
986
982
|
type: "object",
|
|
983
|
+
additionalProperties: false,
|
|
987
984
|
required: [
|
|
988
985
|
"id",
|
|
989
986
|
"engine"
|
|
@@ -991,8 +988,13 @@ var agent_record_schema_default = {
|
|
|
991
988
|
properties: {
|
|
992
989
|
id: {
|
|
993
990
|
type: "string",
|
|
994
|
-
pattern: "^agent:[a-z0-9
|
|
995
|
-
description: "Unique identifier for the agent, linking to an ActorRecord."
|
|
991
|
+
pattern: "^agent(:[a-z0-9-]+)+$",
|
|
992
|
+
description: "Unique identifier for the agent, linking 1:1 to an ActorRecord of type agent.",
|
|
993
|
+
examples: [
|
|
994
|
+
"agent:scribe",
|
|
995
|
+
"agent:aion",
|
|
996
|
+
"agent:camilo:cursor"
|
|
997
|
+
]
|
|
996
998
|
},
|
|
997
999
|
status: {
|
|
998
1000
|
type: "string",
|
|
@@ -1000,63 +1002,12 @@ var agent_record_schema_default = {
|
|
|
1000
1002
|
"active",
|
|
1001
1003
|
"archived"
|
|
1002
1004
|
],
|
|
1003
|
-
default: "active"
|
|
1004
|
-
|
|
1005
|
-
triggers: {
|
|
1006
|
-
type: "array",
|
|
1007
|
-
default: [],
|
|
1008
|
-
description: "Optional list of triggers that activate the agent.\nAdditional fields are allowed and depend on trigger type:\n- webhook triggers: 'event' (event identifier), 'filter' (condition)\n- scheduled triggers: 'cron' (cron expression)\n- manual triggers: 'command' (example CLI command)\n",
|
|
1009
|
-
items: {
|
|
1010
|
-
type: "object",
|
|
1011
|
-
properties: {
|
|
1012
|
-
type: {
|
|
1013
|
-
type: "string",
|
|
1014
|
-
enum: [
|
|
1015
|
-
"manual",
|
|
1016
|
-
"webhook",
|
|
1017
|
-
"scheduled"
|
|
1018
|
-
],
|
|
1019
|
-
description: "Type of trigger that activates the agent"
|
|
1020
|
-
}
|
|
1021
|
-
},
|
|
1022
|
-
required: [
|
|
1023
|
-
"type"
|
|
1024
|
-
],
|
|
1025
|
-
additionalProperties: true
|
|
1026
|
-
}
|
|
1027
|
-
},
|
|
1028
|
-
knowledge_dependencies: {
|
|
1029
|
-
type: "array",
|
|
1030
|
-
default: [],
|
|
1031
|
-
items: {
|
|
1032
|
-
type: "string",
|
|
1033
|
-
description: "Glob patterns for blueprint files this agent needs access to"
|
|
1034
|
-
}
|
|
1035
|
-
},
|
|
1036
|
-
prompt_engine_requirements: {
|
|
1037
|
-
type: "object",
|
|
1038
|
-
properties: {
|
|
1039
|
-
roles: {
|
|
1040
|
-
type: "array",
|
|
1041
|
-
items: {
|
|
1042
|
-
type: "string"
|
|
1043
|
-
}
|
|
1044
|
-
},
|
|
1045
|
-
skills: {
|
|
1046
|
-
type: "array",
|
|
1047
|
-
items: {
|
|
1048
|
-
type: "string"
|
|
1049
|
-
}
|
|
1050
|
-
}
|
|
1051
|
-
}
|
|
1052
|
-
},
|
|
1053
|
-
metadata: {
|
|
1054
|
-
type: "object",
|
|
1055
|
-
description: "Optional framework-specific or deployment-specific metadata for agent extensions.\nCommon use cases: framework identification (langchain, google-adk), deployment info (provider, image, region),\ncost tracking (cost_per_invocation, currency), tool capabilities, maintainer info.\nThis field does NOT affect agent execution - it is purely informational.\n",
|
|
1056
|
-
additionalProperties: true
|
|
1005
|
+
default: "active",
|
|
1006
|
+
description: "Operational status. An archived agent cannot be invoked."
|
|
1057
1007
|
},
|
|
1058
1008
|
engine: {
|
|
1059
1009
|
type: "object",
|
|
1010
|
+
description: "Invocation specification \u2014 defines how the agent is executed. Uses oneOf with 4 variants: local, api, mcp, custom.",
|
|
1060
1011
|
oneOf: [
|
|
1061
1012
|
{
|
|
1062
1013
|
required: [
|
|
@@ -1103,7 +1054,8 @@ var agent_record_schema_default = {
|
|
|
1103
1054
|
"GET",
|
|
1104
1055
|
"PUT"
|
|
1105
1056
|
],
|
|
1106
|
-
default: "POST"
|
|
1057
|
+
default: "POST",
|
|
1058
|
+
description: "HTTP method"
|
|
1107
1059
|
},
|
|
1108
1060
|
auth: {
|
|
1109
1061
|
type: "object",
|
|
@@ -1149,7 +1101,7 @@ var agent_record_schema_default = {
|
|
|
1149
1101
|
},
|
|
1150
1102
|
tool: {
|
|
1151
1103
|
type: "string",
|
|
1152
|
-
description: "Name of the MCP tool to invoke. If
|
|
1104
|
+
description: "Name of the MCP tool to invoke. If omitted, the agent has access to all tools on the server."
|
|
1153
1105
|
},
|
|
1154
1106
|
auth: {
|
|
1155
1107
|
type: "object",
|
|
@@ -1198,6 +1150,60 @@ var agent_record_schema_default = {
|
|
|
1198
1150
|
}
|
|
1199
1151
|
}
|
|
1200
1152
|
]
|
|
1153
|
+
},
|
|
1154
|
+
triggers: {
|
|
1155
|
+
type: "array",
|
|
1156
|
+
default: [],
|
|
1157
|
+
description: "Optional list of triggers that activate the agent.\nAdditional fields are allowed and depend on trigger type:\n- manual: 'command' (example CLI command)\n- webhook: 'event' (event identifier), 'filter' (condition)\n- scheduled: 'cron' (cron expression)\n",
|
|
1158
|
+
items: {
|
|
1159
|
+
type: "object",
|
|
1160
|
+
properties: {
|
|
1161
|
+
type: {
|
|
1162
|
+
type: "string",
|
|
1163
|
+
enum: [
|
|
1164
|
+
"manual",
|
|
1165
|
+
"webhook",
|
|
1166
|
+
"scheduled"
|
|
1167
|
+
],
|
|
1168
|
+
description: "Type of trigger that activates the agent"
|
|
1169
|
+
}
|
|
1170
|
+
},
|
|
1171
|
+
required: [
|
|
1172
|
+
"type"
|
|
1173
|
+
],
|
|
1174
|
+
additionalProperties: true
|
|
1175
|
+
}
|
|
1176
|
+
},
|
|
1177
|
+
knowledge_dependencies: {
|
|
1178
|
+
type: "array",
|
|
1179
|
+
default: [],
|
|
1180
|
+
items: {
|
|
1181
|
+
type: "string",
|
|
1182
|
+
description: "Glob patterns for files this agent needs access to"
|
|
1183
|
+
}
|
|
1184
|
+
},
|
|
1185
|
+
prompt_engine_requirements: {
|
|
1186
|
+
type: "object",
|
|
1187
|
+
description: "Requirements for prompt composition \u2014 roles and skills the agent needs.",
|
|
1188
|
+
properties: {
|
|
1189
|
+
roles: {
|
|
1190
|
+
type: "array",
|
|
1191
|
+
items: {
|
|
1192
|
+
type: "string"
|
|
1193
|
+
}
|
|
1194
|
+
},
|
|
1195
|
+
skills: {
|
|
1196
|
+
type: "array",
|
|
1197
|
+
items: {
|
|
1198
|
+
type: "string"
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
}
|
|
1202
|
+
},
|
|
1203
|
+
metadata: {
|
|
1204
|
+
type: "object",
|
|
1205
|
+
description: "Optional framework-specific or deployment-specific metadata.\nCommon use cases: framework identification (langchain, google-adk), deployment info,\ncost tracking, tool capabilities, maintainer info.\nThis field does NOT affect agent execution \u2014 it is purely informational.\n",
|
|
1206
|
+
additionalProperties: true
|
|
1201
1207
|
}
|
|
1202
1208
|
},
|
|
1203
1209
|
examples: [
|
|
@@ -1428,193 +1434,12 @@ var agent_record_schema_default = {
|
|
|
1428
1434
|
]
|
|
1429
1435
|
};
|
|
1430
1436
|
|
|
1431
|
-
// src/record_schemas/generated/changelog_record_schema.json
|
|
1432
|
-
var changelog_record_schema_default = {
|
|
1433
|
-
$schema: "http://json-schema.org/draft-07/schema#",
|
|
1434
|
-
$id: "changelog_record_schema.json",
|
|
1435
|
-
title: "ChangelogRecord",
|
|
1436
|
-
description: "Canonical schema for changelog records - aggregates N tasks into 1 release note",
|
|
1437
|
-
additionalProperties: false,
|
|
1438
|
-
type: "object",
|
|
1439
|
-
required: [
|
|
1440
|
-
"id",
|
|
1441
|
-
"title",
|
|
1442
|
-
"description",
|
|
1443
|
-
"relatedTasks",
|
|
1444
|
-
"completedAt"
|
|
1445
|
-
],
|
|
1446
|
-
properties: {
|
|
1447
|
-
id: {
|
|
1448
|
-
type: "string",
|
|
1449
|
-
pattern: "^\\d{10}-changelog-[a-z0-9-]{1,50}$",
|
|
1450
|
-
maxLength: 71,
|
|
1451
|
-
description: "Unique identifier for the changelog entry",
|
|
1452
|
-
examples: [
|
|
1453
|
-
"1752707800-changelog-sistema-autenticacion-v1",
|
|
1454
|
-
"1752707800-changelog-sprint-24-api-performance"
|
|
1455
|
-
]
|
|
1456
|
-
},
|
|
1457
|
-
title: {
|
|
1458
|
-
type: "string",
|
|
1459
|
-
minLength: 10,
|
|
1460
|
-
maxLength: 150,
|
|
1461
|
-
description: "Executive title of the deliverable",
|
|
1462
|
-
examples: [
|
|
1463
|
-
"Sistema de Autenticaci\xF3n Completo v1.0",
|
|
1464
|
-
"Sprint 24 - Performance Optimizations"
|
|
1465
|
-
]
|
|
1466
|
-
},
|
|
1467
|
-
description: {
|
|
1468
|
-
type: "string",
|
|
1469
|
-
minLength: 20,
|
|
1470
|
-
maxLength: 5e3,
|
|
1471
|
-
description: "Detailed description of the value delivered, including key decisions and impact"
|
|
1472
|
-
},
|
|
1473
|
-
relatedTasks: {
|
|
1474
|
-
type: "array",
|
|
1475
|
-
items: {
|
|
1476
|
-
type: "string",
|
|
1477
|
-
pattern: "^\\d{10}-task-[a-z0-9-]{1,50}$"
|
|
1478
|
-
},
|
|
1479
|
-
minItems: 1,
|
|
1480
|
-
description: "IDs of tasks that compose this deliverable (minimum 1 required)"
|
|
1481
|
-
},
|
|
1482
|
-
completedAt: {
|
|
1483
|
-
type: "number",
|
|
1484
|
-
minimum: 0,
|
|
1485
|
-
description: "Unix timestamp in seconds when the deliverable was completed"
|
|
1486
|
-
},
|
|
1487
|
-
relatedCycles: {
|
|
1488
|
-
type: "array",
|
|
1489
|
-
items: {
|
|
1490
|
-
type: "string",
|
|
1491
|
-
pattern: "^\\d{10}-cycle-[a-z0-9-]{1,50}$"
|
|
1492
|
-
},
|
|
1493
|
-
default: [],
|
|
1494
|
-
description: "Optional IDs of cycles related to this deliverable"
|
|
1495
|
-
},
|
|
1496
|
-
relatedExecutions: {
|
|
1497
|
-
type: "array",
|
|
1498
|
-
items: {
|
|
1499
|
-
type: "string",
|
|
1500
|
-
pattern: "^\\d{10}-exec-[a-z0-9-]{1,50}$"
|
|
1501
|
-
},
|
|
1502
|
-
default: [],
|
|
1503
|
-
description: "Optional IDs of key execution records related to this work"
|
|
1504
|
-
},
|
|
1505
|
-
version: {
|
|
1506
|
-
type: "string",
|
|
1507
|
-
minLength: 1,
|
|
1508
|
-
maxLength: 50,
|
|
1509
|
-
description: "Optional version or release identifier (e.g., 'v1.0.0', 'sprint-24')",
|
|
1510
|
-
examples: [
|
|
1511
|
-
"v1.0.0",
|
|
1512
|
-
"v2.1.3",
|
|
1513
|
-
"sprint-24"
|
|
1514
|
-
]
|
|
1515
|
-
},
|
|
1516
|
-
tags: {
|
|
1517
|
-
type: "array",
|
|
1518
|
-
items: {
|
|
1519
|
-
type: "string",
|
|
1520
|
-
pattern: "^[a-z0-9-]+(:[a-z0-9-]+)*$"
|
|
1521
|
-
},
|
|
1522
|
-
default: [],
|
|
1523
|
-
description: "Optional tags for categorization (e.g., 'feature:auth', 'bugfix', 'security')"
|
|
1524
|
-
},
|
|
1525
|
-
commits: {
|
|
1526
|
-
type: "array",
|
|
1527
|
-
items: {
|
|
1528
|
-
type: "string",
|
|
1529
|
-
maxLength: 100
|
|
1530
|
-
},
|
|
1531
|
-
default: [],
|
|
1532
|
-
description: "Optional list of git commit hashes related to this deliverable"
|
|
1533
|
-
},
|
|
1534
|
-
files: {
|
|
1535
|
-
type: "array",
|
|
1536
|
-
items: {
|
|
1537
|
-
type: "string",
|
|
1538
|
-
maxLength: 500
|
|
1539
|
-
},
|
|
1540
|
-
default: [],
|
|
1541
|
-
description: "Optional list of main files that were created or modified"
|
|
1542
|
-
},
|
|
1543
|
-
notes: {
|
|
1544
|
-
type: "string",
|
|
1545
|
-
maxLength: 3e3,
|
|
1546
|
-
description: "Optional additional context, decisions, or learnings"
|
|
1547
|
-
}
|
|
1548
|
-
},
|
|
1549
|
-
examples: [
|
|
1550
|
-
{
|
|
1551
|
-
id: "1752707800-changelog-sistema-autenticacion-v1",
|
|
1552
|
-
title: "Sistema de Autenticaci\xF3n Completo v1.0",
|
|
1553
|
-
description: "Implementaci\xF3n completa del sistema de autenticaci\xF3n con OAuth2, 2FA via TOTP, recuperaci\xF3n de contrase\xF1a, y UI responsive. Incluye tests E2E completos (95% coverage) y documentaci\xF3n t\xE9cnica actualizada.",
|
|
1554
|
-
relatedTasks: [
|
|
1555
|
-
"1752274500-task-crear-ui-login",
|
|
1556
|
-
"1752274600-task-integrar-oauth2-backend",
|
|
1557
|
-
"1752274700-task-implementar-2fa-totp",
|
|
1558
|
-
"1752274800-task-tests-e2e-auth",
|
|
1559
|
-
"1752274900-task-documentar-flujo-auth"
|
|
1560
|
-
],
|
|
1561
|
-
completedAt: 1752707800,
|
|
1562
|
-
relatedCycles: [
|
|
1563
|
-
"1752200000-cycle-q1-auth-milestone"
|
|
1564
|
-
],
|
|
1565
|
-
relatedExecutions: [
|
|
1566
|
-
"1752274550-exec-analisis-auth-providers",
|
|
1567
|
-
"1752707750-exec-final-integration-test"
|
|
1568
|
-
],
|
|
1569
|
-
version: "v1.0.0",
|
|
1570
|
-
tags: [
|
|
1571
|
-
"feature:auth",
|
|
1572
|
-
"security",
|
|
1573
|
-
"frontend",
|
|
1574
|
-
"backend"
|
|
1575
|
-
],
|
|
1576
|
-
commits: [
|
|
1577
|
-
"abc123def",
|
|
1578
|
-
"456ghi789",
|
|
1579
|
-
"jkl012mno"
|
|
1580
|
-
],
|
|
1581
|
-
files: [
|
|
1582
|
-
"src/pages/Login.tsx",
|
|
1583
|
-
"src/services/auth.ts",
|
|
1584
|
-
"src/components/TwoFactorSetup.tsx",
|
|
1585
|
-
"e2e/auth.spec.ts"
|
|
1586
|
-
],
|
|
1587
|
-
notes: "Decisi\xF3n t\xE9cnica: Usamos NextAuth.js despu\xE9s de evaluar Passport.js. El 2FA se implement\xF3 con TOTP (Google Authenticator compatible) en lugar de SMS por seguridad y costo."
|
|
1588
|
-
},
|
|
1589
|
-
{
|
|
1590
|
-
id: "1752707900-changelog-hotfix-payment-timeout",
|
|
1591
|
-
title: "Hotfix: Critical Payment Timeout Fix",
|
|
1592
|
-
description: "Fixed critical payment timeout issue affecting 15% of transactions. Increased timeout from 5s to 30s and added circuit breaker pattern for third-party API calls.",
|
|
1593
|
-
relatedTasks: [
|
|
1594
|
-
"1752707850-task-fix-payment-timeout",
|
|
1595
|
-
"1752707870-task-add-circuit-breaker"
|
|
1596
|
-
],
|
|
1597
|
-
completedAt: 1752707900,
|
|
1598
|
-
version: "v1.2.1",
|
|
1599
|
-
tags: [
|
|
1600
|
-
"hotfix",
|
|
1601
|
-
"critical",
|
|
1602
|
-
"payment"
|
|
1603
|
-
],
|
|
1604
|
-
commits: [
|
|
1605
|
-
"xyz789abc"
|
|
1606
|
-
],
|
|
1607
|
-
notes: "Emergency response to production incident. Deployed to production within 2 hours."
|
|
1608
|
-
}
|
|
1609
|
-
]
|
|
1610
|
-
};
|
|
1611
|
-
|
|
1612
1437
|
// src/record_schemas/generated/cycle_record_schema.json
|
|
1613
1438
|
var cycle_record_schema_default = {
|
|
1614
1439
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
1615
1440
|
$id: "cycle_record_schema.json",
|
|
1616
1441
|
title: "CycleRecord",
|
|
1617
|
-
description: "Canonical schema for cycle records
|
|
1442
|
+
description: "Canonical schema for cycle records \u2014 strategic grouping of work into sprints, milestones, or roadmaps.",
|
|
1618
1443
|
additionalProperties: false,
|
|
1619
1444
|
type: "object",
|
|
1620
1445
|
required: [
|
|
@@ -1627,7 +1452,7 @@ var cycle_record_schema_default = {
|
|
|
1627
1452
|
type: "string",
|
|
1628
1453
|
pattern: "^\\d{10}-cycle-[a-z0-9-]{1,50}$",
|
|
1629
1454
|
maxLength: 67,
|
|
1630
|
-
description: "Unique identifier for the cycle (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max)",
|
|
1455
|
+
description: "Unique identifier for the cycle (10 timestamp + 1 dash + 5 'cycle' + 1 dash + max 50 slug = 67 max).",
|
|
1631
1456
|
examples: [
|
|
1632
1457
|
"1754400000-cycle-sprint-24-api-performance",
|
|
1633
1458
|
"1754500000-cycle-auth-system-v2",
|
|
@@ -1638,7 +1463,7 @@ var cycle_record_schema_default = {
|
|
|
1638
1463
|
type: "string",
|
|
1639
1464
|
minLength: 1,
|
|
1640
1465
|
maxLength: 256,
|
|
1641
|
-
description: "Human-readable title for the cycle (e.g., 'Sprint 24', 'Auth v2.0', 'Q4 2025')",
|
|
1466
|
+
description: "Human-readable title for the cycle (e.g., 'Sprint 24', 'Auth v2.0', 'Q4 2025').",
|
|
1642
1467
|
examples: [
|
|
1643
1468
|
"Sprint 24 - API Performance",
|
|
1644
1469
|
"Authentication System v2.0",
|
|
@@ -1653,7 +1478,7 @@ var cycle_record_schema_default = {
|
|
|
1653
1478
|
"completed",
|
|
1654
1479
|
"archived"
|
|
1655
1480
|
],
|
|
1656
|
-
description: "The lifecycle status of the cycle"
|
|
1481
|
+
description: "The lifecycle status of the cycle."
|
|
1657
1482
|
},
|
|
1658
1483
|
taskIds: {
|
|
1659
1484
|
type: "array",
|
|
@@ -1663,7 +1488,7 @@ var cycle_record_schema_default = {
|
|
|
1663
1488
|
maxLength: 66
|
|
1664
1489
|
},
|
|
1665
1490
|
default: [],
|
|
1666
|
-
description: "Optional array of Task IDs that belong to this cycle. Can be empty for
|
|
1491
|
+
description: "Optional array of Task IDs that belong to this cycle. Bidirectional with TaskRecord.cycleIds. Can be empty for container cycles.",
|
|
1667
1492
|
examples: [
|
|
1668
1493
|
[
|
|
1669
1494
|
"1752274500-task-optimizar-endpoint-search",
|
|
@@ -1679,7 +1504,7 @@ var cycle_record_schema_default = {
|
|
|
1679
1504
|
maxLength: 67
|
|
1680
1505
|
},
|
|
1681
1506
|
default: [],
|
|
1682
|
-
description: "Optional array of Cycle IDs
|
|
1507
|
+
description: "Optional array of child Cycle IDs for hierarchical composition (e.g., Q1 containing Sprint 1, Sprint 2, Sprint 3).",
|
|
1683
1508
|
examples: [
|
|
1684
1509
|
[
|
|
1685
1510
|
"1754400000-cycle-sprint-24",
|
|
@@ -1713,9 +1538,29 @@ var cycle_record_schema_default = {
|
|
|
1713
1538
|
},
|
|
1714
1539
|
notes: {
|
|
1715
1540
|
type: "string",
|
|
1716
|
-
minLength:
|
|
1717
|
-
|
|
1718
|
-
|
|
1541
|
+
minLength: 1,
|
|
1542
|
+
description: "Optional description of the cycle's goals, objectives, and context."
|
|
1543
|
+
},
|
|
1544
|
+
metadata: {
|
|
1545
|
+
type: "object",
|
|
1546
|
+
additionalProperties: true,
|
|
1547
|
+
description: "Optional structured data for machine consumption.\nUse this field for domain-specific data that needs to be programmatically processed.\nExtends the strategic grouping with structured, queryable attributes.\nCommon use cases: epic lifecycle, sprint configuration, OKR tracking, budget allocation.\n",
|
|
1548
|
+
examples: [
|
|
1549
|
+
{
|
|
1550
|
+
epic: true,
|
|
1551
|
+
phase: "active",
|
|
1552
|
+
files: {
|
|
1553
|
+
overview: "overview.md",
|
|
1554
|
+
roadmap: "roadmap.md",
|
|
1555
|
+
plan: "implementation_plan.md"
|
|
1556
|
+
}
|
|
1557
|
+
},
|
|
1558
|
+
{
|
|
1559
|
+
sprint: 24,
|
|
1560
|
+
velocity: 42,
|
|
1561
|
+
team: "backend"
|
|
1562
|
+
}
|
|
1563
|
+
]
|
|
1719
1564
|
}
|
|
1720
1565
|
},
|
|
1721
1566
|
examples: [
|
|
@@ -1733,7 +1578,7 @@ var cycle_record_schema_default = {
|
|
|
1733
1578
|
"team:backend",
|
|
1734
1579
|
"focus:performance"
|
|
1735
1580
|
],
|
|
1736
|
-
notes: "
|
|
1581
|
+
notes: "Objective: Reduce API p95 latency below 200ms and prepare infrastructure for Black Friday."
|
|
1737
1582
|
},
|
|
1738
1583
|
{
|
|
1739
1584
|
id: "1754500000-cycle-auth-system-v2",
|
|
@@ -1750,7 +1595,7 @@ var cycle_record_schema_default = {
|
|
|
1750
1595
|
"security",
|
|
1751
1596
|
"feature:auth"
|
|
1752
1597
|
],
|
|
1753
|
-
notes: "
|
|
1598
|
+
notes: "Major milestone: Complete authentication system with OAuth2, 2FA, and advanced session management. Critical for Q4 launch."
|
|
1754
1599
|
},
|
|
1755
1600
|
{
|
|
1756
1601
|
id: "1754600000-cycle-q4-2025-growth",
|
|
@@ -1766,7 +1611,7 @@ var cycle_record_schema_default = {
|
|
|
1766
1611
|
"strategy:growth",
|
|
1767
1612
|
"okr:scale-to-1m-users"
|
|
1768
1613
|
],
|
|
1769
|
-
notes: "
|
|
1614
|
+
notes: "Quarterly objective: Scale to 1M active users. Includes performance improvements, new auth system, and mobile app launch."
|
|
1770
1615
|
}
|
|
1771
1616
|
]
|
|
1772
1617
|
};
|
|
@@ -1784,10 +1629,8 @@ var embedded_metadata_schema_default = {
|
|
|
1784
1629
|
properties: {
|
|
1785
1630
|
version: {
|
|
1786
1631
|
type: "string",
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
],
|
|
1790
|
-
description: "Version of the embedded metadata format."
|
|
1632
|
+
pattern: "^\\d+\\.\\d+$",
|
|
1633
|
+
description: 'Protocol version in MAJOR.MINOR format (e.g. "1.1", "2.0").'
|
|
1791
1634
|
},
|
|
1792
1635
|
type: {
|
|
1793
1636
|
type: "string",
|
|
@@ -1796,12 +1639,23 @@ var embedded_metadata_schema_default = {
|
|
|
1796
1639
|
"agent",
|
|
1797
1640
|
"task",
|
|
1798
1641
|
"execution",
|
|
1799
|
-
"changelog",
|
|
1800
1642
|
"feedback",
|
|
1801
|
-
"cycle"
|
|
1643
|
+
"cycle",
|
|
1644
|
+
"workflow",
|
|
1645
|
+
"custom"
|
|
1802
1646
|
],
|
|
1803
1647
|
description: "The type of the record contained in the payload."
|
|
1804
1648
|
},
|
|
1649
|
+
schemaUrl: {
|
|
1650
|
+
type: "string",
|
|
1651
|
+
format: "uri",
|
|
1652
|
+
description: "URL to a custom schema for the payload. Required when type is 'custom'."
|
|
1653
|
+
},
|
|
1654
|
+
schemaChecksum: {
|
|
1655
|
+
type: "string",
|
|
1656
|
+
pattern: "^[a-fA-F0-9]{64}$",
|
|
1657
|
+
description: "SHA-256 checksum of the custom schema. Required when type is 'custom'."
|
|
1658
|
+
},
|
|
1805
1659
|
payloadChecksum: {
|
|
1806
1660
|
type: "string",
|
|
1807
1661
|
pattern: "^[a-fA-F0-9]{64}$",
|
|
@@ -1816,14 +1670,14 @@ var embedded_metadata_schema_default = {
|
|
|
1816
1670
|
keyId: {
|
|
1817
1671
|
type: "string",
|
|
1818
1672
|
pattern: "^(human|agent)(:[a-z0-9-]+)+$",
|
|
1819
|
-
description: "The Actor ID of the signer
|
|
1673
|
+
description: "The Actor ID of the signer. Supports scoped identifiers (e.g. agent:camilo:cursor)."
|
|
1820
1674
|
},
|
|
1821
1675
|
role: {
|
|
1822
1676
|
type: "string",
|
|
1823
1677
|
pattern: "^([a-z-]+|custom:[a-z0-9-]+)$",
|
|
1824
1678
|
minLength: 1,
|
|
1825
1679
|
maxLength: 50,
|
|
1826
|
-
description: "The context role of the signature (e.g., 'author', 'reviewer',
|
|
1680
|
+
description: "The context role of the signature (e.g., 'author', 'reviewer', or 'custom:*')."
|
|
1827
1681
|
},
|
|
1828
1682
|
notes: {
|
|
1829
1683
|
type: "string",
|
|
@@ -1838,6 +1692,7 @@ var embedded_metadata_schema_default = {
|
|
|
1838
1692
|
},
|
|
1839
1693
|
timestamp: {
|
|
1840
1694
|
type: "integer",
|
|
1695
|
+
minimum: 16e8,
|
|
1841
1696
|
description: "Unix timestamp of the signature."
|
|
1842
1697
|
}
|
|
1843
1698
|
},
|
|
@@ -1871,12 +1726,35 @@ var embedded_metadata_schema_default = {
|
|
|
1871
1726
|
"payload"
|
|
1872
1727
|
],
|
|
1873
1728
|
additionalProperties: false,
|
|
1874
|
-
|
|
1729
|
+
allOf: [
|
|
1875
1730
|
{
|
|
1876
1731
|
if: {
|
|
1732
|
+
properties: {
|
|
1733
|
+
header: {
|
|
1734
|
+
properties: {
|
|
1735
|
+
type: {
|
|
1736
|
+
const: "custom"
|
|
1737
|
+
}
|
|
1738
|
+
}
|
|
1739
|
+
}
|
|
1740
|
+
}
|
|
1741
|
+
},
|
|
1742
|
+
then: {
|
|
1877
1743
|
properties: {
|
|
1878
1744
|
header: {
|
|
1879
1745
|
type: "object",
|
|
1746
|
+
required: [
|
|
1747
|
+
"schemaUrl",
|
|
1748
|
+
"schemaChecksum"
|
|
1749
|
+
]
|
|
1750
|
+
}
|
|
1751
|
+
}
|
|
1752
|
+
}
|
|
1753
|
+
},
|
|
1754
|
+
{
|
|
1755
|
+
if: {
|
|
1756
|
+
properties: {
|
|
1757
|
+
header: {
|
|
1880
1758
|
properties: {
|
|
1881
1759
|
type: {
|
|
1882
1760
|
const: "actor"
|
|
@@ -1891,14 +1769,12 @@ var embedded_metadata_schema_default = {
|
|
|
1891
1769
|
$ref: "ref:actor_record_schema"
|
|
1892
1770
|
}
|
|
1893
1771
|
}
|
|
1894
|
-
}
|
|
1895
|
-
else: false
|
|
1772
|
+
}
|
|
1896
1773
|
},
|
|
1897
1774
|
{
|
|
1898
1775
|
if: {
|
|
1899
1776
|
properties: {
|
|
1900
1777
|
header: {
|
|
1901
|
-
type: "object",
|
|
1902
1778
|
properties: {
|
|
1903
1779
|
type: {
|
|
1904
1780
|
const: "agent"
|
|
@@ -1913,14 +1789,12 @@ var embedded_metadata_schema_default = {
|
|
|
1913
1789
|
$ref: "ref:agent_record_schema"
|
|
1914
1790
|
}
|
|
1915
1791
|
}
|
|
1916
|
-
}
|
|
1917
|
-
else: false
|
|
1792
|
+
}
|
|
1918
1793
|
},
|
|
1919
1794
|
{
|
|
1920
1795
|
if: {
|
|
1921
1796
|
properties: {
|
|
1922
1797
|
header: {
|
|
1923
|
-
type: "object",
|
|
1924
1798
|
properties: {
|
|
1925
1799
|
type: {
|
|
1926
1800
|
const: "task"
|
|
@@ -1935,14 +1809,12 @@ var embedded_metadata_schema_default = {
|
|
|
1935
1809
|
$ref: "ref:task_record_schema"
|
|
1936
1810
|
}
|
|
1937
1811
|
}
|
|
1938
|
-
}
|
|
1939
|
-
else: false
|
|
1812
|
+
}
|
|
1940
1813
|
},
|
|
1941
1814
|
{
|
|
1942
1815
|
if: {
|
|
1943
1816
|
properties: {
|
|
1944
1817
|
header: {
|
|
1945
|
-
type: "object",
|
|
1946
1818
|
properties: {
|
|
1947
1819
|
type: {
|
|
1948
1820
|
const: "execution"
|
|
@@ -1957,17 +1829,15 @@ var embedded_metadata_schema_default = {
|
|
|
1957
1829
|
$ref: "ref:execution_record_schema"
|
|
1958
1830
|
}
|
|
1959
1831
|
}
|
|
1960
|
-
}
|
|
1961
|
-
else: false
|
|
1832
|
+
}
|
|
1962
1833
|
},
|
|
1963
1834
|
{
|
|
1964
1835
|
if: {
|
|
1965
1836
|
properties: {
|
|
1966
1837
|
header: {
|
|
1967
|
-
type: "object",
|
|
1968
1838
|
properties: {
|
|
1969
1839
|
type: {
|
|
1970
|
-
const: "
|
|
1840
|
+
const: "feedback"
|
|
1971
1841
|
}
|
|
1972
1842
|
}
|
|
1973
1843
|
}
|
|
@@ -1976,20 +1846,18 @@ var embedded_metadata_schema_default = {
|
|
|
1976
1846
|
then: {
|
|
1977
1847
|
properties: {
|
|
1978
1848
|
payload: {
|
|
1979
|
-
$ref: "ref:
|
|
1849
|
+
$ref: "ref:feedback_record_schema"
|
|
1980
1850
|
}
|
|
1981
1851
|
}
|
|
1982
|
-
}
|
|
1983
|
-
else: false
|
|
1852
|
+
}
|
|
1984
1853
|
},
|
|
1985
1854
|
{
|
|
1986
1855
|
if: {
|
|
1987
1856
|
properties: {
|
|
1988
1857
|
header: {
|
|
1989
|
-
type: "object",
|
|
1990
1858
|
properties: {
|
|
1991
1859
|
type: {
|
|
1992
|
-
const: "
|
|
1860
|
+
const: "cycle"
|
|
1993
1861
|
}
|
|
1994
1862
|
}
|
|
1995
1863
|
}
|
|
@@ -1998,20 +1866,18 @@ var embedded_metadata_schema_default = {
|
|
|
1998
1866
|
then: {
|
|
1999
1867
|
properties: {
|
|
2000
1868
|
payload: {
|
|
2001
|
-
$ref: "ref:
|
|
1869
|
+
$ref: "ref:cycle_record_schema"
|
|
2002
1870
|
}
|
|
2003
1871
|
}
|
|
2004
|
-
}
|
|
2005
|
-
else: false
|
|
1872
|
+
}
|
|
2006
1873
|
},
|
|
2007
1874
|
{
|
|
2008
1875
|
if: {
|
|
2009
1876
|
properties: {
|
|
2010
1877
|
header: {
|
|
2011
|
-
type: "object",
|
|
2012
1878
|
properties: {
|
|
2013
1879
|
type: {
|
|
2014
|
-
const: "
|
|
1880
|
+
const: "workflow"
|
|
2015
1881
|
}
|
|
2016
1882
|
}
|
|
2017
1883
|
}
|
|
@@ -2020,58 +1886,58 @@ var embedded_metadata_schema_default = {
|
|
|
2020
1886
|
then: {
|
|
2021
1887
|
properties: {
|
|
2022
1888
|
payload: {
|
|
2023
|
-
$ref: "ref:
|
|
1889
|
+
$ref: "ref:workflow_record_schema"
|
|
2024
1890
|
}
|
|
2025
1891
|
}
|
|
2026
|
-
}
|
|
2027
|
-
else: false
|
|
1892
|
+
}
|
|
2028
1893
|
}
|
|
2029
1894
|
],
|
|
2030
1895
|
examples: [
|
|
2031
1896
|
{
|
|
2032
1897
|
header: {
|
|
2033
|
-
version: "1.
|
|
2034
|
-
type: "
|
|
2035
|
-
payloadChecksum: "
|
|
1898
|
+
version: "1.1",
|
|
1899
|
+
type: "actor",
|
|
1900
|
+
payloadChecksum: "063d4ba3505e4d2d3852f6063cbd0b98a8728b2afb4a26a323c5c5c512137398",
|
|
2036
1901
|
signatures: [
|
|
2037
1902
|
{
|
|
2038
1903
|
keyId: "human:lead-dev",
|
|
2039
1904
|
role: "author",
|
|
2040
|
-
notes: "
|
|
2041
|
-
signature: "
|
|
1905
|
+
notes: "Self-registration of lead developer account",
|
|
1906
|
+
signature: "yEtlWOGAek8ukP8fycqYZOyogQBudO5XUf4v4BUGaOTogDH4wraanhLvutaJBM7rdilFUS2VvmxZmIy0KjTZAg==",
|
|
2042
1907
|
timestamp: 1752274500
|
|
2043
1908
|
}
|
|
2044
1909
|
]
|
|
2045
1910
|
},
|
|
2046
1911
|
payload: {
|
|
2047
|
-
id: "
|
|
2048
|
-
|
|
2049
|
-
|
|
2050
|
-
|
|
2051
|
-
|
|
2052
|
-
"
|
|
2053
|
-
"
|
|
2054
|
-
]
|
|
1912
|
+
id: "human:lead-dev",
|
|
1913
|
+
type: "human",
|
|
1914
|
+
displayName: "Lead Developer",
|
|
1915
|
+
publicKey: "0yyrCETtVql51Id+nRKGmpbfsxNxOz+eCYLpWDoutV0=",
|
|
1916
|
+
roles: [
|
|
1917
|
+
"developer",
|
|
1918
|
+
"reviewer"
|
|
1919
|
+
],
|
|
1920
|
+
status: "active"
|
|
2055
1921
|
}
|
|
2056
1922
|
},
|
|
2057
1923
|
{
|
|
2058
1924
|
header: {
|
|
2059
|
-
version: "1.
|
|
1925
|
+
version: "1.1",
|
|
2060
1926
|
type: "execution",
|
|
2061
|
-
payloadChecksum: "
|
|
1927
|
+
payloadChecksum: "bd667ddc8698a50594592ac15d0761e62a9f05cc3ba10a9a853ef0819e5fb2ad",
|
|
2062
1928
|
signatures: [
|
|
2063
1929
|
{
|
|
2064
|
-
keyId: "agent:cursor",
|
|
1930
|
+
keyId: "agent:camilo:cursor",
|
|
2065
1931
|
role: "author",
|
|
2066
1932
|
notes: "OAuth 2.0 flow completed with GitHub provider integration",
|
|
2067
|
-
signature: "
|
|
1933
|
+
signature: "8d9LWTtMlK/Ct4+QWGFpH4iFdZb9T/hlFThAAGKqz8UOPe9qDwPFcv3b4qz9G+NQXh1/PgB1pl8YiQCe6fnjAQ==",
|
|
2068
1934
|
timestamp: 1752274600
|
|
2069
1935
|
},
|
|
2070
1936
|
{
|
|
2071
1937
|
keyId: "human:camilo",
|
|
2072
1938
|
role: "reviewer",
|
|
2073
1939
|
notes: "Reviewed and tested locally. LGTM.",
|
|
2074
|
-
signature: "
|
|
1940
|
+
signature: "17xsA75W0zzNZI3DXa8iHmxS5NwedfCwu9DoXwk/vArk9yaHcFsY6EgJHNPUtIX+XeKSVF/lOg6CvVIkcXjjAA==",
|
|
2075
1941
|
timestamp: 1752274650
|
|
2076
1942
|
}
|
|
2077
1943
|
]
|
|
@@ -2081,39 +1947,30 @@ var embedded_metadata_schema_default = {
|
|
|
2081
1947
|
taskId: "1752274500-task-implement-oauth",
|
|
2082
1948
|
type: "progress",
|
|
2083
1949
|
title: "OAuth 2.0 flow implemented",
|
|
2084
|
-
result: "Completed the OAuth 2.0 authentication flow
|
|
1950
|
+
result: "Completed the OAuth 2.0 authentication flow with GitHub provider. Token refresh and session management included."
|
|
2085
1951
|
}
|
|
2086
1952
|
},
|
|
2087
1953
|
{
|
|
2088
1954
|
header: {
|
|
2089
|
-
version: "1.
|
|
2090
|
-
type: "
|
|
2091
|
-
|
|
1955
|
+
version: "1.1",
|
|
1956
|
+
type: "custom",
|
|
1957
|
+
schemaUrl: "https://example.com/schemas/deployment-record-v1.json",
|
|
1958
|
+
schemaChecksum: "d4e5f6a1b2c3789012345678901234567890123456789012345678901234abcd",
|
|
1959
|
+
payloadChecksum: "1f9598081fcfcf34732de647de25c8445e68e9320e0c10d3a4bd911c7274a1b3",
|
|
2092
1960
|
signatures: [
|
|
2093
1961
|
{
|
|
2094
|
-
keyId: "
|
|
1962
|
+
keyId: "agent:deploy-bot",
|
|
2095
1963
|
role: "author",
|
|
2096
|
-
notes: "
|
|
2097
|
-
signature: "
|
|
1964
|
+
notes: "Production deployment of v2.1.0",
|
|
1965
|
+
signature: "W3cSLJnEp+OmKVOwFqjuLTL1S55/OlQyFDzmmxg+vUfETIiQWNr7aDH06/rHUM11g2BLEGRfXZPQPFry6FJeAw==",
|
|
2098
1966
|
timestamp: 1752274700
|
|
2099
|
-
},
|
|
2100
|
-
{
|
|
2101
|
-
keyId: "agent:aion",
|
|
2102
|
-
role: "auditor",
|
|
2103
|
-
notes: "Actor verification: 10/10. Credentials validated.",
|
|
2104
|
-
signature: "...",
|
|
2105
|
-
timestamp: 1752274705
|
|
2106
1967
|
}
|
|
2107
1968
|
]
|
|
2108
1969
|
},
|
|
2109
1970
|
payload: {
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
publicKey: "...",
|
|
2114
|
-
roles: [
|
|
2115
|
-
"developer"
|
|
2116
|
-
]
|
|
1971
|
+
deploymentId: "deploy-2025-07-12-v2.1.0",
|
|
1972
|
+
environment: "production",
|
|
1973
|
+
status: "success"
|
|
2117
1974
|
}
|
|
2118
1975
|
}
|
|
2119
1976
|
]
|
|
@@ -2124,7 +1981,7 @@ var execution_record_schema_default = {
|
|
|
2124
1981
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
2125
1982
|
$id: "execution_record_schema.json",
|
|
2126
1983
|
title: "ExecutionRecord",
|
|
2127
|
-
description: "Canonical schema for execution log records - the universal event stream",
|
|
1984
|
+
description: "Canonical schema for execution log records - the universal event stream.",
|
|
2128
1985
|
additionalProperties: false,
|
|
2129
1986
|
type: "object",
|
|
2130
1987
|
required: [
|
|
@@ -2139,209 +1996,50 @@ var execution_record_schema_default = {
|
|
|
2139
1996
|
type: "string",
|
|
2140
1997
|
pattern: "^\\d{10}-exec-[a-z0-9-]{1,50}$",
|
|
2141
1998
|
maxLength: 66,
|
|
2142
|
-
description: "Unique identifier for the execution log entry
|
|
2143
|
-
examples: [
|
|
2144
|
-
"1752275000-exec-refactor-queries",
|
|
2145
|
-
"1752361200-exec-api-externa-caida"
|
|
2146
|
-
]
|
|
1999
|
+
description: "Unique identifier for the execution log entry."
|
|
2147
2000
|
},
|
|
2148
2001
|
taskId: {
|
|
2149
2002
|
type: "string",
|
|
2150
2003
|
pattern: "^\\d{10}-task-[a-z0-9-]{1,50}$",
|
|
2151
2004
|
maxLength: 66,
|
|
2152
|
-
description: "ID of the parent task this execution belongs to
|
|
2005
|
+
description: "ID of the parent task this execution belongs to."
|
|
2153
2006
|
},
|
|
2154
2007
|
type: {
|
|
2155
2008
|
type: "string",
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
"progress",
|
|
2159
|
-
"blocker",
|
|
2160
|
-
"completion",
|
|
2161
|
-
"info",
|
|
2162
|
-
"correction"
|
|
2163
|
-
],
|
|
2164
|
-
description: "Semantic classification of the execution event",
|
|
2165
|
-
examples: [
|
|
2166
|
-
"progress",
|
|
2167
|
-
"analysis",
|
|
2168
|
-
"blocker",
|
|
2169
|
-
"completion"
|
|
2170
|
-
]
|
|
2009
|
+
pattern: "^(analysis|decision|progress|blocker|completion|correction|info|custom:[a-z0-9-]+(:[a-z0-9-]+)*)$",
|
|
2010
|
+
description: "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.\nPrimitive types:\n - analysis: Investigation, research, or evaluation before acting.\n - decision: A choice that changes the direction of work.\n - progress: Incremental advancement of work.\n - blocker: An impediment preventing further progress.\n - completion: Work on the task is finished.\n - correction: A fix to something previously done incorrectly.\n - info: Informational note or status update.\n\nCustom types use the 'custom:' prefix for industry-specific extensions. Software development examples:\n - custom:review (code review, design review, QA)\n - custom:deployment (deploy to staging/production)\n - custom:rollback (revert a deployment or change)\n - custom:release (version release, PR merge to main)\n - custom:hotfix (emergency fix in production)\nImplementations that encounter an unrecognized custom type MUST treat it as 'info' for display purposes.\n"
|
|
2171
2011
|
},
|
|
2172
2012
|
title: {
|
|
2173
2013
|
type: "string",
|
|
2174
2014
|
minLength: 1,
|
|
2175
2015
|
maxLength: 256,
|
|
2176
|
-
description: "Human-readable title for the execution (used to generate ID)"
|
|
2177
|
-
examples: [
|
|
2178
|
-
"Refactor de queries N+1",
|
|
2179
|
-
"API Externa Ca\xEDda",
|
|
2180
|
-
"Plan de implementaci\xF3n OAuth2"
|
|
2181
|
-
]
|
|
2016
|
+
description: "Human-readable title for the execution (used to generate ID slug)."
|
|
2182
2017
|
},
|
|
2183
2018
|
result: {
|
|
2184
2019
|
type: "string",
|
|
2185
2020
|
minLength: 10,
|
|
2186
|
-
|
|
2187
|
-
description: 'The tangible, verifiable output or result of the execution. \nThis is the "WHAT" - evidence of work or event summary.\n'
|
|
2021
|
+
description: 'The tangible, verifiable output or result of the execution. This is the "WHAT" - evidence of work or event summary.\n'
|
|
2188
2022
|
},
|
|
2189
2023
|
notes: {
|
|
2190
2024
|
type: "string",
|
|
2191
|
-
|
|
2192
|
-
description: 'Optional narrative, context and decisions behind the execution.\nThis is the "HOW" and "WHY" - the story behind the result.\n'
|
|
2025
|
+
description: 'Optional narrative, context and decisions behind the execution. This is the "HOW" and "WHY" - the story behind the result.\n'
|
|
2193
2026
|
},
|
|
2194
2027
|
references: {
|
|
2195
2028
|
type: "array",
|
|
2196
2029
|
items: {
|
|
2197
|
-
type: "string",
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
|
|
2205
|
-
|
|
2206
|
-
|
|
2207
|
-
|
|
2208
|
-
{
|
|
2209
|
-
findings: [
|
|
2210
|
-
{
|
|
2211
|
-
type: "PII",
|
|
2212
|
-
file: "src/user.ts",
|
|
2213
|
-
line: 42
|
|
2214
|
-
}
|
|
2215
|
-
],
|
|
2216
|
-
scannedFiles: 245
|
|
2217
|
-
},
|
|
2218
|
-
{
|
|
2219
|
-
metrics: {
|
|
2220
|
-
duration_ms: 1250,
|
|
2221
|
-
memory_mb: 512
|
|
2222
|
-
}
|
|
2223
|
-
}
|
|
2224
|
-
]
|
|
2225
|
-
}
|
|
2226
|
-
},
|
|
2227
|
-
examples: [
|
|
2228
|
-
{
|
|
2229
|
-
id: "1752275500-exec-refactor-queries",
|
|
2230
|
-
taskId: "1752274500-task-optimizar-api",
|
|
2231
|
-
type: "progress",
|
|
2232
|
-
title: "Refactor de queries N+1",
|
|
2233
|
-
result: "Refactorizados 3 queries N+1 a un solo JOIN optimizado. Performance mejor\xF3 de 2.5s a 200ms.",
|
|
2234
|
-
notes: "Identificados 3 N+1 queries en el endpoint /api/search. Aplicado eager loading y caching de relaciones.",
|
|
2235
|
-
references: [
|
|
2236
|
-
"commit:b2c3d4e",
|
|
2237
|
-
"file:src/api/search.ts"
|
|
2238
|
-
]
|
|
2239
|
-
},
|
|
2240
|
-
{
|
|
2241
|
-
id: "1752361200-exec-api-externa-caida",
|
|
2242
|
-
taskId: "1752274500-task-optimizar-api",
|
|
2243
|
-
type: "blocker",
|
|
2244
|
-
title: "API Externa Ca\xEDda",
|
|
2245
|
-
result: "No se puede continuar con testing de integraci\xF3n. API de pagos devuelve 503.",
|
|
2246
|
-
notes: "La API de pagos de terceros (api.payments.com) est\xE1 devolviendo errores 503. Contactado soporte del proveedor. ETA de resoluci\xF3n: 2-3 horas.",
|
|
2247
|
-
references: [
|
|
2248
|
-
"url:https://status.payments.com"
|
|
2249
|
-
]
|
|
2250
|
-
},
|
|
2251
|
-
{
|
|
2252
|
-
id: "1752188000-exec-plan-oauth-implementation",
|
|
2253
|
-
taskId: "1752274500-task-oauth-implementation",
|
|
2254
|
-
type: "analysis",
|
|
2255
|
-
title: "Plan de implementaci\xF3n OAuth2",
|
|
2256
|
-
result: "Documento de dise\xF1o t\xE9cnico completado. 5 sub-tareas identificadas con estimaciones de complejidad.",
|
|
2257
|
-
notes: "Evaluadas 3 opciones: NextAuth.js (elegida), Passport.js, custom implementation. NextAuth.js por madurez y soporte de m\xFAltiples providers.",
|
|
2258
|
-
references: [
|
|
2259
|
-
"file:docs/oauth-design.md"
|
|
2260
|
-
]
|
|
2261
|
-
},
|
|
2262
|
-
{
|
|
2263
|
-
id: "1752707800-exec-oauth-completed",
|
|
2264
|
-
taskId: "1752274500-task-oauth-implementation",
|
|
2265
|
-
type: "completion",
|
|
2266
|
-
title: "OAuth Implementation Completed",
|
|
2267
|
-
result: "Sistema OAuth2 completamente implementado, testeado y deployado a staging. 95% test coverage. Todos los acceptance criteria cumplidos.",
|
|
2268
|
-
notes: "Implementaci\xF3n finalizada. Code review aprobado. Tests E2E passing. Ready para changelog y deploy a producci\xF3n.",
|
|
2269
|
-
references: [
|
|
2270
|
-
"pr:456",
|
|
2271
|
-
"commit:def789abc",
|
|
2272
|
-
"url:https://staging.app.com/login"
|
|
2273
|
-
]
|
|
2274
|
-
},
|
|
2275
|
-
{
|
|
2276
|
-
id: "1752275600-exec-cambio-estrategia-redis",
|
|
2277
|
-
taskId: "1752274500-task-oauth-implementation",
|
|
2278
|
-
type: "info",
|
|
2279
|
-
title: "Cambio de estrategia: Usar Redis para sessions",
|
|
2280
|
-
result: "Decisi\xF3n: Migrar de JWT stateless a sessions en Redis por requisito de revocaci\xF3n inmediata.",
|
|
2281
|
-
notes: "Durante code review se identific\xF3 requisito cr\xEDtico: revocar sesiones inmediatamente (ej: compromiso de cuenta). JWT stateless no permite esto sin lista negra compleja. Redis sessions permite revocaci\xF3n instant\xE1nea.",
|
|
2282
|
-
references: [
|
|
2283
|
-
"issue:567",
|
|
2284
|
-
"url:https://redis.io/docs/manual/keyspace-notifications/"
|
|
2285
|
-
]
|
|
2286
|
-
},
|
|
2287
|
-
{
|
|
2288
|
-
id: "1752275700-exec-correccion-metricas",
|
|
2289
|
-
taskId: "1752274500-task-optimizar-api",
|
|
2290
|
-
type: "correction",
|
|
2291
|
-
title: "Correcci\xF3n: M\xE9tricas de performance",
|
|
2292
|
-
result: "Correcci\xF3n de execution 1752275500-exec-refactor-queries: El performance fue 200ms, no 50ms como se report\xF3.",
|
|
2293
|
-
notes: "Error de tipeo en execution original. La mejora real fue de 2.5s a 200ms (no 50ms). Sigue siendo significativa (92% mejora) pero n\xFAmeros correctos son importantes para m\xE9tricas.",
|
|
2294
|
-
references: [
|
|
2295
|
-
"exec:1752275500-exec-refactor-queries"
|
|
2296
|
-
]
|
|
2297
|
-
},
|
|
2298
|
-
{
|
|
2299
|
-
id: "1752276000-exec-source-audit-scan",
|
|
2300
|
-
taskId: "1752274500-task-audit-compliance",
|
|
2301
|
-
type: "analysis",
|
|
2302
|
-
title: "Source Audit Scan - 2025-01-15",
|
|
2303
|
-
result: "Escaneados 245 archivos. Encontrados 10 findings (3 critical, 4 high, 3 medium). Ver metadata para detalles estructurados.",
|
|
2304
|
-
notes: "Scan ejecutado con RegexDetector + HeuristicDetector. LLM calls: 0 (tier free).",
|
|
2305
|
-
references: [
|
|
2306
|
-
"file:src/config/db.ts",
|
|
2307
|
-
"file:src/auth/keys.ts"
|
|
2308
|
-
],
|
|
2309
|
-
metadata: {
|
|
2310
|
-
scannedFiles: 245,
|
|
2311
|
-
scannedLines: 18420,
|
|
2312
|
-
duration_ms: 1250,
|
|
2313
|
-
findings: [
|
|
2314
|
-
{
|
|
2315
|
-
id: "SEC-001",
|
|
2316
|
-
severity: "critical",
|
|
2317
|
-
file: "src/config/db.ts",
|
|
2318
|
-
line: 5,
|
|
2319
|
-
type: "api_key"
|
|
2320
|
-
},
|
|
2321
|
-
{
|
|
2322
|
-
id: "SEC-003",
|
|
2323
|
-
severity: "critical",
|
|
2324
|
-
file: "src/auth/keys.ts",
|
|
2325
|
-
line: 2,
|
|
2326
|
-
type: "private_key"
|
|
2327
|
-
},
|
|
2328
|
-
{
|
|
2329
|
-
id: "PII-003",
|
|
2330
|
-
severity: "critical",
|
|
2331
|
-
file: "src/payments/stripe.ts",
|
|
2332
|
-
line: 8,
|
|
2333
|
-
type: "credit_card"
|
|
2334
|
-
}
|
|
2335
|
-
],
|
|
2336
|
-
summary: {
|
|
2337
|
-
critical: 3,
|
|
2338
|
-
high: 4,
|
|
2339
|
-
medium: 3,
|
|
2340
|
-
low: 0
|
|
2341
|
-
}
|
|
2342
|
-
}
|
|
2030
|
+
type: "string",
|
|
2031
|
+
minLength: 1,
|
|
2032
|
+
maxLength: 500
|
|
2033
|
+
},
|
|
2034
|
+
default: [],
|
|
2035
|
+
description: "Optional list of typed references to relevant commits, files, PRs, or external documents. Standard prefixes: commit:, pr:, issue:, file:, url:, task:, exec:.\n"
|
|
2036
|
+
},
|
|
2037
|
+
metadata: {
|
|
2038
|
+
type: "object",
|
|
2039
|
+
additionalProperties: true,
|
|
2040
|
+
description: "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.\n"
|
|
2343
2041
|
}
|
|
2344
|
-
|
|
2042
|
+
}
|
|
2345
2043
|
};
|
|
2346
2044
|
|
|
2347
2045
|
// src/record_schemas/generated/feedback_record_schema.json
|
|
@@ -2349,7 +2047,7 @@ var feedback_record_schema_default = {
|
|
|
2349
2047
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
2350
2048
|
$id: "feedback_record_schema.json",
|
|
2351
2049
|
title: "FeedbackRecord",
|
|
2352
|
-
description: "Canonical schema for feedback records
|
|
2050
|
+
description: "Canonical schema for feedback records \u2014 the structured conversation about work.",
|
|
2353
2051
|
additionalProperties: false,
|
|
2354
2052
|
type: "object",
|
|
2355
2053
|
required: [
|
|
@@ -2365,32 +2063,35 @@ var feedback_record_schema_default = {
|
|
|
2365
2063
|
type: "string",
|
|
2366
2064
|
pattern: "^\\d{10}-feedback-[a-z0-9-]{1,50}$",
|
|
2367
2065
|
maxLength: 70,
|
|
2368
|
-
description: "Unique identifier for the feedback entry",
|
|
2066
|
+
description: "Unique identifier for the feedback entry (10 timestamp + 1 dash + 8 'feedback' + 1 dash + max 50 slug = 70 max)",
|
|
2369
2067
|
examples: [
|
|
2370
2068
|
"1752788100-feedback-blocking-rest-api",
|
|
2371
|
-
"
|
|
2069
|
+
"1752788400-feedback-question-test-coverage"
|
|
2372
2070
|
]
|
|
2373
2071
|
},
|
|
2374
2072
|
entityType: {
|
|
2375
2073
|
type: "string",
|
|
2376
2074
|
enum: [
|
|
2075
|
+
"actor",
|
|
2076
|
+
"agent",
|
|
2377
2077
|
"task",
|
|
2378
2078
|
"execution",
|
|
2379
|
-
"changelog",
|
|
2380
2079
|
"feedback",
|
|
2381
|
-
"cycle"
|
|
2080
|
+
"cycle",
|
|
2081
|
+
"workflow"
|
|
2382
2082
|
],
|
|
2383
|
-
description: "The type of entity this feedback refers to"
|
|
2083
|
+
description: "The type of entity this feedback refers to."
|
|
2384
2084
|
},
|
|
2385
2085
|
entityId: {
|
|
2386
2086
|
type: "string",
|
|
2387
2087
|
minLength: 1,
|
|
2388
2088
|
maxLength: 256,
|
|
2389
|
-
description: "The ID of the entity this feedback refers to.\nMust match the pattern for its entityType:\n- task: ^\\d{10}-task-[a-z0-9-]{1,50}$\n- execution: ^\\d{10}-exec-[a-z0-9-]{1,50}$\n-
|
|
2089
|
+
description: "The ID of the entity this feedback refers to.\nMust match the ID pattern for its entityType:\n- actor: ^(human|agent)(:[a-z0-9-]+)+$\n- agent: ^agent(:[a-z0-9-]+)+$\n- task: ^\\d{10}-task-[a-z0-9-]{1,50}$\n- execution: ^\\d{10}-exec-[a-z0-9-]{1,50}$\n- feedback: ^\\d{10}-feedback-[a-z0-9-]{1,50}$\n- cycle: ^\\d{10}-cycle-[a-z0-9-]{1,50}$\n- workflow: ^\\d{10}-workflow-[a-z0-9-]{1,50}$\n",
|
|
2390
2090
|
examples: [
|
|
2391
2091
|
"1752274500-task-implementar-oauth",
|
|
2392
2092
|
"1752642000-exec-subtarea-9-4",
|
|
2393
|
-
"1752788100-feedback-blocking-rest-api"
|
|
2093
|
+
"1752788100-feedback-blocking-rest-api",
|
|
2094
|
+
"human:camilo"
|
|
2394
2095
|
]
|
|
2395
2096
|
},
|
|
2396
2097
|
type: {
|
|
@@ -2403,12 +2104,7 @@ var feedback_record_schema_default = {
|
|
|
2403
2104
|
"clarification",
|
|
2404
2105
|
"assignment"
|
|
2405
2106
|
],
|
|
2406
|
-
description: "The semantic intent of the feedback"
|
|
2407
|
-
examples: [
|
|
2408
|
-
"blocking",
|
|
2409
|
-
"question",
|
|
2410
|
-
"approval"
|
|
2411
|
-
]
|
|
2107
|
+
description: "The semantic intent of the feedback."
|
|
2412
2108
|
},
|
|
2413
2109
|
status: {
|
|
2414
2110
|
type: "string",
|
|
@@ -2418,19 +2114,18 @@ var feedback_record_schema_default = {
|
|
|
2418
2114
|
"resolved",
|
|
2419
2115
|
"wontfix"
|
|
2420
2116
|
],
|
|
2421
|
-
description: 'The lifecycle status of the feedback
|
|
2117
|
+
description: 'The lifecycle status of the feedback.\nFeedbackRecords are immutable. To change status, create a new FeedbackRecord\nthat references this one using entityType: "feedback" and resolvesFeedbackId.\n'
|
|
2422
2118
|
},
|
|
2423
2119
|
content: {
|
|
2424
2120
|
type: "string",
|
|
2425
2121
|
minLength: 1,
|
|
2426
|
-
|
|
2427
|
-
description: "The content of the feedback. Reduced from 10000 to 5000 chars for practical use."
|
|
2122
|
+
description: "The content of the feedback."
|
|
2428
2123
|
},
|
|
2429
2124
|
assignee: {
|
|
2430
2125
|
type: "string",
|
|
2431
2126
|
pattern: "^(human|agent)(:[a-z0-9-]+)+$",
|
|
2432
2127
|
maxLength: 256,
|
|
2433
|
-
description: "Optional. The Actor ID responsible for addressing the feedback (e.g., 'human:maria', 'agent:camilo:cursor')",
|
|
2128
|
+
description: "Optional. The Actor ID responsible for addressing the feedback (e.g., 'human:maria', 'agent:camilo:cursor').",
|
|
2434
2129
|
examples: [
|
|
2435
2130
|
"human:maria",
|
|
2436
2131
|
"agent:code-reviewer",
|
|
@@ -2441,7 +2136,7 @@ var feedback_record_schema_default = {
|
|
|
2441
2136
|
type: "string",
|
|
2442
2137
|
pattern: "^\\d{10}-feedback-[a-z0-9-]{1,50}$",
|
|
2443
2138
|
maxLength: 70,
|
|
2444
|
-
description: "Optional. The ID of another
|
|
2139
|
+
description: "Optional. The ID of another FeedbackRecord that this one resolves or responds to.",
|
|
2445
2140
|
examples: [
|
|
2446
2141
|
"1752788100-feedback-blocking-rest-api"
|
|
2447
2142
|
]
|
|
@@ -2449,18 +2144,151 @@ var feedback_record_schema_default = {
|
|
|
2449
2144
|
metadata: {
|
|
2450
2145
|
type: "object",
|
|
2451
2146
|
additionalProperties: true,
|
|
2452
|
-
description: "Optional structured data for machine consumption.\nUse this field for domain-specific data that needs to be programmatically processed.\nCommon use cases: waiver details (fingerprint, ruleId, file, line), approval context, assignment metadata.\n"
|
|
2453
|
-
examples: [
|
|
2454
|
-
{
|
|
2455
|
-
fingerprint: "abc123def456",
|
|
2456
|
-
ruleId: "PII-001",
|
|
2457
|
-
file: "src/user.ts",
|
|
2458
|
-
line: 42,
|
|
2459
|
-
expiresAt: "2025-12-31T23:59:59Z"
|
|
2460
|
-
}
|
|
2461
|
-
]
|
|
2147
|
+
description: "Optional structured data for machine consumption.\nUse this field for domain-specific data that needs to be programmatically processed.\nCommon use cases: waiver details (fingerprint, ruleId, file, line), approval context, assignment metadata.\n"
|
|
2462
2148
|
}
|
|
2463
2149
|
},
|
|
2150
|
+
allOf: [
|
|
2151
|
+
{
|
|
2152
|
+
if: {
|
|
2153
|
+
required: [
|
|
2154
|
+
"entityType"
|
|
2155
|
+
],
|
|
2156
|
+
properties: {
|
|
2157
|
+
entityType: {
|
|
2158
|
+
const: "actor"
|
|
2159
|
+
}
|
|
2160
|
+
}
|
|
2161
|
+
},
|
|
2162
|
+
then: {
|
|
2163
|
+
properties: {
|
|
2164
|
+
entityId: {
|
|
2165
|
+
type: "string",
|
|
2166
|
+
pattern: "^(human|agent)(:[a-z0-9-]+)+$"
|
|
2167
|
+
}
|
|
2168
|
+
}
|
|
2169
|
+
}
|
|
2170
|
+
},
|
|
2171
|
+
{
|
|
2172
|
+
if: {
|
|
2173
|
+
required: [
|
|
2174
|
+
"entityType"
|
|
2175
|
+
],
|
|
2176
|
+
properties: {
|
|
2177
|
+
entityType: {
|
|
2178
|
+
const: "agent"
|
|
2179
|
+
}
|
|
2180
|
+
}
|
|
2181
|
+
},
|
|
2182
|
+
then: {
|
|
2183
|
+
properties: {
|
|
2184
|
+
entityId: {
|
|
2185
|
+
type: "string",
|
|
2186
|
+
pattern: "^agent(:[a-z0-9-]+)+$"
|
|
2187
|
+
}
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
},
|
|
2191
|
+
{
|
|
2192
|
+
if: {
|
|
2193
|
+
required: [
|
|
2194
|
+
"entityType"
|
|
2195
|
+
],
|
|
2196
|
+
properties: {
|
|
2197
|
+
entityType: {
|
|
2198
|
+
const: "task"
|
|
2199
|
+
}
|
|
2200
|
+
}
|
|
2201
|
+
},
|
|
2202
|
+
then: {
|
|
2203
|
+
properties: {
|
|
2204
|
+
entityId: {
|
|
2205
|
+
type: "string",
|
|
2206
|
+
pattern: "^\\d{10}-task-[a-z0-9-]{1,50}$"
|
|
2207
|
+
}
|
|
2208
|
+
}
|
|
2209
|
+
}
|
|
2210
|
+
},
|
|
2211
|
+
{
|
|
2212
|
+
if: {
|
|
2213
|
+
required: [
|
|
2214
|
+
"entityType"
|
|
2215
|
+
],
|
|
2216
|
+
properties: {
|
|
2217
|
+
entityType: {
|
|
2218
|
+
const: "execution"
|
|
2219
|
+
}
|
|
2220
|
+
}
|
|
2221
|
+
},
|
|
2222
|
+
then: {
|
|
2223
|
+
properties: {
|
|
2224
|
+
entityId: {
|
|
2225
|
+
type: "string",
|
|
2226
|
+
pattern: "^\\d{10}-exec-[a-z0-9-]{1,50}$"
|
|
2227
|
+
}
|
|
2228
|
+
}
|
|
2229
|
+
}
|
|
2230
|
+
},
|
|
2231
|
+
{
|
|
2232
|
+
if: {
|
|
2233
|
+
required: [
|
|
2234
|
+
"entityType"
|
|
2235
|
+
],
|
|
2236
|
+
properties: {
|
|
2237
|
+
entityType: {
|
|
2238
|
+
const: "feedback"
|
|
2239
|
+
}
|
|
2240
|
+
}
|
|
2241
|
+
},
|
|
2242
|
+
then: {
|
|
2243
|
+
properties: {
|
|
2244
|
+
entityId: {
|
|
2245
|
+
type: "string",
|
|
2246
|
+
pattern: "^\\d{10}-feedback-[a-z0-9-]{1,50}$"
|
|
2247
|
+
}
|
|
2248
|
+
}
|
|
2249
|
+
}
|
|
2250
|
+
},
|
|
2251
|
+
{
|
|
2252
|
+
if: {
|
|
2253
|
+
required: [
|
|
2254
|
+
"entityType"
|
|
2255
|
+
],
|
|
2256
|
+
properties: {
|
|
2257
|
+
entityType: {
|
|
2258
|
+
const: "cycle"
|
|
2259
|
+
}
|
|
2260
|
+
}
|
|
2261
|
+
},
|
|
2262
|
+
then: {
|
|
2263
|
+
properties: {
|
|
2264
|
+
entityId: {
|
|
2265
|
+
type: "string",
|
|
2266
|
+
pattern: "^\\d{10}-cycle-[a-z0-9-]{1,50}$"
|
|
2267
|
+
}
|
|
2268
|
+
}
|
|
2269
|
+
}
|
|
2270
|
+
},
|
|
2271
|
+
{
|
|
2272
|
+
if: {
|
|
2273
|
+
required: [
|
|
2274
|
+
"entityType"
|
|
2275
|
+
],
|
|
2276
|
+
properties: {
|
|
2277
|
+
entityType: {
|
|
2278
|
+
const: "workflow"
|
|
2279
|
+
}
|
|
2280
|
+
}
|
|
2281
|
+
},
|
|
2282
|
+
then: {
|
|
2283
|
+
properties: {
|
|
2284
|
+
entityId: {
|
|
2285
|
+
type: "string",
|
|
2286
|
+
pattern: "^\\d{10}-workflow-[a-z0-9-]{1,50}$"
|
|
2287
|
+
}
|
|
2288
|
+
}
|
|
2289
|
+
}
|
|
2290
|
+
}
|
|
2291
|
+
],
|
|
2464
2292
|
examples: [
|
|
2465
2293
|
{
|
|
2466
2294
|
id: "1752788100-feedback-blocking-rest-api",
|
|
@@ -2468,7 +2296,7 @@ var feedback_record_schema_default = {
|
|
|
2468
2296
|
entityId: "1752642000-exec-subtarea-9-4",
|
|
2469
2297
|
type: "blocking",
|
|
2470
2298
|
status: "open",
|
|
2471
|
-
content: "
|
|
2299
|
+
content: "This implementation does not comply with the REST endpoint standard. Endpoints must follow the /api/v1/{resource}/{id} pattern. Currently uses /get-user?id=X which is not RESTful."
|
|
2472
2300
|
},
|
|
2473
2301
|
{
|
|
2474
2302
|
id: "1752788200-feedback-rest-api-fixed",
|
|
@@ -2476,7 +2304,7 @@ var feedback_record_schema_default = {
|
|
|
2476
2304
|
entityId: "1752788100-feedback-blocking-rest-api",
|
|
2477
2305
|
type: "clarification",
|
|
2478
2306
|
status: "resolved",
|
|
2479
|
-
content: "
|
|
2307
|
+
content: "Fix implemented. All endpoints now follow REST standard: GET /api/v1/users/:id, POST /api/v1/users, etc. Tests updated and passing.",
|
|
2480
2308
|
resolvesFeedbackId: "1752788100-feedback-blocking-rest-api"
|
|
2481
2309
|
},
|
|
2482
2310
|
{
|
|
@@ -2485,7 +2313,7 @@ var feedback_record_schema_default = {
|
|
|
2485
2313
|
entityId: "1752274500-task-implementar-oauth",
|
|
2486
2314
|
type: "assignment",
|
|
2487
2315
|
status: "open",
|
|
2488
|
-
content: "
|
|
2316
|
+
content: "Assigning this task to Maria for her experience with OAuth2. High priority for the current sprint.",
|
|
2489
2317
|
assignee: "human:maria"
|
|
2490
2318
|
},
|
|
2491
2319
|
{
|
|
@@ -2494,7 +2322,7 @@ var feedback_record_schema_default = {
|
|
|
2494
2322
|
entityId: "1752274500-task-implementar-oauth",
|
|
2495
2323
|
type: "question",
|
|
2496
2324
|
status: "open",
|
|
2497
|
-
content: "
|
|
2325
|
+
content: "What level of test coverage is expected for this feature? The spec does not mention it explicitly. Should we aim for 80% like the rest of the project?"
|
|
2498
2326
|
}
|
|
2499
2327
|
]
|
|
2500
2328
|
};
|
|
@@ -2504,7 +2332,7 @@ var task_record_schema_default = {
|
|
|
2504
2332
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
2505
2333
|
$id: "task_record_schema.json",
|
|
2506
2334
|
title: "TaskRecord",
|
|
2507
|
-
description: "Canonical schema for task records as defined in
|
|
2335
|
+
description: "Canonical schema for task records as defined in 04_task.md",
|
|
2508
2336
|
additionalProperties: false,
|
|
2509
2337
|
type: "object",
|
|
2510
2338
|
required: [
|
|
@@ -2554,7 +2382,6 @@ var task_record_schema_default = {
|
|
|
2554
2382
|
"paused",
|
|
2555
2383
|
"discarded"
|
|
2556
2384
|
],
|
|
2557
|
-
maxLength: 40,
|
|
2558
2385
|
description: "Current state of the task in the institutional flow"
|
|
2559
2386
|
},
|
|
2560
2387
|
priority: {
|
|
@@ -2565,13 +2392,11 @@ var task_record_schema_default = {
|
|
|
2565
2392
|
"high",
|
|
2566
2393
|
"critical"
|
|
2567
2394
|
],
|
|
2568
|
-
maxLength: 40,
|
|
2569
2395
|
description: "Strategic or tactical priority level"
|
|
2570
2396
|
},
|
|
2571
2397
|
description: {
|
|
2572
2398
|
type: "string",
|
|
2573
2399
|
minLength: 10,
|
|
2574
|
-
maxLength: 22e3,
|
|
2575
2400
|
description: "Functional, technical or strategic summary of the objective"
|
|
2576
2401
|
},
|
|
2577
2402
|
tags: {
|
|
@@ -2579,7 +2404,7 @@ var task_record_schema_default = {
|
|
|
2579
2404
|
items: {
|
|
2580
2405
|
type: "string",
|
|
2581
2406
|
minLength: 1,
|
|
2582
|
-
pattern: "^[a-z0-9-]+(:[a-z0-9
|
|
2407
|
+
pattern: "^[a-z0-9-]+(:[a-z0-9-]+)*$"
|
|
2583
2408
|
},
|
|
2584
2409
|
default: [],
|
|
2585
2410
|
description: "Optional. List of key:value tags for categorization and role suggestion (e.g., 'skill:react', 'role:agent:developer')."
|
|
@@ -2596,9 +2421,26 @@ var task_record_schema_default = {
|
|
|
2596
2421
|
},
|
|
2597
2422
|
notes: {
|
|
2598
2423
|
type: "string",
|
|
2599
|
-
minLength:
|
|
2600
|
-
maxLength: 3e3,
|
|
2424
|
+
minLength: 1,
|
|
2601
2425
|
description: "Additional comments, decisions made or added context"
|
|
2426
|
+
},
|
|
2427
|
+
metadata: {
|
|
2428
|
+
type: "object",
|
|
2429
|
+
additionalProperties: true,
|
|
2430
|
+
description: "Optional structured data for machine consumption.\nUse this field for domain-specific data that needs to be programmatically processed.\nComplements tags (classification) and notes (free text) with structured, queryable data.\nCommon use cases: epic metadata, external tool references, agent metrics, compliance tags.\n",
|
|
2431
|
+
examples: [
|
|
2432
|
+
{
|
|
2433
|
+
epic: true,
|
|
2434
|
+
phase: "implementation",
|
|
2435
|
+
files: {
|
|
2436
|
+
overview: "overview.md"
|
|
2437
|
+
}
|
|
2438
|
+
},
|
|
2439
|
+
{
|
|
2440
|
+
jira: "AUTH-42",
|
|
2441
|
+
storyPoints: 5
|
|
2442
|
+
}
|
|
2443
|
+
]
|
|
2602
2444
|
}
|
|
2603
2445
|
},
|
|
2604
2446
|
examples: [
|
|
@@ -2681,25 +2523,22 @@ var task_record_schema_default = {
|
|
|
2681
2523
|
// src/record_schemas/generated/workflow_record_schema.json
|
|
2682
2524
|
var workflow_record_schema_default = {
|
|
2683
2525
|
$schema: "http://json-schema.org/draft-07/schema#",
|
|
2684
|
-
$id: "
|
|
2526
|
+
$id: "workflow_record_schema.json",
|
|
2685
2527
|
title: "WorkflowRecord",
|
|
2686
|
-
description: "
|
|
2528
|
+
description: "Schema for workflow methodology configuration that defines named state transitions, signatures, and custom rules.",
|
|
2687
2529
|
type: "object",
|
|
2688
2530
|
required: [
|
|
2689
|
-
"
|
|
2531
|
+
"id",
|
|
2690
2532
|
"name",
|
|
2691
2533
|
"state_transitions"
|
|
2692
2534
|
],
|
|
2693
2535
|
additionalProperties: false,
|
|
2694
2536
|
properties: {
|
|
2695
|
-
|
|
2696
|
-
type: "string",
|
|
2697
|
-
description: "JSON Schema reference"
|
|
2698
|
-
},
|
|
2699
|
-
version: {
|
|
2537
|
+
id: {
|
|
2700
2538
|
type: "string",
|
|
2701
|
-
pattern: "^\\d
|
|
2702
|
-
|
|
2539
|
+
pattern: "^\\d{10}-workflow-[a-z0-9-]{1,50}$",
|
|
2540
|
+
maxLength: 70,
|
|
2541
|
+
description: "Unique identifier for the workflow record (10 timestamp + 1 dash + 8 'workflow' + 1 dash + max 50 slug = 70 max)"
|
|
2703
2542
|
},
|
|
2704
2543
|
name: {
|
|
2705
2544
|
type: "string",
|
|
@@ -2714,11 +2553,15 @@ var workflow_record_schema_default = {
|
|
|
2714
2553
|
},
|
|
2715
2554
|
state_transitions: {
|
|
2716
2555
|
type: "object",
|
|
2717
|
-
description: "
|
|
2556
|
+
description: "Map of named transitions to their rules. Keys are transition names (e.g., submit, approve, activate, resume), not target states.",
|
|
2557
|
+
propertyNames: {
|
|
2558
|
+
pattern: "^[a-z][a-z0-9_]{0,49}$"
|
|
2559
|
+
},
|
|
2718
2560
|
additionalProperties: {
|
|
2719
2561
|
type: "object",
|
|
2720
2562
|
required: [
|
|
2721
2563
|
"from",
|
|
2564
|
+
"to",
|
|
2722
2565
|
"requires"
|
|
2723
2566
|
],
|
|
2724
2567
|
additionalProperties: false,
|
|
@@ -2732,21 +2575,26 @@ var workflow_record_schema_default = {
|
|
|
2732
2575
|
minItems: 1,
|
|
2733
2576
|
description: "Valid source states for this transition"
|
|
2734
2577
|
},
|
|
2578
|
+
to: {
|
|
2579
|
+
type: "string",
|
|
2580
|
+
pattern: "^[a-z][a-z0-9_]{0,49}$",
|
|
2581
|
+
description: "Target state for this transition"
|
|
2582
|
+
},
|
|
2735
2583
|
requires: {
|
|
2736
2584
|
type: "object",
|
|
2737
2585
|
additionalProperties: false,
|
|
2738
2586
|
properties: {
|
|
2739
2587
|
command: {
|
|
2740
2588
|
type: "string",
|
|
2741
|
-
description: "CLI command that triggers this transition"
|
|
2589
|
+
description: "CLI command that triggers this transition (Command Gate)"
|
|
2742
2590
|
},
|
|
2743
2591
|
event: {
|
|
2744
2592
|
type: "string",
|
|
2745
|
-
description: "System event that triggers this transition"
|
|
2593
|
+
description: "System event that triggers this transition (Event Gate)"
|
|
2746
2594
|
},
|
|
2747
2595
|
signatures: {
|
|
2748
2596
|
type: "object",
|
|
2749
|
-
description: "Signature requirements
|
|
2597
|
+
description: "Signature group requirements (Signature Gate)",
|
|
2750
2598
|
additionalProperties: {
|
|
2751
2599
|
type: "object",
|
|
2752
2600
|
required: [
|
|
@@ -2786,7 +2634,7 @@ var workflow_record_schema_default = {
|
|
|
2786
2634
|
items: {
|
|
2787
2635
|
type: "string"
|
|
2788
2636
|
},
|
|
2789
|
-
description: "Optional:
|
|
2637
|
+
description: "Optional: restrict to specific actor IDs"
|
|
2790
2638
|
}
|
|
2791
2639
|
}
|
|
2792
2640
|
}
|
|
@@ -2835,7 +2683,7 @@ var workflow_record_schema_default = {
|
|
|
2835
2683
|
},
|
|
2836
2684
|
expression: {
|
|
2837
2685
|
type: "string",
|
|
2838
|
-
description: "Inline validation expression for 'custom'
|
|
2686
|
+
description: "Inline validation expression for 'custom' type. Must return boolean."
|
|
2839
2687
|
},
|
|
2840
2688
|
module_path: {
|
|
2841
2689
|
type: "string",
|
|
@@ -2846,7 +2694,7 @@ var workflow_record_schema_default = {
|
|
|
2846
2694
|
},
|
|
2847
2695
|
agent_integration: {
|
|
2848
2696
|
type: "object",
|
|
2849
|
-
description: "Optional agent automation configuration
|
|
2697
|
+
description: "Optional agent automation configuration",
|
|
2850
2698
|
additionalProperties: false,
|
|
2851
2699
|
properties: {
|
|
2852
2700
|
description: {
|
|
@@ -2856,7 +2704,7 @@ var workflow_record_schema_default = {
|
|
|
2856
2704
|
},
|
|
2857
2705
|
required_agents: {
|
|
2858
2706
|
type: "array",
|
|
2859
|
-
description: "
|
|
2707
|
+
description: "Agents required for this methodology",
|
|
2860
2708
|
items: {
|
|
2861
2709
|
type: "object",
|
|
2862
2710
|
required: [
|
|
@@ -2878,8 +2726,8 @@ var workflow_record_schema_default = {
|
|
|
2878
2726
|
properties: {
|
|
2879
2727
|
id: {
|
|
2880
2728
|
type: "string",
|
|
2881
|
-
pattern: "^agent:[a-z0-9
|
|
2882
|
-
description: "Specific agent ID
|
|
2729
|
+
pattern: "^agent(:[a-z0-9-]+)+$",
|
|
2730
|
+
description: "Specific agent ID (references an AgentRecord)"
|
|
2883
2731
|
},
|
|
2884
2732
|
required_roles: {
|
|
2885
2733
|
type: "array",
|
|
@@ -2888,11 +2736,11 @@ var workflow_record_schema_default = {
|
|
|
2888
2736
|
pattern: "^[a-z0-9-]+(:[a-z0-9-]+)*$"
|
|
2889
2737
|
},
|
|
2890
2738
|
minItems: 1,
|
|
2891
|
-
description: "Required capability roles
|
|
2739
|
+
description: "Required capability roles (matches any agent with these roles)"
|
|
2892
2740
|
},
|
|
2893
2741
|
triggers: {
|
|
2894
2742
|
type: "array",
|
|
2895
|
-
description: "
|
|
2743
|
+
description: "Events that activate this agent",
|
|
2896
2744
|
items: {
|
|
2897
2745
|
type: "object",
|
|
2898
2746
|
required: [
|
|
@@ -2921,190 +2769,13 @@ var workflow_record_schema_default = {
|
|
|
2921
2769
|
}
|
|
2922
2770
|
}
|
|
2923
2771
|
}
|
|
2924
|
-
}
|
|
2925
|
-
examples: [
|
|
2926
|
-
{
|
|
2927
|
-
version: "1.0.0",
|
|
2928
|
-
name: "Simple Kanban",
|
|
2929
|
-
description: "Basic workflow for small teams",
|
|
2930
|
-
state_transitions: {
|
|
2931
|
-
review: {
|
|
2932
|
-
from: [
|
|
2933
|
-
"draft"
|
|
2934
|
-
],
|
|
2935
|
-
requires: {
|
|
2936
|
-
command: "gitgov task submit"
|
|
2937
|
-
}
|
|
2938
|
-
},
|
|
2939
|
-
ready: {
|
|
2940
|
-
from: [
|
|
2941
|
-
"review"
|
|
2942
|
-
],
|
|
2943
|
-
requires: {
|
|
2944
|
-
command: "gitgov task approve",
|
|
2945
|
-
signatures: {
|
|
2946
|
-
__default__: {
|
|
2947
|
-
role: "approver",
|
|
2948
|
-
capability_roles: [
|
|
2949
|
-
"approver:product"
|
|
2950
|
-
],
|
|
2951
|
-
min_approvals: 1
|
|
2952
|
-
}
|
|
2953
|
-
}
|
|
2954
|
-
}
|
|
2955
|
-
},
|
|
2956
|
-
active: {
|
|
2957
|
-
from: [
|
|
2958
|
-
"ready"
|
|
2959
|
-
],
|
|
2960
|
-
requires: {
|
|
2961
|
-
event: "first_execution_record_created"
|
|
2962
|
-
}
|
|
2963
|
-
},
|
|
2964
|
-
done: {
|
|
2965
|
-
from: [
|
|
2966
|
-
"active"
|
|
2967
|
-
],
|
|
2968
|
-
requires: {
|
|
2969
|
-
command: "gitgov task complete"
|
|
2970
|
-
}
|
|
2971
|
-
}
|
|
2972
|
-
}
|
|
2973
|
-
},
|
|
2974
|
-
{
|
|
2975
|
-
version: "1.0.0",
|
|
2976
|
-
name: "GitGovernance Default Methodology",
|
|
2977
|
-
description: "Standard GitGovernance workflow with quality gates and agent collaboration",
|
|
2978
|
-
state_transitions: {
|
|
2979
|
-
review: {
|
|
2980
|
-
from: [
|
|
2981
|
-
"draft"
|
|
2982
|
-
],
|
|
2983
|
-
requires: {
|
|
2984
|
-
command: "gitgov task submit",
|
|
2985
|
-
signatures: {
|
|
2986
|
-
__default__: {
|
|
2987
|
-
role: "submitter",
|
|
2988
|
-
capability_roles: [
|
|
2989
|
-
"author"
|
|
2990
|
-
],
|
|
2991
|
-
min_approvals: 1
|
|
2992
|
-
}
|
|
2993
|
-
}
|
|
2994
|
-
}
|
|
2995
|
-
},
|
|
2996
|
-
ready: {
|
|
2997
|
-
from: [
|
|
2998
|
-
"review"
|
|
2999
|
-
],
|
|
3000
|
-
requires: {
|
|
3001
|
-
command: "gitgov task approve",
|
|
3002
|
-
signatures: {
|
|
3003
|
-
__default__: {
|
|
3004
|
-
role: "approver",
|
|
3005
|
-
capability_roles: [
|
|
3006
|
-
"approver:product"
|
|
3007
|
-
],
|
|
3008
|
-
min_approvals: 1
|
|
3009
|
-
},
|
|
3010
|
-
design: {
|
|
3011
|
-
role: "approver",
|
|
3012
|
-
capability_roles: [
|
|
3013
|
-
"approver:design"
|
|
3014
|
-
],
|
|
3015
|
-
min_approvals: 1
|
|
3016
|
-
},
|
|
3017
|
-
quality: {
|
|
3018
|
-
role: "approver",
|
|
3019
|
-
capability_roles: [
|
|
3020
|
-
"approver:quality"
|
|
3021
|
-
],
|
|
3022
|
-
min_approvals: 1
|
|
3023
|
-
}
|
|
3024
|
-
}
|
|
3025
|
-
}
|
|
3026
|
-
},
|
|
3027
|
-
active: {
|
|
3028
|
-
from: [
|
|
3029
|
-
"ready",
|
|
3030
|
-
"paused"
|
|
3031
|
-
],
|
|
3032
|
-
requires: {
|
|
3033
|
-
event: "first_execution_record_created",
|
|
3034
|
-
custom_rules: [
|
|
3035
|
-
"task_must_have_valid_assignment_for_executor"
|
|
3036
|
-
]
|
|
3037
|
-
}
|
|
3038
|
-
},
|
|
3039
|
-
done: {
|
|
3040
|
-
from: [
|
|
3041
|
-
"active"
|
|
3042
|
-
],
|
|
3043
|
-
requires: {
|
|
3044
|
-
command: "gitgov task complete",
|
|
3045
|
-
signatures: {
|
|
3046
|
-
__default__: {
|
|
3047
|
-
role: "approver",
|
|
3048
|
-
capability_roles: [
|
|
3049
|
-
"approver:quality"
|
|
3050
|
-
],
|
|
3051
|
-
min_approvals: 1
|
|
3052
|
-
}
|
|
3053
|
-
}
|
|
3054
|
-
}
|
|
3055
|
-
},
|
|
3056
|
-
archived: {
|
|
3057
|
-
from: [
|
|
3058
|
-
"done"
|
|
3059
|
-
],
|
|
3060
|
-
requires: {
|
|
3061
|
-
event: "changelog_record_created"
|
|
3062
|
-
}
|
|
3063
|
-
},
|
|
3064
|
-
paused: {
|
|
3065
|
-
from: [
|
|
3066
|
-
"active",
|
|
3067
|
-
"review"
|
|
3068
|
-
],
|
|
3069
|
-
requires: {
|
|
3070
|
-
event: "feedback_blocking_created"
|
|
3071
|
-
}
|
|
3072
|
-
},
|
|
3073
|
-
discarded: {
|
|
3074
|
-
from: [
|
|
3075
|
-
"ready",
|
|
3076
|
-
"active"
|
|
3077
|
-
],
|
|
3078
|
-
requires: {
|
|
3079
|
-
command: "gitgov task cancel",
|
|
3080
|
-
signatures: {
|
|
3081
|
-
__default__: {
|
|
3082
|
-
role: "canceller",
|
|
3083
|
-
capability_roles: [
|
|
3084
|
-
"approver:product",
|
|
3085
|
-
"approver:quality"
|
|
3086
|
-
],
|
|
3087
|
-
min_approvals: 1
|
|
3088
|
-
}
|
|
3089
|
-
}
|
|
3090
|
-
}
|
|
3091
|
-
}
|
|
3092
|
-
},
|
|
3093
|
-
custom_rules: {
|
|
3094
|
-
task_must_have_valid_assignment_for_executor: {
|
|
3095
|
-
description: "Task must have a valid assignment before execution can begin",
|
|
3096
|
-
validation: "assignment_required"
|
|
3097
|
-
}
|
|
3098
|
-
}
|
|
3099
|
-
}
|
|
3100
|
-
]
|
|
2772
|
+
}
|
|
3101
2773
|
};
|
|
3102
2774
|
|
|
3103
2775
|
// src/record_schemas/generated/index.ts
|
|
3104
2776
|
var Schemas = {
|
|
3105
2777
|
ActorRecord: actor_record_schema_default,
|
|
3106
2778
|
AgentRecord: agent_record_schema_default,
|
|
3107
|
-
ChangelogRecord: changelog_record_schema_default,
|
|
3108
2779
|
CycleRecord: cycle_record_schema_default,
|
|
3109
2780
|
EmbeddedMetadata: embedded_metadata_schema_default,
|
|
3110
2781
|
ExecutionRecord: execution_record_schema_default,
|
|
@@ -3146,7 +2817,6 @@ var SchemaValidationCache = class {
|
|
|
3146
2817
|
const schemaRefMap = {
|
|
3147
2818
|
"ActorRecord": "ref:actor_record_schema",
|
|
3148
2819
|
"AgentRecord": "ref:agent_record_schema",
|
|
3149
|
-
"ChangelogRecord": "ref:changelog_record_schema",
|
|
3150
2820
|
"CycleRecord": "ref:cycle_record_schema",
|
|
3151
2821
|
"ExecutionRecord": "ref:execution_record_schema",
|
|
3152
2822
|
"FeedbackRecord": "ref:feedback_record_schema",
|
|
@@ -3373,45 +3043,6 @@ function loadExecutionRecord(data) {
|
|
|
3373
3043
|
return record;
|
|
3374
3044
|
}
|
|
3375
3045
|
|
|
3376
|
-
// src/record_validations/changelog_validator.ts
|
|
3377
|
-
function validateChangelogRecordSchema(data) {
|
|
3378
|
-
const validator = SchemaValidationCache.getValidatorFromSchema(Schemas.ChangelogRecord);
|
|
3379
|
-
const isValid = validator(data);
|
|
3380
|
-
return [isValid, validator.errors];
|
|
3381
|
-
}
|
|
3382
|
-
function validateChangelogRecordDetailed(data) {
|
|
3383
|
-
const [isValid, errors] = validateChangelogRecordSchema(data);
|
|
3384
|
-
if (!isValid && errors) {
|
|
3385
|
-
const formattedErrors = errors.map((error) => ({
|
|
3386
|
-
field: error.instancePath?.replace("/", "") || error.params?.["missingProperty"] || "root",
|
|
3387
|
-
message: error.message || "Unknown validation error",
|
|
3388
|
-
value: error.data
|
|
3389
|
-
}));
|
|
3390
|
-
return {
|
|
3391
|
-
isValid: false,
|
|
3392
|
-
errors: formattedErrors
|
|
3393
|
-
};
|
|
3394
|
-
}
|
|
3395
|
-
return {
|
|
3396
|
-
isValid: true,
|
|
3397
|
-
errors: []
|
|
3398
|
-
};
|
|
3399
|
-
}
|
|
3400
|
-
|
|
3401
|
-
// src/record_factories/changelog_factory.ts
|
|
3402
|
-
function loadChangelogRecord(data) {
|
|
3403
|
-
const embeddedValidation = validateEmbeddedMetadataDetailed(data);
|
|
3404
|
-
if (!embeddedValidation.isValid) {
|
|
3405
|
-
throw new DetailedValidationError("GitGovRecord (ChangelogRecord)", embeddedValidation.errors);
|
|
3406
|
-
}
|
|
3407
|
-
const record = data;
|
|
3408
|
-
const payloadValidation = validateChangelogRecordDetailed(record.payload);
|
|
3409
|
-
if (!payloadValidation.isValid) {
|
|
3410
|
-
throw new DetailedValidationError("ChangelogRecord payload", payloadValidation.errors);
|
|
3411
|
-
}
|
|
3412
|
-
return record;
|
|
3413
|
-
}
|
|
3414
|
-
|
|
3415
3046
|
// src/record_validations/feedback_validator.ts
|
|
3416
3047
|
function validateFeedbackRecordSchema(data) {
|
|
3417
3048
|
const validator = SchemaValidationCache.getValidatorFromSchema(Schemas.FeedbackRecord);
|
|
@@ -3516,7 +3147,7 @@ var FsLintModule = class {
|
|
|
3516
3147
|
return this.lintModule.lintRecord(record, context);
|
|
3517
3148
|
}
|
|
3518
3149
|
/**
|
|
3519
|
-
* Delegates to LintModule.lintRecordReferences() for
|
|
3150
|
+
* Delegates to LintModule.lintRecordReferences() for reference validation.
|
|
3520
3151
|
*/
|
|
3521
3152
|
lintRecordReferences(record, context) {
|
|
3522
3153
|
return this.lintModule.lintRecordReferences(record, context);
|
|
@@ -3754,9 +3385,6 @@ var FsLintModule = class {
|
|
|
3754
3385
|
case "execution":
|
|
3755
3386
|
record = loadExecutionRecord(raw);
|
|
3756
3387
|
break;
|
|
3757
|
-
case "changelog":
|
|
3758
|
-
record = loadChangelogRecord(raw);
|
|
3759
|
-
break;
|
|
3760
3388
|
case "feedback":
|
|
3761
3389
|
record = loadFeedbackRecord(raw);
|
|
3762
3390
|
break;
|
|
@@ -3769,10 +3397,6 @@ var FsLintModule = class {
|
|
|
3769
3397
|
filePath
|
|
3770
3398
|
});
|
|
3771
3399
|
results.push(...lintResults);
|
|
3772
|
-
if (options.validateFileNaming) {
|
|
3773
|
-
const namingResults = this.validateFileNaming(record, recordId, filePath, entityType);
|
|
3774
|
-
results.push(...namingResults);
|
|
3775
|
-
}
|
|
3776
3400
|
if (options.validateReferences) {
|
|
3777
3401
|
const refResults = this.lintModule.lintRecordReferences(record, {
|
|
3778
3402
|
recordId,
|
|
@@ -3781,6 +3405,10 @@ var FsLintModule = class {
|
|
|
3781
3405
|
});
|
|
3782
3406
|
results.push(...refResults);
|
|
3783
3407
|
}
|
|
3408
|
+
if (options.validateFileNaming) {
|
|
3409
|
+
const namingResults = this.validateFileNaming(record, recordId, filePath, entityType);
|
|
3410
|
+
results.push(...namingResults);
|
|
3411
|
+
}
|
|
3784
3412
|
} catch (error) {
|
|
3785
3413
|
if (error instanceof DetailedValidationError) {
|
|
3786
3414
|
const hasAdditionalProperties = error.errors.some(
|
|
@@ -3833,7 +3461,6 @@ var FsLintModule = class {
|
|
|
3833
3461
|
"task": "tasks",
|
|
3834
3462
|
"cycle": "cycles",
|
|
3835
3463
|
"execution": "executions",
|
|
3836
|
-
"changelog": "changelogs",
|
|
3837
3464
|
"feedback": "feedbacks",
|
|
3838
3465
|
"actor": "actors",
|
|
3839
3466
|
"agent": "agents"
|
|
@@ -3876,7 +3503,6 @@ var FsLintModule = class {
|
|
|
3876
3503
|
"cycle",
|
|
3877
3504
|
"task",
|
|
3878
3505
|
"execution",
|
|
3879
|
-
"changelog",
|
|
3880
3506
|
"feedback"
|
|
3881
3507
|
];
|
|
3882
3508
|
const allRecords = [];
|
|
@@ -3884,7 +3510,6 @@ var FsLintModule = class {
|
|
|
3884
3510
|
"task": "tasks",
|
|
3885
3511
|
"cycle": "cycles",
|
|
3886
3512
|
"execution": "executions",
|
|
3887
|
-
"changelog": "changelogs",
|
|
3888
3513
|
"feedback": "feedbacks",
|
|
3889
3514
|
"actor": "actors",
|
|
3890
3515
|
"agent": "agents"
|
|
@@ -3910,7 +3535,6 @@ var FsLintModule = class {
|
|
|
3910
3535
|
"task": "tasks",
|
|
3911
3536
|
"cycle": "cycles",
|
|
3912
3537
|
"execution": "executions",
|
|
3913
|
-
"changelog": "changelogs",
|
|
3914
3538
|
"feedback": "feedbacks",
|
|
3915
3539
|
"actor": "actors",
|
|
3916
3540
|
"agent": "agents"
|
|
@@ -4126,8 +3750,7 @@ var GITGOV_DIRECTORIES = [
|
|
|
4126
3750
|
"cycles",
|
|
4127
3751
|
"tasks",
|
|
4128
3752
|
"executions",
|
|
4129
|
-
"feedbacks"
|
|
4130
|
-
"changelogs"
|
|
3753
|
+
"feedbacks"
|
|
4131
3754
|
];
|
|
4132
3755
|
var FsProjectInitializer = class {
|
|
4133
3756
|
projectRoot;
|
|
@@ -5656,7 +5279,6 @@ var SYNC_DIRECTORIES = [
|
|
|
5656
5279
|
"agents",
|
|
5657
5280
|
"feedbacks",
|
|
5658
5281
|
"executions",
|
|
5659
|
-
"changelogs",
|
|
5660
5282
|
"workflows"
|
|
5661
5283
|
];
|
|
5662
5284
|
var SYNC_ROOT_FILES = [
|