lee-spec-kit 0.6.41 → 0.6.42
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/index.js +53 -22
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -478,7 +478,7 @@ var koContext = {
|
|
|
478
478
|
"context.commandDetail.codeReviewPushFix": "({scope}) \uB9AC\uBDF0 \uC218\uC815 \uCEE4\uBC0B\uC744 push\uD558\uC138\uC694",
|
|
479
479
|
"context.commandDetail.prePrReviewRun": "({scope}) \uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent)\uB85C PR \uC804 \uB9AC\uBDF0\uB97C \uC2E4\uD589\uD574 `review-trace.json`\uC744 \uC900\uBE44\uD558\uC138\uC694",
|
|
480
480
|
"context.commandDetail.prePrReviewRecord": "({scope}) Pre-PR \uB9AC\uBDF0 evidence\uB97C decisions.md\uC640 tasks.md\uC5D0 \uAE30\uB85D\uD558\uC138\uC694",
|
|
481
|
-
"context.commandDetail.codeReviewRun": "({scope}) \uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent)\uB85C
|
|
481
|
+
"context.commandDetail.codeReviewRun": "({scope}) \uB9AC\uBDF0 \uCF54\uBA58\uD2B8\uB97C \uD655\uC778\uD558\uACE0, \uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent)\uB85C \uC218\uC815 \uC791\uC5C5/evidence \uC815\uB9AC\uB97C \uC9C4\uD589\uD558\uC138\uC694",
|
|
482
482
|
"context.actionSummary.runDocsCommand": "\uBB38\uC11C \uC791\uC5C5 \uBA85\uB839\uC744 \uC2E4\uD589\uD558\uC138\uC694",
|
|
483
483
|
"context.actionSummary.runProjectCommand": "\uD504\uB85C\uC81D\uD2B8 \uC791\uC5C5 \uBA85\uB839\uC744 \uC2E4\uD589\uD558\uC138\uC694",
|
|
484
484
|
"context.actionDetail.featureFolder": "Feature \uD3F4\uB354\uC640 \uAE30\uBCF8 \uBB38\uC11C \uACE8\uACA9\uC744 \uC900\uBE44\uD558\uC138\uC694",
|
|
@@ -496,12 +496,12 @@ var koContext = {
|
|
|
496
496
|
"context.actionDetail.issueCreatePrepareFromDoc": "issue.md \uCD08\uC548\uC744 \uBCF4\uC644\uD558\uACE0 \uC0C1\uD0DC\uB97C Ready\uB85C \uC124\uC815\uD558\uC138\uC694",
|
|
497
497
|
"context.actionDetail.issueCreateFromDoc": "Ready \uC0C1\uD0DC issue.md\uB85C \uC774\uC288\uB97C \uC0DD\uC131\uD558\uACE0 \uBC88\uD638\uB97C \uB3D9\uAE30\uD654\uD558\uC138\uC694",
|
|
498
498
|
"context.actionDetail.taskExecute": "\uD604\uC7AC \uD0DC\uC2A4\uD06C\uB97C \uC9C4\uD589\uD558\uC138\uC694",
|
|
499
|
-
"context.actionDetail.taskExecuteRun": "\uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent) \uC791\uC5C5 handoff\uB97C \uC900\uBE44\uD558\uACE0 \uD0DC\uC2A4\uD06C\uB97C \uC2DC\uC791\uD558\uC138\uC694. (TODO\uBA74 DOING\uC73C\uB85C \uBCC0\uACBD)",
|
|
500
|
-
"context.actionDetail.taskExecuteContinue": "\uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent) \uC791\uC5C5 handoff\uB97C \uC900\uBE44\uD574 \uC9C4\uD589 \uC911\uC778 \uD0DC\uC2A4\uD06C\uB97C \uC774\uC5B4\uAC00\uC138\uC694",
|
|
499
|
+
"context.actionDetail.taskExecuteRun": "\uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent) \uC791\uC5C5 handoff\uB97C \uC900\uBE44\uD558\uACE0 \uD0DC\uC2A4\uD06C\uB97C \uC2DC\uC791\uD558\uC138\uC694: {task}. (TODO\uBA74 DOING\uC73C\uB85C \uBCC0\uACBD)",
|
|
500
|
+
"context.actionDetail.taskExecuteContinue": "\uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent) \uC791\uC5C5 handoff\uB97C \uC900\uBE44\uD574 \uC9C4\uD589 \uC911\uC778 \uD0DC\uC2A4\uD06C\uB97C \uC774\uC5B4\uAC00\uC138\uC694: {task}",
|
|
501
501
|
"context.actionDetail.reviewFixCommit": "\uD574\uACB0\uD55C \uB9AC\uBDF0 \uD56D\uBAA9 \uC694\uC57D\uC73C\uB85C \uB9AC\uBDF0 \uC218\uC815 \uCEE4\uBC0B\uC744 \uB9CC\uB4DC\uC138\uC694",
|
|
502
502
|
"context.actionDetail.prePrReviewRun": "\uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent)\uB85C PR \uC804 \uB9AC\uBDF0\uB97C \uC2E4\uD589\uD574 `review-trace.json`\uC744 \uC900\uBE44\uD558\uC138\uC694",
|
|
503
503
|
"context.actionDetail.prePrReviewRecord": "PR \uC804 \uB9AC\uBDF0 evidence\uB97C decisions.md\uC640 tasks.md\uC5D0 \uAE30\uB85D\uD558\uC138\uC694",
|
|
504
|
-
"context.actionDetail.codeReviewRun": "\uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent)\uB85C
|
|
504
|
+
"context.actionDetail.codeReviewRun": "\uB9AC\uBDF0 \uCF54\uBA58\uD2B8\uB97C \uD655\uC778\uD558\uACE0, \uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8(sub-agent)\uB85C \uC218\uC815 \uC791\uC5C5/evidence \uC815\uB9AC\uB97C \uC9C4\uD589\uD558\uC138\uC694",
|
|
505
505
|
"context.actionDetail.prCreate": "PR\uC744 \uC0DD\uC131\uD558\uACE0 tasks \uAE30.md\uC758 PR \uC815\uBCF4\uB97C \uB9DE\uCD94\uC138\uC694",
|
|
506
506
|
"context.actionDetail.prCreateRequiredSequence": "PR 2\uB2E8\uACC4(\uCD08\uC548/\uC2B9\uC778 \uD6C4 \uC0DD\uC131/\uB3D9\uAE30\uD654)\uB97C \uC21C\uC11C\uB300\uB85C \uC644\uB8CC\uD558\uC138\uC694",
|
|
507
507
|
"context.actionDetail.prCreatePrepareFromDoc": "pr.md \uCD08\uC548\uC744 \uBCF4\uC644\uD558\uACE0 \uC0C1\uD0DC\uB97C Ready\uB85C \uC124\uC815\uD558\uC138\uC694",
|
|
@@ -1030,7 +1030,7 @@ var enContext = {
|
|
|
1030
1030
|
"context.commandDetail.codeReviewPushFix": "({scope}) push review-fix commits",
|
|
1031
1031
|
"context.commandDetail.prePrReviewRun": "({scope}) run the pre-PR review via a helper agent/sub-agent and prepare `review-trace.json`",
|
|
1032
1032
|
"context.commandDetail.prePrReviewRecord": "({scope}) record pre-PR review evidence into decisions.md + tasks.md",
|
|
1033
|
-
"context.commandDetail.codeReviewRun": "({scope})
|
|
1033
|
+
"context.commandDetail.codeReviewRun": "({scope}) check PR review comments, then use a helper agent/sub-agent for the follow-up fixes and evidence summary",
|
|
1034
1034
|
"context.actionSummary.runDocsCommand": "Run docs command",
|
|
1035
1035
|
"context.actionSummary.runProjectCommand": "Run project command",
|
|
1036
1036
|
"context.actionDetail.featureFolder": "Prepare feature folder and baseline docs",
|
|
@@ -1048,12 +1048,12 @@ var enContext = {
|
|
|
1048
1048
|
"context.actionDetail.issueCreatePrepareFromDoc": "Refine issue.md draft and set Status to Ready",
|
|
1049
1049
|
"context.actionDetail.issueCreateFromDoc": "Create GitHub Issue from ready issue.md and sync Issue",
|
|
1050
1050
|
"context.actionDetail.taskExecute": "Proceed with the current task",
|
|
1051
|
-
"context.actionDetail.taskExecuteRun": "Prepare helper agent/sub-agent task handoff and start the task. (TODO becomes DOING)",
|
|
1052
|
-
"context.actionDetail.taskExecuteContinue": "Prepare helper agent/sub-agent handoff and continue the in-progress task",
|
|
1051
|
+
"context.actionDetail.taskExecuteRun": "Prepare helper agent/sub-agent task handoff and start the task: {task}. (TODO becomes DOING)",
|
|
1052
|
+
"context.actionDetail.taskExecuteContinue": "Prepare helper agent/sub-agent handoff and continue the in-progress task: {task}",
|
|
1053
1053
|
"context.actionDetail.reviewFixCommit": "Create a review-fix commit with resolved feedback summary",
|
|
1054
1054
|
"context.actionDetail.prePrReviewRun": "Run the pre-PR review via a helper agent/sub-agent and prepare `review-trace.json`",
|
|
1055
1055
|
"context.actionDetail.prePrReviewRecord": "Record pre-PR review evidence into decisions.md and tasks.md",
|
|
1056
|
-
"context.actionDetail.codeReviewRun": "
|
|
1056
|
+
"context.actionDetail.codeReviewRun": "Check PR review comments, then use a helper agent/sub-agent for the follow-up fixes and evidence summary",
|
|
1057
1057
|
"context.actionDetail.prCreate": "Create PR and sync PR fields in tasks.md",
|
|
1058
1058
|
"context.actionDetail.prCreateRequiredSequence": "Complete PR 2-step flow: prepare draft + OK, then create and sync",
|
|
1059
1059
|
"context.actionDetail.prCreatePrepareFromDoc": "Refine pr.md draft and set Status to Ready",
|
|
@@ -3769,6 +3769,14 @@ function resolveProjectCommitTopic(feature) {
|
|
|
3769
3769
|
const topic = withoutTaskId || normalizeCommitTopicText(feature.folderName);
|
|
3770
3770
|
return toShellSafeCommitTopic(topic);
|
|
3771
3771
|
}
|
|
3772
|
+
function resolveTaskUiLabel(task) {
|
|
3773
|
+
if (!task) return "T-unknown task";
|
|
3774
|
+
const id = task.id?.trim();
|
|
3775
|
+
const title = task.title.trim();
|
|
3776
|
+
const normalizedTitle = id ? title.replace(new RegExp(`^${id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}\\s+`), "") : title;
|
|
3777
|
+
if (id) return `${id} - ${normalizedTitle || title}`;
|
|
3778
|
+
return title || "T-unknown task";
|
|
3779
|
+
}
|
|
3772
3780
|
function getReviewFixCommitGuidance(feature, lang, options) {
|
|
3773
3781
|
const prePr = !!options?.prePr;
|
|
3774
3782
|
if (prePr) {
|
|
@@ -4066,6 +4074,9 @@ function getStepDefinitions(ctx) {
|
|
|
4066
4074
|
requiresUserCheck: true,
|
|
4067
4075
|
taskExecutePhase: "complete",
|
|
4068
4076
|
uiDetailKey: "context.actionDetail.taskExecuteContinue",
|
|
4077
|
+
uiDetailParams: {
|
|
4078
|
+
task: resolveTaskUiLabel(f.activeTask)
|
|
4079
|
+
},
|
|
4069
4080
|
scope: "docs",
|
|
4070
4081
|
cwd: f.git.docsGitCwd,
|
|
4071
4082
|
cmd: buildSelfCliCommand(
|
|
@@ -4188,6 +4199,9 @@ ${tr(lang, "messages", "taskCommitGateWarnProceed", {
|
|
|
4188
4199
|
requiresUserCheck: true,
|
|
4189
4200
|
taskExecutePhase: "start",
|
|
4190
4201
|
uiDetailKey: "context.actionDetail.taskExecuteRun",
|
|
4202
|
+
uiDetailParams: {
|
|
4203
|
+
task: resolveTaskUiLabel(f.nextTodoTask)
|
|
4204
|
+
},
|
|
4191
4205
|
scope: "docs",
|
|
4192
4206
|
cwd: f.git.docsGitCwd,
|
|
4193
4207
|
cmd: buildSelfCliCommand(
|
|
@@ -4348,7 +4362,7 @@ ${tr(lang, "messages", "prePrReviewDecisionReconfirm", {
|
|
|
4348
4362
|
const isCodeReviewNeedEvidence = (f) => isCodeReviewCurrent(f) && f.pr.status === "Review" && workflowPolicy.requireReview && !isCodeReviewNeedEvidenceField(f) && !f.prReview.evidenceProvided;
|
|
4349
4363
|
const isCodeReviewNeedDecisionField = (f) => isCodeReviewCurrent(f) && f.pr.status === "Review" && workflowPolicy.requireReview && !isCodeReviewNeedEvidenceField(f) && f.prReview.evidenceProvided && !f.docs.prReviewDecisionFieldExists;
|
|
4350
4364
|
const isCodeReviewNeedDecision = (f) => isCodeReviewCurrent(f) && f.pr.status === "Review" && workflowPolicy.requireReview && !isCodeReviewNeedEvidenceField(f) && f.prReview.evidenceProvided && !isCodeReviewNeedDecisionField(f) && !f.prReview.decisionProvided;
|
|
4351
|
-
const isCodeReviewRun = (f) => isCodeReviewCurrent(f) && f.pr.status === "Review" && workflowPolicy.requireReview && !isCodeReviewNeedEvidenceField(f) && !f.prReview.evidenceProvided && !f.prReview.decisionProvided;
|
|
4365
|
+
const isCodeReviewRun = (f) => isCodeReviewCurrent(f) && f.pr.status === "Review" && workflowPolicy.requireReview && (f.git.projectBranchAhead || 0) === 0 && !isCodeReviewNeedEvidenceField(f) && !f.prReview.evidenceProvided && !f.prReview.decisionProvided;
|
|
4352
4366
|
const isCodeReviewFinalize = (f) => isCodeReviewCurrent(f) && !isCodeReviewSyncApproved(f) && (!workflowPolicy.requireReview || f.pr.status === "Review" && !isCodeReviewNeedEvidenceField(f) && !isCodeReviewNeedEvidence(f) && !isCodeReviewNeedDecisionField(f) && !isCodeReviewNeedDecision(f) && f.prReview.evidenceProvided && f.prReview.decisionProvided);
|
|
4353
4367
|
const isCodeReviewRequestReview = (f) => isCodeReviewCurrent(f) && !!f.pr.status && f.pr.status !== "Review";
|
|
4354
4368
|
const getCodeReviewRunActions = (f) => [
|
|
@@ -8130,11 +8144,11 @@ function annotateActions(actions) {
|
|
|
8130
8144
|
}
|
|
8131
8145
|
function getActionSummary(action, lang) {
|
|
8132
8146
|
if (action.uiSummaryKey) {
|
|
8133
|
-
const localized = tr(lang, "cli", action.uiSummaryKey);
|
|
8147
|
+
const localized = tr(lang, "cli", action.uiSummaryKey, action.uiDetailParams);
|
|
8134
8148
|
if (localized !== `cli.${action.uiSummaryKey}`) return localized;
|
|
8135
8149
|
}
|
|
8136
8150
|
if (action.uiDetailKey) {
|
|
8137
|
-
const localized = tr(lang, "cli", action.uiDetailKey);
|
|
8151
|
+
const localized = tr(lang, "cli", action.uiDetailKey, action.uiDetailParams);
|
|
8138
8152
|
if (localized !== `cli.${action.uiDetailKey}`) return localized;
|
|
8139
8153
|
}
|
|
8140
8154
|
const detailKey = action.category ? ACTION_DETAIL_KEY_BY_CATEGORY[action.category] : void 0;
|
|
@@ -8159,7 +8173,7 @@ function toOneLine(text) {
|
|
|
8159
8173
|
}
|
|
8160
8174
|
function buildActionDetail(action, lang) {
|
|
8161
8175
|
if (action.uiDetailKey) {
|
|
8162
|
-
const localized = tr(lang, "cli", action.uiDetailKey);
|
|
8176
|
+
const localized = tr(lang, "cli", action.uiDetailKey, action.uiDetailParams);
|
|
8163
8177
|
if (localized !== `cli.${action.uiDetailKey}`) return localized;
|
|
8164
8178
|
}
|
|
8165
8179
|
const formatBranchCreateDetail = (command) => {
|
|
@@ -8282,7 +8296,8 @@ function buildActionSnapshot(actionOptions) {
|
|
|
8282
8296
|
operationType: action.operationType,
|
|
8283
8297
|
requiresUserCheck: !!action.requiresUserCheck,
|
|
8284
8298
|
uiSummaryKey: action.uiSummaryKey,
|
|
8285
|
-
uiDetailKey: action.uiDetailKey
|
|
8299
|
+
uiDetailKey: action.uiDetailKey,
|
|
8300
|
+
uiDetailParams: action.uiDetailParams ? JSON.stringify(action.uiDetailParams) : void 0
|
|
8286
8301
|
};
|
|
8287
8302
|
}
|
|
8288
8303
|
return {
|
|
@@ -8293,7 +8308,8 @@ function buildActionSnapshot(actionOptions) {
|
|
|
8293
8308
|
operationType: action.operationType,
|
|
8294
8309
|
requiresUserCheck: !!action.requiresUserCheck,
|
|
8295
8310
|
uiSummaryKey: action.uiSummaryKey,
|
|
8296
|
-
uiDetailKey: action.uiDetailKey
|
|
8311
|
+
uiDetailKey: action.uiDetailKey,
|
|
8312
|
+
uiDetailParams: action.uiDetailParams ? JSON.stringify(action.uiDetailParams) : void 0
|
|
8297
8313
|
};
|
|
8298
8314
|
});
|
|
8299
8315
|
}
|
|
@@ -8915,6 +8931,9 @@ function toCompactActionOption(option) {
|
|
|
8915
8931
|
if (option.action.taskExecutePhase) {
|
|
8916
8932
|
base.taskExecutePhase = option.action.taskExecutePhase;
|
|
8917
8933
|
}
|
|
8934
|
+
if (option.action.uiDetailParams) {
|
|
8935
|
+
base.uiDetailParams = option.action.uiDetailParams;
|
|
8936
|
+
}
|
|
8918
8937
|
if (option.action.type === "command") {
|
|
8919
8938
|
base.scope = option.action.scope;
|
|
8920
8939
|
base.cwd = option.action.cwd;
|
|
@@ -9205,7 +9224,11 @@ async function runApprovedOption(state, config, lang, featureName, selectionOpti
|
|
|
9205
9224
|
approval,
|
|
9206
9225
|
state.actionOptions.map((o) => o.label)
|
|
9207
9226
|
);
|
|
9208
|
-
|
|
9227
|
+
const replanOptions = state.actionOptions.filter(
|
|
9228
|
+
(option) => option.action.category === "user_request_replan"
|
|
9229
|
+
);
|
|
9230
|
+
const implicitReplanRequest = approval.trim();
|
|
9231
|
+
parsedLabel = parsedApproval?.label ?? (replanOptions.length > 0 && implicitReplanRequest ? replanOptions[0].label : null);
|
|
9209
9232
|
if (!parsedLabel) {
|
|
9210
9233
|
throw createCliError(
|
|
9211
9234
|
"INVALID_APPROVAL",
|
|
@@ -9249,7 +9272,7 @@ async function runApprovedOption(state, config, lang, featureName, selectionOpti
|
|
|
9249
9272
|
}
|
|
9250
9273
|
const selectedAction = freshSelected.action;
|
|
9251
9274
|
if (selectedAction.category === "user_request_replan") {
|
|
9252
|
-
const requestText = parsedApproval?.requestText?.trim();
|
|
9275
|
+
const requestText = (parsedApproval?.requestText?.trim() || (parsedApproval ? "" : implicitReplanRequest)).trim();
|
|
9253
9276
|
if (!requestText) {
|
|
9254
9277
|
throw createCliError(
|
|
9255
9278
|
"INVALID_APPROVAL",
|
|
@@ -12409,6 +12432,12 @@ function sanitizeDraftMetadataValue(raw) {
|
|
|
12409
12432
|
if (/^\(.+\)$/.test(value)) return void 0;
|
|
12410
12433
|
return value;
|
|
12411
12434
|
}
|
|
12435
|
+
function sanitizeDraftTitleValue(raw) {
|
|
12436
|
+
const value = sanitizeDraftMetadataValue(raw);
|
|
12437
|
+
if (!value) return void 0;
|
|
12438
|
+
const normalized = value.replace(/`/g, "").replace(/\*\*(.*?)\*\*/g, "$1").replace(/\[(.*?)\]\((.*?)\)/g, "$1").replace(/\s+/g, " ").trim();
|
|
12439
|
+
return normalized || void 0;
|
|
12440
|
+
}
|
|
12412
12441
|
function parseWorkflowDraftStatus(raw) {
|
|
12413
12442
|
const value = (raw || "").trim();
|
|
12414
12443
|
if (!value) return void 0;
|
|
@@ -12420,7 +12449,7 @@ function parseWorkflowDraftMetadata(content) {
|
|
|
12420
12449
|
const status = parseWorkflowDraftStatus(
|
|
12421
12450
|
extractDraftMetadataValue(content, ["Status", "\uC0C1\uD0DC"])
|
|
12422
12451
|
);
|
|
12423
|
-
const title =
|
|
12452
|
+
const title = sanitizeDraftTitleValue(
|
|
12424
12453
|
extractDraftMetadataValue(content, ["Title", "\uC81C\uBAA9", "PR Title", "PR \uC81C\uBAA9"])
|
|
12425
12454
|
);
|
|
12426
12455
|
const labels = sanitizeDraftMetadataValue(
|
|
@@ -16103,18 +16132,20 @@ async function runPrePrReview(featureName, options) {
|
|
|
16103
16132
|
function buildCodeReviewRunPrompt(input) {
|
|
16104
16133
|
if (input.lang === "ko") {
|
|
16105
16134
|
return [
|
|
16106
|
-
"PR \uB9AC\uBDF0 \
|
|
16135
|
+
"PR \uB9AC\uBDF0 \uCF54\uBA58\uD2B8\uB97C \uD655\uC778\uD558\uACE0 \uBCF4\uC870 \uC5D0\uC774\uC804\uD2B8\uB85C \uC218\uC815 \uC791\uC5C5\uC744 \uC9C4\uD589\uD558\uC138\uC694.",
|
|
16107
16136
|
`- Feature: ${input.featureRef}`,
|
|
16108
16137
|
`- ${input.basePrompt}`,
|
|
16109
|
-
"- \uB9AC\uBDF0 \uCF54\uBA58\uD2B8 \
|
|
16138
|
+
"- \uC0AC\uB78C/CodeRabbit\uC774 \uB0A8\uAE34 \uB9AC\uBDF0 \uCF54\uBA58\uD2B8\uB97C \uAC80\uD1A0\uD558\uACE0 \uD544\uC694\uD55C \uCF54\uB4DC/\uBB38\uC11C \uC218\uC815\uC744 \uC9C4\uD589\uD558\uC138\uC694.",
|
|
16139
|
+
"- \uC218\uC815 \uB0B4\uC6A9\uACFC \uAC80\uD1A0 \uACB0\uACFC\uB97C \uBC18\uC601\uD55C \uB4A4 `tasks.md`\uC758 `PR Review Evidence/Decision`\uC744 \uCD5C\uC2E0\uC73C\uB85C \uAE30\uB85D\uD558\uC138\uC694.",
|
|
16110
16140
|
"- \uAD00\uB828 \uC218\uC815\uC774 \uC0DD\uAE30\uBA74 \uCF54\uB4DC/\uBB38\uC11C \uBCC0\uACBD\uC744 \uC815\uB9AC\uD558\uACE0, push/merge\uB294 \uBA54\uC778 \uC5D0\uC774\uC804\uD2B8 \uCD5C\uC885 \uC0C1\uD0DC\uC5D0\uC11C\uB9CC \uC9C4\uD589\uD558\uC138\uC694."
|
|
16111
16141
|
].join("\n");
|
|
16112
16142
|
}
|
|
16113
16143
|
return [
|
|
16114
|
-
"
|
|
16144
|
+
"Review PR comments and use a helper agent/sub-agent for the follow-up fixes.",
|
|
16115
16145
|
`- Feature: ${input.featureRef}`,
|
|
16116
16146
|
`- ${input.basePrompt}`,
|
|
16117
|
-
"-
|
|
16147
|
+
"- Check human/CodeRabbit review comments and make the required code/docs changes.",
|
|
16148
|
+
"- Update `PR Review Evidence` and `PR Review Decision` in `tasks.md` after applying the fixes and summarizing the outcome.",
|
|
16118
16149
|
"- If review fixes are needed, keep code/docs changes ready for the main-agent finalize state. Push/merge stays in the main agent."
|
|
16119
16150
|
].join("\n");
|
|
16120
16151
|
}
|
|
@@ -16164,7 +16195,7 @@ async function runCodeReviewRun(featureName, options) {
|
|
|
16164
16195
|
console.log();
|
|
16165
16196
|
console.log(
|
|
16166
16197
|
chalk8.yellow(
|
|
16167
|
-
config.lang === "ko" ? "\uC774 \uBA85\uB839\uC740 PR \uB9AC\uBDF0 handoff\uB9CC \uC900\uBE44\uD569\uB2C8\uB2E4. \
|
|
16198
|
+
config.lang === "ko" ? "\uC774 \uBA85\uB839\uC740 PR \uB9AC\uBDF0 \uCF54\uBA58\uD2B8 \uB300\uC751\uC6A9 handoff\uB9CC \uC900\uBE44\uD569\uB2C8\uB2E4. \uCF54\uBA58\uD2B8\uB97C \uC9C1\uC811 \uC77D\uC5B4\uC624\uAC70\uB098 evidence/decision\uC744 \uC790\uB3D9 \uAE30\uB85D\uD558\uC9C0 \uC54A\uC73C\uBA70, \uC0C1\uD0DC\uB3C4 \uBC14\uB85C \uB118\uAE30\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4." : "This command only prepares a handoff for addressing PR review comments. It does not fetch comments automatically, record review evidence/decision, or advance workflow state by itself."
|
|
16168
16199
|
)
|
|
16169
16200
|
);
|
|
16170
16201
|
console.log(chalk8.gray(`- substate: ${payload.substateId}`));
|