@mmerterden/multi-agent-pipeline 16.23.0 → 16.24.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/CHANGELOG.md +22 -0
- package/package.json +1 -1
- package/pipeline/multi-agent-refs/channels/jira.md +7 -0
- package/pipeline/multi-agent-refs/channels/pr.md +16 -3
- package/pipeline/multi-agent-refs/features/visual-evidence.md +172 -0
- package/pipeline/multi-agent-refs/generate-issue.md +3 -3
- package/pipeline/multi-agent-refs/phases/phase-0-init.md +2 -0
- package/pipeline/multi-agent-refs/phases/phase-3-dev.md +4 -0
- package/pipeline/multi-agent-refs/phases/phase-5-test.md +1 -0
- package/pipeline/multi-agent-refs/phases/phase-6-commit.md +1 -1
- package/pipeline/schemas/agent-state.schema.json +268 -41
- package/pipeline/schemas/prefs.schema.json +45 -19
- package/pipeline/schemas/token-budget.json +2 -2
- package/pipeline/scripts/capture-evidence.sh +187 -0
- package/pipeline/scripts/jira-attach.sh +85 -0
|
@@ -272,7 +272,9 @@
|
|
|
272
272
|
},
|
|
273
273
|
"docPath": {
|
|
274
274
|
"type": "array",
|
|
275
|
-
"items": {
|
|
275
|
+
"items": {
|
|
276
|
+
"type": "string"
|
|
277
|
+
},
|
|
276
278
|
"description": "One emitted path per selected platform."
|
|
277
279
|
},
|
|
278
280
|
"frontMatter": {
|
|
@@ -604,7 +606,9 @@
|
|
|
604
606
|
},
|
|
605
607
|
"failing": {
|
|
606
608
|
"type": "array",
|
|
607
|
-
"items": {
|
|
609
|
+
"items": {
|
|
610
|
+
"type": "string"
|
|
611
|
+
},
|
|
608
612
|
"description": "Identifiers of tests already failing before this run. Empty on a red status means the output could not be parsed into names: the evidence is then the logPath alone, and Phase 4 reports 'inherited red, not attributable' rather than inventing a set."
|
|
609
613
|
},
|
|
610
614
|
"logPath": {
|
|
@@ -655,17 +659,28 @@
|
|
|
655
659
|
"additionalProperties": true,
|
|
656
660
|
"description": "Written by Phase 4 Step 3.8 from review-delta.mjs: how this round's accepted findings relate to the previous round's rework mandate. Absent on iteration 1 and on runs from before the delta existed.",
|
|
657
661
|
"properties": {
|
|
658
|
-
"previousIteration": {
|
|
662
|
+
"previousIteration": {
|
|
663
|
+
"type": "integer",
|
|
664
|
+
"minimum": 1
|
|
665
|
+
},
|
|
659
666
|
"new": {
|
|
660
667
|
"type": "array",
|
|
661
668
|
"items": {
|
|
662
669
|
"type": "object",
|
|
663
670
|
"additionalProperties": true,
|
|
664
671
|
"properties": {
|
|
665
|
-
"fingerprint": {
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
"
|
|
672
|
+
"fingerprint": {
|
|
673
|
+
"type": "string"
|
|
674
|
+
},
|
|
675
|
+
"severity": {
|
|
676
|
+
"type": ["string", "null"]
|
|
677
|
+
},
|
|
678
|
+
"file": {
|
|
679
|
+
"type": ["string", "null"]
|
|
680
|
+
},
|
|
681
|
+
"issue": {
|
|
682
|
+
"type": ["string", "null"]
|
|
683
|
+
}
|
|
669
684
|
}
|
|
670
685
|
}
|
|
671
686
|
},
|
|
@@ -675,10 +690,18 @@
|
|
|
675
690
|
"type": "object",
|
|
676
691
|
"additionalProperties": true,
|
|
677
692
|
"properties": {
|
|
678
|
-
"fingerprint": {
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
"
|
|
693
|
+
"fingerprint": {
|
|
694
|
+
"type": "string"
|
|
695
|
+
},
|
|
696
|
+
"severity": {
|
|
697
|
+
"type": ["string", "null"]
|
|
698
|
+
},
|
|
699
|
+
"file": {
|
|
700
|
+
"type": ["string", "null"]
|
|
701
|
+
},
|
|
702
|
+
"issue": {
|
|
703
|
+
"type": ["string", "null"]
|
|
704
|
+
}
|
|
682
705
|
}
|
|
683
706
|
}
|
|
684
707
|
},
|
|
@@ -688,10 +711,18 @@
|
|
|
688
711
|
"type": "object",
|
|
689
712
|
"additionalProperties": true,
|
|
690
713
|
"properties": {
|
|
691
|
-
"fingerprint": {
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
"
|
|
714
|
+
"fingerprint": {
|
|
715
|
+
"type": "string"
|
|
716
|
+
},
|
|
717
|
+
"severity": {
|
|
718
|
+
"type": ["string", "null"]
|
|
719
|
+
},
|
|
720
|
+
"file": {
|
|
721
|
+
"type": ["string", "null"]
|
|
722
|
+
},
|
|
723
|
+
"issue": {
|
|
724
|
+
"type": ["string", "null"]
|
|
725
|
+
}
|
|
695
726
|
}
|
|
696
727
|
}
|
|
697
728
|
},
|
|
@@ -701,10 +732,18 @@
|
|
|
701
732
|
"type": "object",
|
|
702
733
|
"additionalProperties": true,
|
|
703
734
|
"properties": {
|
|
704
|
-
"fingerprint": {
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
"
|
|
735
|
+
"fingerprint": {
|
|
736
|
+
"type": "string"
|
|
737
|
+
},
|
|
738
|
+
"severity": {
|
|
739
|
+
"type": ["string", "null"]
|
|
740
|
+
},
|
|
741
|
+
"file": {
|
|
742
|
+
"type": ["string", "null"]
|
|
743
|
+
},
|
|
744
|
+
"issue": {
|
|
745
|
+
"type": ["string", "null"]
|
|
746
|
+
}
|
|
708
747
|
}
|
|
709
748
|
}
|
|
710
749
|
},
|
|
@@ -714,24 +753,40 @@
|
|
|
714
753
|
"type": "object",
|
|
715
754
|
"additionalProperties": true,
|
|
716
755
|
"properties": {
|
|
717
|
-
"fingerprint": {
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
"
|
|
756
|
+
"fingerprint": {
|
|
757
|
+
"type": "string"
|
|
758
|
+
},
|
|
759
|
+
"severity": {
|
|
760
|
+
"type": ["string", "null"]
|
|
761
|
+
},
|
|
762
|
+
"file": {
|
|
763
|
+
"type": ["string", "null"]
|
|
764
|
+
},
|
|
765
|
+
"issue": {
|
|
766
|
+
"type": ["string", "null"]
|
|
767
|
+
}
|
|
721
768
|
}
|
|
722
769
|
}
|
|
723
770
|
},
|
|
724
771
|
"recurrence": {
|
|
725
772
|
"type": "object",
|
|
726
|
-
"additionalProperties": {
|
|
773
|
+
"additionalProperties": {
|
|
774
|
+
"type": "integer",
|
|
775
|
+
"minimum": 1
|
|
776
|
+
},
|
|
727
777
|
"description": "fingerprint -> consecutive rework cycles the finding has survived."
|
|
728
778
|
},
|
|
729
779
|
"plateau": {
|
|
730
780
|
"type": "boolean",
|
|
731
781
|
"description": "The still-present set is unchanged from the previous delta and non-empty."
|
|
732
782
|
},
|
|
733
|
-
"tripped": {
|
|
734
|
-
|
|
783
|
+
"tripped": {
|
|
784
|
+
"type": "boolean"
|
|
785
|
+
},
|
|
786
|
+
"computedAt": {
|
|
787
|
+
"type": "string",
|
|
788
|
+
"format": "date-time"
|
|
789
|
+
}
|
|
735
790
|
}
|
|
736
791
|
},
|
|
737
792
|
"reviewers": {
|
|
@@ -768,7 +823,9 @@
|
|
|
768
823
|
},
|
|
769
824
|
"labelToModel": {
|
|
770
825
|
"type": "object",
|
|
771
|
-
"additionalProperties": {
|
|
826
|
+
"additionalProperties": {
|
|
827
|
+
"type": "string"
|
|
828
|
+
},
|
|
772
829
|
"description": "Source A|B|C -> model name. \"unknown\" for a reviewer entry that declared no model."
|
|
773
830
|
}
|
|
774
831
|
}
|
|
@@ -789,25 +846,51 @@
|
|
|
789
846
|
"description": "Autopilot circuit-breaker record (refs/features/autopilot-circuit-breaker.md). Written only when a trigger trips: trigger 2 by Phase 4 Step 3.8 (a mandate finding survived identicalFindingCycles rework cycles), trigger 3 by the Phase 3 re-entry hard-kill. /multi-agent:resume clears tripped and keeps counters.",
|
|
790
847
|
"required": ["tripped"],
|
|
791
848
|
"properties": {
|
|
792
|
-
"tripped": {
|
|
793
|
-
|
|
794
|
-
|
|
849
|
+
"tripped": {
|
|
850
|
+
"type": "boolean"
|
|
851
|
+
},
|
|
852
|
+
"trigger": {
|
|
853
|
+
"type": ["integer", "null"],
|
|
854
|
+
"minimum": 1,
|
|
855
|
+
"maximum": 5
|
|
856
|
+
},
|
|
857
|
+
"detail": {
|
|
858
|
+
"type": "string"
|
|
859
|
+
},
|
|
795
860
|
"checkpoint": {
|
|
796
861
|
"type": "object",
|
|
797
862
|
"additionalProperties": false,
|
|
798
863
|
"properties": {
|
|
799
|
-
"phase": {
|
|
800
|
-
|
|
801
|
-
|
|
864
|
+
"phase": {
|
|
865
|
+
"type": "integer",
|
|
866
|
+
"minimum": 0,
|
|
867
|
+
"maximum": 7
|
|
868
|
+
},
|
|
869
|
+
"step": {
|
|
870
|
+
"type": "string"
|
|
871
|
+
},
|
|
872
|
+
"iteration": {
|
|
873
|
+
"type": "integer",
|
|
874
|
+
"minimum": 1
|
|
875
|
+
}
|
|
802
876
|
}
|
|
803
877
|
},
|
|
804
|
-
"trippedAt": {
|
|
878
|
+
"trippedAt": {
|
|
879
|
+
"type": "string",
|
|
880
|
+
"format": "date-time"
|
|
881
|
+
},
|
|
805
882
|
"counters": {
|
|
806
883
|
"type": "object",
|
|
807
884
|
"additionalProperties": false,
|
|
808
885
|
"properties": {
|
|
809
|
-
"identicalFindingCycles": {
|
|
810
|
-
|
|
886
|
+
"identicalFindingCycles": {
|
|
887
|
+
"type": "integer",
|
|
888
|
+
"minimum": 0
|
|
889
|
+
},
|
|
890
|
+
"reworkCycles": {
|
|
891
|
+
"type": "integer",
|
|
892
|
+
"minimum": 0
|
|
893
|
+
}
|
|
811
894
|
}
|
|
812
895
|
}
|
|
813
896
|
}
|
|
@@ -817,13 +900,26 @@
|
|
|
817
900
|
"additionalProperties": true,
|
|
818
901
|
"description": "Totals from diff-risk-score.mjs, persisted by Phase 4 Step 1.75 so Phase 6 (PR risk section), Phase 7 and run-metrics.mjs read the same numbers the review scope decision used.",
|
|
819
902
|
"properties": {
|
|
820
|
-
"files": {
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
903
|
+
"files": {
|
|
904
|
+
"type": "integer",
|
|
905
|
+
"minimum": 0
|
|
906
|
+
},
|
|
907
|
+
"loc_added": {
|
|
908
|
+
"type": "integer",
|
|
909
|
+
"minimum": 0
|
|
910
|
+
},
|
|
911
|
+
"loc_removed": {
|
|
912
|
+
"type": "integer",
|
|
913
|
+
"minimum": 0
|
|
914
|
+
},
|
|
915
|
+
"max_score": {
|
|
916
|
+
"type": "number"
|
|
917
|
+
},
|
|
824
918
|
"signals": {
|
|
825
919
|
"type": "array",
|
|
826
|
-
"items": {
|
|
920
|
+
"items": {
|
|
921
|
+
"type": "string"
|
|
922
|
+
},
|
|
827
923
|
"description": "Distinct signal names seen across files (security_path, migration, public_api, no_test_change, test_lines_removed, ...)."
|
|
828
924
|
}
|
|
829
925
|
}
|
|
@@ -1001,6 +1097,137 @@
|
|
|
1001
1097
|
"artifactsPath": {
|
|
1002
1098
|
"type": ["string", "null"],
|
|
1003
1099
|
"description": "Directory the worktree's artefacts were salvaged into before removal (agent-state, phase-tracker, triage-output, .pipeline/, build+test logs, review diff). Phase 7 and :resume read from here when worktreePath is gone."
|
|
1100
|
+
},
|
|
1101
|
+
"visualEvidence": {
|
|
1102
|
+
"type": ["object", "null"],
|
|
1103
|
+
"additionalProperties": false,
|
|
1104
|
+
"description": "Before/after screenshots and the UI flow video for a UI change, attached to the Jira issue and rendered in the Phase 7 comment and the PR body. Required decided mechanically from taskType plus the changed-file list. Contract: multi-agent-refs/features/visual-evidence.md.",
|
|
1105
|
+
"properties": {
|
|
1106
|
+
"required": {
|
|
1107
|
+
"type": "boolean"
|
|
1108
|
+
},
|
|
1109
|
+
"requiredBy": {
|
|
1110
|
+
"type": "string",
|
|
1111
|
+
"description": "Which rule made it required, e.g. 'bugfix + ui-file-changed'."
|
|
1112
|
+
},
|
|
1113
|
+
"platform": {
|
|
1114
|
+
"type": "string",
|
|
1115
|
+
"enum": ["ios", "android", "web", "other"]
|
|
1116
|
+
},
|
|
1117
|
+
"before": {
|
|
1118
|
+
"type": "array",
|
|
1119
|
+
"items": {
|
|
1120
|
+
"type": "object",
|
|
1121
|
+
"additionalProperties": true,
|
|
1122
|
+
"properties": {
|
|
1123
|
+
"file": {
|
|
1124
|
+
"type": "string",
|
|
1125
|
+
"description": "Local path under $WORKTREE/.pipeline/evidence/."
|
|
1126
|
+
},
|
|
1127
|
+
"source": {
|
|
1128
|
+
"type": "string",
|
|
1129
|
+
"enum": ["ticket", "capture"]
|
|
1130
|
+
},
|
|
1131
|
+
"capturedAt": {
|
|
1132
|
+
"type": "string",
|
|
1133
|
+
"description": "Phase that produced it, e.g. 'phase-3'."
|
|
1134
|
+
},
|
|
1135
|
+
"jiraFilename": {
|
|
1136
|
+
"type": "string",
|
|
1137
|
+
"description": "Attachment filename the Jira comment references."
|
|
1138
|
+
},
|
|
1139
|
+
"url": {
|
|
1140
|
+
"type": "string",
|
|
1141
|
+
"description": "Jira attachment content URL."
|
|
1142
|
+
}
|
|
1143
|
+
}
|
|
1144
|
+
},
|
|
1145
|
+
"description": "Images taken from the issue's own attachments. The pipeline never rebuilds the pre-fix state to photograph it; no ticket image means no before, recorded as a gap."
|
|
1146
|
+
},
|
|
1147
|
+
"after": {
|
|
1148
|
+
"type": "array",
|
|
1149
|
+
"items": {
|
|
1150
|
+
"type": "object",
|
|
1151
|
+
"additionalProperties": true,
|
|
1152
|
+
"properties": {
|
|
1153
|
+
"file": {
|
|
1154
|
+
"type": "string",
|
|
1155
|
+
"description": "Local path under $WORKTREE/.pipeline/evidence/."
|
|
1156
|
+
},
|
|
1157
|
+
"source": {
|
|
1158
|
+
"type": "string",
|
|
1159
|
+
"enum": ["ticket", "capture"]
|
|
1160
|
+
},
|
|
1161
|
+
"capturedAt": {
|
|
1162
|
+
"type": "string",
|
|
1163
|
+
"description": "Phase that produced it, e.g. 'phase-3'."
|
|
1164
|
+
},
|
|
1165
|
+
"jiraFilename": {
|
|
1166
|
+
"type": "string",
|
|
1167
|
+
"description": "Attachment filename the Jira comment references."
|
|
1168
|
+
},
|
|
1169
|
+
"url": {
|
|
1170
|
+
"type": "string",
|
|
1171
|
+
"description": "Jira attachment content URL."
|
|
1172
|
+
}
|
|
1173
|
+
}
|
|
1174
|
+
},
|
|
1175
|
+
"description": "Captured in Phase 3 after the build+test gate, because Phase 5 is dropped by every autopilot and --local entry."
|
|
1176
|
+
},
|
|
1177
|
+
"videoTier": {
|
|
1178
|
+
"type": ["integer", "null"],
|
|
1179
|
+
"enum": [1, 2, 3, null],
|
|
1180
|
+
"description": "1 = the repo's own UI test target drove the flow, 2 = MCP-driven flow, 3 = no runnable build."
|
|
1181
|
+
},
|
|
1182
|
+
"video": {
|
|
1183
|
+
"type": "object",
|
|
1184
|
+
"additionalProperties": true,
|
|
1185
|
+
"properties": {
|
|
1186
|
+
"file": {
|
|
1187
|
+
"type": "string",
|
|
1188
|
+
"description": "Local path under $WORKTREE/.pipeline/evidence/."
|
|
1189
|
+
},
|
|
1190
|
+
"source": {
|
|
1191
|
+
"type": "string",
|
|
1192
|
+
"enum": ["ticket", "capture"]
|
|
1193
|
+
},
|
|
1194
|
+
"capturedAt": {
|
|
1195
|
+
"type": "string",
|
|
1196
|
+
"description": "Phase that produced it, e.g. 'phase-3'."
|
|
1197
|
+
},
|
|
1198
|
+
"jiraFilename": {
|
|
1199
|
+
"type": "string",
|
|
1200
|
+
"description": "Attachment filename the Jira comment references."
|
|
1201
|
+
},
|
|
1202
|
+
"url": {
|
|
1203
|
+
"type": "string",
|
|
1204
|
+
"description": "Jira attachment content URL."
|
|
1205
|
+
},
|
|
1206
|
+
"seconds": {
|
|
1207
|
+
"type": "number",
|
|
1208
|
+
"description": "Recorded duration; capped at 60."
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
},
|
|
1212
|
+
"gaps": {
|
|
1213
|
+
"type": "array",
|
|
1214
|
+
"description": "Every artefact that is required and absent, with its reason. A recorded reason satisfies the Phase 6 blocker; silence does not.",
|
|
1215
|
+
"items": {
|
|
1216
|
+
"type": "object",
|
|
1217
|
+
"additionalProperties": false,
|
|
1218
|
+
"properties": {
|
|
1219
|
+
"what": {
|
|
1220
|
+
"type": "string",
|
|
1221
|
+
"enum": ["before", "after", "video"]
|
|
1222
|
+
},
|
|
1223
|
+
"reason": {
|
|
1224
|
+
"type": "string"
|
|
1225
|
+
}
|
|
1226
|
+
},
|
|
1227
|
+
"required": ["what", "reason"]
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
}
|
|
1004
1231
|
}
|
|
1005
1232
|
}
|
|
1006
1233
|
}
|
|
@@ -365,7 +365,7 @@
|
|
|
365
365
|
},
|
|
366
366
|
"multiRepoIntegrationHosts": {
|
|
367
367
|
"type": "array",
|
|
368
|
-
"description": "v5.6.0+. Learn-once registry of host projects that build together with a multi-repo combo (codegen producer
|
|
368
|
+
"description": "v5.6.0+. Learn-once registry of host projects that build together with a multi-repo combo (codegen producer → consumer + host integration project). Pipeline checks this registry in Phase 6 before commit; on match, auto-runs the host build. On miss for a ≥2-repo task, prompts the user once and persists the answer. See refs/multi-repo-integration-build.md for the full contract.",
|
|
369
369
|
"items": {
|
|
370
370
|
"type": "object",
|
|
371
371
|
"additionalProperties": false,
|
|
@@ -653,12 +653,12 @@
|
|
|
653
653
|
"reportChannels": {
|
|
654
654
|
"type": "object",
|
|
655
655
|
"additionalProperties": false,
|
|
656
|
-
"description": "v5.7+ - Phase 7 / /multi-agent:channels kanal
|
|
656
|
+
"description": "v5.7+ - Phase 7 / /multi-agent:channels kanal seçimi default'ları. Multi-select menüde tick'li gelecek kanallar. Her kanal bağımsız boolean. Autopilot Phase 7'de ALWAYS pauses (30-min timeout) - bu değerler sadece menünün önceden seçili halini belirler.",
|
|
657
657
|
"properties": {
|
|
658
658
|
"pr": {
|
|
659
659
|
"type": "boolean",
|
|
660
660
|
"default": true,
|
|
661
|
-
"description": "PR description update (replace/append). Default ON - en
|
|
661
|
+
"description": "PR description update (replace/append). Default ON - en yaygın kanal."
|
|
662
662
|
},
|
|
663
663
|
"jira": {
|
|
664
664
|
"type": "boolean",
|
|
@@ -668,12 +668,12 @@
|
|
|
668
668
|
"confluence": {
|
|
669
669
|
"type": "boolean",
|
|
670
670
|
"default": false,
|
|
671
|
-
"description": "Confluence page creation. Default OFF - bir kez parent page
|
|
671
|
+
"description": "Confluence page creation. Default OFF - bir kez parent page seçince LRU'dan öner."
|
|
672
672
|
},
|
|
673
673
|
"wiki": {
|
|
674
674
|
"type": "boolean",
|
|
675
675
|
"default": false,
|
|
676
|
-
"description": "Component wiki pages (Case A scope multi-select). Default OFF - taskType=component + figmaConfig.wiki.enabled gerekli, yoksa
|
|
676
|
+
"description": "Component wiki pages (Case A scope multi-select). Default OFF - taskType=component + figmaConfig.wiki.enabled gerekli, yoksa menüde greyed out."
|
|
677
677
|
}
|
|
678
678
|
},
|
|
679
679
|
"default": {
|
|
@@ -686,32 +686,32 @@
|
|
|
686
686
|
"reportContent": {
|
|
687
687
|
"type": "object",
|
|
688
688
|
"additionalProperties": false,
|
|
689
|
-
"description": "v5.7+ - Phase 7 / /multi-agent:channels
|
|
689
|
+
"description": "v5.7+ - Phase 7 / /multi-agent:channels içerik seçimi default'ları. Multi-select menüde tick'li gelecek content source'ları.",
|
|
690
690
|
"properties": {
|
|
691
691
|
"normalAnalysis": {
|
|
692
692
|
"type": "boolean",
|
|
693
693
|
"default": true,
|
|
694
|
-
"description": "Phase 1+2+4 pipeline log'undan impact summary + risks + architectural decisions (
|
|
694
|
+
"description": "Phase 1+2+4 pipeline log'undan impact summary + risks + architectural decisions (yüksek seviye). Greyed out post-hoc çağrıda pipeline log yoksa."
|
|
695
695
|
},
|
|
696
696
|
"technicalAnalysis": {
|
|
697
697
|
"type": "boolean",
|
|
698
698
|
"default": false,
|
|
699
|
-
"description": "Changes (
|
|
699
|
+
"description": "Changes (değişen dosyalar gruplanıp ne/neden), Architecture (structural decisions), Dependencies (yeni import/framework/paket). PR body'deki 'Technical Details' bölümünün özeti; user'ın kanal seçimi PR içermediği durumlarda (ör. sadece Jira/Confluence) teknik içerik aktarmak istiyorsa devreye girer. Source: Phase 2 planning + Phase 3 dev log + PR diff stat."
|
|
700
700
|
},
|
|
701
701
|
"testScenarios": {
|
|
702
702
|
"type": "boolean",
|
|
703
703
|
"default": true,
|
|
704
|
-
"description": "Precondition / steps / expected tablosu (4-8
|
|
704
|
+
"description": "Precondition / steps / expected tablosu (4-8 satır, user perspective). Pipeline log source."
|
|
705
705
|
},
|
|
706
706
|
"autoDiff": {
|
|
707
707
|
"type": "boolean",
|
|
708
708
|
"default": false,
|
|
709
|
-
"description": "PR diff'ten auto-generate
|
|
709
|
+
"description": "PR diff'ten auto-generate özet (eski enrich behavior - root cause / solution / changed files / test scenarios). PR linked değilse greyed out."
|
|
710
710
|
},
|
|
711
711
|
"manualNote": {
|
|
712
712
|
"type": "boolean",
|
|
713
713
|
"default": false,
|
|
714
|
-
"description": "Serbest metin paragraf (--message / --message-file). Her durumda
|
|
714
|
+
"description": "Serbest metin paragraf (--message / --message-file). Her durumda seçilebilir."
|
|
715
715
|
},
|
|
716
716
|
"costSummary": {
|
|
717
717
|
"type": "boolean",
|
|
@@ -721,7 +721,7 @@
|
|
|
721
721
|
"workSummary": {
|
|
722
722
|
"type": "boolean",
|
|
723
723
|
"default": false,
|
|
724
|
-
"description": "v7.1.0+ - Executive 'Work Done' summary block. Distills the whole pipeline run into a single-screen section: task + branch + base + PR number, scope delivered (
|
|
724
|
+
"description": "v7.1.0+ - Executive 'Work Done' summary block. Distills the whole pipeline run into a single-screen section: task + branch + base + PR number, scope delivered (✅/⏳ per Phase 2 task), changed files with +/- counts (capped at 20 rows), review outcome (accepted/deferred/rejected counts + approved flag), and a one-line phase tick strip (0 Init ✅ · 1 Analysis ✅ · ...). Source: `agent-state.json` + `phase-tracker.json` + `git diff --numstat` between `baseBranch`...HEAD. Consumed by `render-work-summary.sh`. Greyed out if no state file exists for the task. Opt-in - off by default so baseline PR body stays unchanged."
|
|
725
725
|
}
|
|
726
726
|
},
|
|
727
727
|
"default": {
|
|
@@ -739,7 +739,7 @@
|
|
|
739
739
|
"default": 1800,
|
|
740
740
|
"minimum": 60,
|
|
741
741
|
"maximum": 7200,
|
|
742
|
-
"description": "v5.7+ - Phase 7'de autopilot always-pause
|
|
742
|
+
"description": "v5.7+ - Phase 7'de autopilot always-pause menüsünde kullanıcı cevap vermezse session'ı sonlandırma süresi (saniye). Default 1800 (30 dk). Timeout'ta external delivery aborted, internal capture (agent-log, telemetry, knowledge) yine çalışır, session /multi-agent:resume ile devam ettirilebilir."
|
|
743
743
|
},
|
|
744
744
|
"wikiScope": {
|
|
745
745
|
"type": "array",
|
|
@@ -748,7 +748,7 @@
|
|
|
748
748
|
"enum": ["main", "ios", "screenshots", "index"]
|
|
749
749
|
},
|
|
750
750
|
"default": ["main", "ios", "screenshots", "index"],
|
|
751
|
-
"description": "v5.7+ - Wiki Case A scope multi-select default'u. Component wiki dispatch'inde hangi artifact'lar
|
|
751
|
+
"description": "v5.7+ - Wiki Case A scope multi-select default'u. Component wiki dispatch'inde hangi artifact'lar yazılacak: main (ana component sayfası), ios (iOS sub-page), screenshots (assets/ klasörü), index (_Sidebar.md + ComponentImplementationStatus.md). Legacy wikiDefault=true → [main,ios,screenshots,index] migration; wikiDefault=false → [] (empty array = Wiki adapter Case B menüsüne düşer)."
|
|
752
752
|
},
|
|
753
753
|
"autoJiraFromGithubIssue": {
|
|
754
754
|
"type": "string",
|
|
@@ -831,7 +831,7 @@
|
|
|
831
831
|
"reviewDisagreementRound": {
|
|
832
832
|
"type": "boolean",
|
|
833
833
|
"default": false,
|
|
834
|
-
"description": "v6.1.0+ - Phase 4 Step 2.5 rebuttal round. When reviewers disagree (mixed blocker/approved verdict), each reviewer is re-prompted with the others' opposing arguments for one additional round before triage. Lifts signal quality on ambiguous findings at ~1
|
|
834
|
+
"description": "v6.1.0+ - Phase 4 Step 2.5 rebuttal round. When reviewers disagree (mixed blocker/approved verdict), each reviewer is re-prompted with the others' opposing arguments for one additional round before triage. Lifts signal quality on ambiguous findings at ~1× Step 2 token cost. Off by default - flip for security-critical or release-branch reviews."
|
|
835
835
|
},
|
|
836
836
|
"analysisProfiles": {
|
|
837
837
|
"type": "array",
|
|
@@ -1047,7 +1047,7 @@
|
|
|
1047
1047
|
"minimum": 0,
|
|
1048
1048
|
"maximum": 10,
|
|
1049
1049
|
"default": 6,
|
|
1050
|
-
"description": "Clarity threshold. Score
|
|
1050
|
+
"description": "Clarity threshold. Score ≥ threshold → proceed silently. Below → questions fire. 6 is the borderline 'the what is clear but the how is fuzzy' line."
|
|
1051
1051
|
},
|
|
1052
1052
|
"maxQuestions": {
|
|
1053
1053
|
"type": "integer",
|
|
@@ -1215,7 +1215,7 @@
|
|
|
1215
1215
|
"minimum": 30,
|
|
1216
1216
|
"maximum": 86400,
|
|
1217
1217
|
"default": 300,
|
|
1218
|
-
"description": "Polling interval for --watch loop. Clamped to
|
|
1218
|
+
"description": "Polling interval for --watch loop. Clamped to ≥30s to stay polite with GitHub rate limits."
|
|
1219
1219
|
},
|
|
1220
1220
|
"labelFilter": {
|
|
1221
1221
|
"type": "string",
|
|
@@ -1291,7 +1291,7 @@
|
|
|
1291
1291
|
"devCritic": {
|
|
1292
1292
|
"type": "object",
|
|
1293
1293
|
"additionalProperties": false,
|
|
1294
|
-
"description": "v8.6+ - Phase 3.5 evaluator-optimizer. After the Dev generator's last edit and BEFORE Phase 4 reviewers, dispatch agents/dev-critic.md (Sonnet by default) to run deterministic gates (build/lint/test/secrets) + the platform checklist (rules/*.md). Max 2 critic iterations, then escalate. Catches gate failures and checklist violations that would otherwise burn 2-3 Phase 4 reviewer calls + Opus triage. Off by default - introduces 1
|
|
1294
|
+
"description": "v8.6+ - Phase 3.5 evaluator-optimizer. After the Dev generator's last edit and BEFORE Phase 4 reviewers, dispatch agents/dev-critic.md (Sonnet by default) to run deterministic gates (build/lint/test/secrets) + the platform checklist (rules/*.md). Max 2 critic iterations, then escalate. Catches gate failures and checklist violations that would otherwise burn 2-3 Phase 4 reviewer calls + Opus triage. Off by default - introduces 1× Sonnet call per Dev iteration; flip on for feature work, security-touching paths, or multi-file refactors. Source: Anthropic 'Building Effective Agents' (Dec 2024) evaluator-optimizer pattern.",
|
|
1295
1295
|
"properties": {
|
|
1296
1296
|
"enabled": {
|
|
1297
1297
|
"type": "boolean",
|
|
@@ -1561,7 +1561,7 @@
|
|
|
1561
1561
|
"autopilotSafetyGate": {
|
|
1562
1562
|
"type": "boolean",
|
|
1563
1563
|
"default": true,
|
|
1564
|
-
"description": "v7.0.0+ - Phase 2 autopilot safety classifier. Before autopilot mode consumes the user's approval skip, run `classify-plan-safety.mjs` over the approved plan. If the heuristic score
|
|
1564
|
+
"description": "v7.0.0+ - Phase 2 autopilot safety classifier. Before autopilot mode consumes the user's approval skip, run `classify-plan-safety.mjs` over the approved plan. If the heuristic score ≥ 50 (e.g. >15 files touched, or security-path touch, or delete-without-test, or schema migration) inject a ONE-TIME pause asking for explicit manual approval - even in autopilot. Default ON because the risk of skipping this gate is asymmetric: a pause on a high-blast-radius plan costs seconds; a silent auto-merge of a bad one costs hours of rollback. Flip to `false` only for tightly-scoped autopilot workflows (e.g. batch figma component iteration) where the task class is known-safe."
|
|
1565
1565
|
},
|
|
1566
1566
|
"dynamicSkillLoading": {
|
|
1567
1567
|
"type": "boolean",
|
|
@@ -1753,6 +1753,32 @@
|
|
|
1753
1753
|
"description": "When true, resume-local auto-fixes triage-accepted blocking/important findings and re-reviews instead of asking. Equivalent to passing `autopilot` on every run. Default false: resume-local operates on work the user wrote by hand, so silently rewriting it is the surprising option."
|
|
1754
1754
|
}
|
|
1755
1755
|
}
|
|
1756
|
+
},
|
|
1757
|
+
"visualEvidence": {
|
|
1758
|
+
"type": "object",
|
|
1759
|
+
"additionalProperties": false,
|
|
1760
|
+
"description": "v16.24+ - Before/after screenshots and the UI flow video that a UI change carries into its Jira comment and its PR body. The artefacts are Jira attachments, so the ceiling is an instance setting rather than a constant. Contract: multi-agent-refs/features/visual-evidence.md.",
|
|
1761
|
+
"properties": {
|
|
1762
|
+
"enabled": {
|
|
1763
|
+
"type": "boolean",
|
|
1764
|
+
"default": true,
|
|
1765
|
+
"description": "Off disables capture, upload and both render sections. The Phase 6 blocker goes with it."
|
|
1766
|
+
},
|
|
1767
|
+
"maxAttachmentMb": {
|
|
1768
|
+
"type": "integer",
|
|
1769
|
+
"minimum": 1,
|
|
1770
|
+
"maximum": 200,
|
|
1771
|
+
"default": 10,
|
|
1772
|
+
"description": "Jira's per-attachment ceiling for this instance. An artefact over it is re-encoded at lower quality (720p video, JPEG q80) and, if still over, replaced by a four-frame contact sheet. Quality is negotiable; dropping the artefact is not."
|
|
1773
|
+
},
|
|
1774
|
+
"maxVideoSeconds": {
|
|
1775
|
+
"type": "integer",
|
|
1776
|
+
"minimum": 5,
|
|
1777
|
+
"maximum": 300,
|
|
1778
|
+
"default": 60,
|
|
1779
|
+
"description": "Recording cap. A flow needing longer is a debugging session, not a review artefact."
|
|
1780
|
+
}
|
|
1781
|
+
}
|
|
1756
1782
|
}
|
|
1757
1783
|
}
|
|
1758
1784
|
},
|