lee-spec-kit 0.6.42 → 0.7.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/README.en.md CHANGED
@@ -107,7 +107,7 @@ You can paste the following as an agent session-start instruction.
107
107
  Start procedure:
108
108
  1) Run npx lee-spec-kit detect --json
109
109
  2) If isLeeSpecKitProject === true, run npx lee-spec-kit context --json-compact (use --json only when full detail is needed)
110
- 3) If actionOptions exist, show approvalPrompt and finalPrompt exactly as provided, then wait for user approval (<LABEL> or <LABEL> OK)
110
+ 3) If approvalRequest.required=true, show approvalRequest.userFacingLines exactly as provided, then wait for user approval (<LABEL> or <LABEL> OK)
111
111
  4) Do not execute before approval; execute requiresUserCheck=true actions only after approval
112
112
  5) If isLeeSpecKitProject === false, skip lee-spec-kit-specific flow and continue with normal workflow
113
113
  ```
@@ -280,30 +280,26 @@ Use advanced selectors (`--component`, `--all`, `--done`) only when you need mul
280
280
  - A one-time execution token issued by the CLI when you approve a label via `--approve`.
281
281
  - `--ticket` is required for `--execute` only when the selected action has `requiresUserCheck=true`.
282
282
  - It is short-lived (5 minutes by default) and cannot be reused after one execution.
283
+ - When you `--execute` a handoff-only command (`pre_pr_review_run`, `code_review_run`), the result is `approved_handoff_prepared` with `nextMainState` instead of the normal `approved_executed`.
283
284
 
284
- `context --json-compact` is the default recommended format, providing a reduced and deduplicated decision state.
285
+ `context --json-compact` is the default recommended format, providing a minimal hot-path contract for agents.
285
286
  Use `context --json` only when full-detail debugging fields are required.
286
287
 
287
288
  **Core fields (recommended for normal agent flows)**
288
289
 
289
290
  - `status` / `reasonCode`: current state and reason code
290
- - `actions[]`: atomic action list
291
- - `type: "command"`: `scope` (project|docs), `cwd`, `cmd`, `category`, `operationType`, `requiresUserCheck`
292
- - `type: "instruction"`: `message`, `category`, `operationType`, `requiresUserCheck`
293
- - `actionOptions[]`: `label` (`A`, `B`, `C`...) + target `action` + user-facing `summary` / `detail` / `approvalPrompt`
294
- - `approvalRequest`: ready-to-use approval/execute guidance (`labels`, `approveCommand`, `executeCommand`, `options[]`)
291
+ - `actionOptions[]`: `label` (`A`, `B`, `C`...) + the minimal execution contract (`detail`, `actionType`, `category`, `operationType`, `requiresUserCheck`, plus command/instruction payload)
292
+ - `approvalRequest`: approval state and user-facing prompt lines (`required`, `userFacingLines`, `finalPrompt`)
295
293
  - `requiredDocs`: built-in docs to read before the current action (`id`, `command`)
296
- - `checkPolicy`: approval validation policy (`token`, `acceptedTokens`, `tokenPattern`, `validLabels`, `contextVersion`, ...)
297
- - `agentOrchestration`: main-agent (conversation/approval) + sub-agent (execution) contract. The current SSOT is `subAgentHandoff` plus `matchedFeature.currentSubstate*`; `delegateCommandExecution`, `longRunningCategories`, and `currentActionShouldDelegate` are compatibility fields.
294
+ - `checkPolicy`: minimal approval state (`token`, `validLabels`, `checkRequiredLabels`, `checkRequiredCategories`, `approvalRequired`, `contextVersion`)
295
+ - `agentOrchestration`: compact keeps only `subAgentHandoff`. Delegation SSOT is `matchedFeature.currentSubstate*` + `subAgentHandoff`.
298
296
  - `matchedFeature.currentSubstateId/currentSubstateOwner/currentSubstatePhase`: current step-internal execution state for owner/phase-aware orchestration
297
+ - `actions[]`: the raw atomic action list remains available in detailed `context --json`.
299
298
 
300
299
  **Advanced/reference fields (automation edge cases or debugging)**
301
300
 
302
- - `selectionFallback`: fallback used when branch auto-detection does not match (`none` | `open_features` | `all_features` | `done_features`)
303
- - `primaryActionLabel` / `primaryActionType` / `primaryActionCategory` / `primaryActionOperationType`: summary metadata for the first atomic action
304
- - `workflowPolicy`: current completion policy (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
305
- - `taskCommitGatePolicy`: task commit gate policy (`off` | `warn` | `strict`)
306
- - `prePrReviewPolicy`: pre-PR review policy (`enabled`, `skills`, `fallback`)
301
+ - `selectionFallback`: fallback used when branch auto-detection does not match (`none` | `open_features` | `all_features` | `done_features`) and only appears in compact for non-hot-path selection states
302
+ - `primaryActionLabel` / `workflowPolicy` / `taskCommitGatePolicy` / `prePrReviewPolicy`: detailed debugging/policy fields available from `context --json`
307
303
 
308
304
  Error payloads (`status: "error"`) include `reasonCode` and labeled `suggestions` (`A/B/C`) (e.g. `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`).
309
305
 
@@ -402,12 +398,15 @@ Auto gate mode rules:
402
398
  - `--request` requires auto mode.
403
399
  - Exception: if `workflow.auto.defaultPreset` is configured, `--request` alone enables auto mode.
404
400
  - `--resume <run-id>` cannot be combined with `<feature-name>`, `--component`, `--all`, `--done`, `--auto-*`, or `--request`. (It uses settings from the stored checkpoint.)
405
- - Auto-run stops as `gate_reached` when a target category appears, then prints that step's approval text (`approvalRequest.userFacingLines`).
401
+ - Auto-run stops as `gate_reached` when a target category appears, then prints `autoRun.gate.userFacingLines`. (This is copied from that step's `approvalRequest.userFacingLines`.)
402
+ - In `context --json` / `--json-compact`, `autoRun.available` means "auto-run can execute right now". If config allows auto-run but the current step is instruction-only, you get `autoRun.available=false`, `autoRun.policyEligible=true`, `autoRun.executableNow=false`, and `autoRun.manualBoundary`.
406
403
  - If the current action set is instruction-only (no executable command), auto-run may stop with `AUTO_MANUAL_REQUIRED`. This is an automation boundary, not a CLI crash.
407
404
  - If progress stalls (same context/action repeating), it stops with `AUTO_NO_PROGRESS`.
408
- - In JSON mode, inspect `autoRun.status`, `autoRun.reasonCode`, `autoRun.gate`, `autoRun.executions`, and `autoRun.resume`.
405
+ - In JSON mode, inspect `autoRun.status`, `autoRun.reasonCode`, `autoRun.gate`, `autoRun.manual`, and `autoRun.resume`.
406
+ - Detailed `flow --json` keeps the full `autoRun.executions` array.
407
+ - Compact `flow --json-compact` keeps only `autoRun.executionCount` and `autoRun.lastExecution`.
409
408
  - Inspect JSON `agentOrchestration` and `matchedFeature.currentSubstate*` for main/sub-agent responsibilities and pause/report boundaries.
410
- - Prefer `matchedFeature.currentSubstateOwner` plus `subAgentHandoff` as the delegation signal when present. `longRunningCategories` and `currentActionShouldDelegate` remain legacy compatibility metadata for older non-substate paths.
409
+ - Prefer `matchedFeature.currentSubstateOwner` plus `subAgentHandoff` as the delegation signal when present. Compact keeps only `subAgentHandoff`; use detailed `--json` / `flow --json` when you need extra orchestration metadata.
411
410
  - With `--start-auto`, JSON also includes `autoRun.run` (`runId`, `status`, `resumeCommand`).
412
411
 
413
412
  Agent resume rules (recommended):
@@ -438,7 +437,7 @@ npx lee-spec-kit github pr F001 --create --merge --confirm OK --labels enhanceme
438
437
  Key points:
439
438
  - Issue/PR helpers validate required body sections and related docs paths.
440
439
  - `--json` output includes both `body` (inline markdown) and `bodyFile` (file path).
441
- - Labels are validated (at least one required).
440
+ - If `--labels` is omitted, the default label is `enhancement`. When you pass `--labels` explicitly, it must not be empty.
442
441
  - `--create`/`--merge` are remote operations and require `--confirm OK`.
443
442
  - PR helper can sync `tasks.md` PR URL/PR Status automatically (`--no-sync-tasks` to skip).
444
443
  - PR artifact sections are controlled by `--screenshots (auto|on|off)` and `--mermaid (auto|on|off)`.
@@ -590,16 +589,11 @@ Running `init` creates `.lee-spec-kit.json` in your docs root (default: `docs/`)
590
589
  - the `[CHECK required]` tag in text output
591
590
  - `actionOptions[].requiresUserCheck` in `context --json-compact` (`actions[].requiresUserCheck` in `--json`)
592
591
  - `checkPolicy.token` (`context --json-compact`/`--json`): approval token format (`<LABEL>`)
593
- - `checkPolicy.acceptedTokens`: accepted reply templates (e.g. `["<LABEL>", "<LABEL> OK", "<LABEL> ...", "... <LABEL> ..."]`)
594
- - `checkPolicy.tokenPattern`: input validation regex for approval replies
595
592
  - `checkPolicy.validLabels`: currently selectable labels (`A`, `B`, `C`...)
596
- - `checkPolicy.activeCategories`: categories currently present in actions (from `actionOptions[].category`)
597
- - `checkPolicy.knownCategories`: full category list recognized by the CLI
598
- - `checkPolicy.uncategorizedLabels`: labels with missing category (should normally be empty)
599
- - `checkPolicy.categoryPolicyGuidance`: guidance for matching categories in `approval.mode="category"`
600
- - `checkPolicy.requireExplanationBeforeApproval`: require label-by-label explanation before asking approval
601
- - `checkPolicy.requiredExplanationFields`: fields to use for explanation (e.g. `actionOptions[].detail`)
593
+ - `checkPolicy.checkRequiredLabels` / `checkPolicy.checkRequiredCategories`: labels/categories that currently require approval
594
+ - `checkPolicy.approvalRequired`: whether the current state is approval-blocked
602
595
  - `checkPolicy.contextVersion`: snapshot hash for stale-context validation
596
+ - `checkPolicy.acceptedTokens`, `tokenPattern`, `activeCategories`, `knownCategories`, `uncategorizedLabels`, `categoryPolicyGuidance`, `requireExplanationBeforeApproval`, and `requiredExplanationFields` remain available in detailed `context --json`.
603
597
  - `actionOptions`: maps `label` (`A`, `B`, `C`...) to each atomic `action`
604
598
  - `workflowPolicy`: current completion policy (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
605
599
  - `taskCommitGatePolicy`: task commit gate policy (`off` | `warn` | `strict`)
@@ -711,7 +705,7 @@ Pre-PR execution gate risks and mitigations:
711
705
  }
712
706
  ```
713
707
 
714
- > Discover category values from `context --json`/`--json-compact` using `checkPolicy.activeCategories` (current), `checkPolicy.knownCategories` (full), and `actionOptions[].category` (per-label).
708
+ > Discover category values from detailed `context --json` using `checkPolicy.activeCategories` / `checkPolicy.knownCategories`, or from `actionOptions[].category`. Compact keeps only the hot-path contract.
715
709
 
716
710
  ### pr (PR artifacts policy)
717
711
 
package/README.md CHANGED
@@ -122,7 +122,7 @@ npx lee-spec-kit detect --json
122
122
  작업 시작 절차:
123
123
  1) npx lee-spec-kit detect --json
124
124
  2) isLeeSpecKitProject === true 이면 npx lee-spec-kit context --json-compact 실행 (필요 시 --json으로 상세 조회)
125
- 3) actionOptions가 있으면 approvalPrompt와 finalPrompt를 그대로 사용자에게 제시하고 승인(<LABEL> 또는 <LABEL> OK) 대기
125
+ 3) approvalRequest.required=true 이면 approvalRequest.userFacingLines를 그대로 사용자에게 제시하고 승인(<LABEL> 또는 <LABEL> OK) 대기
126
126
  4) 승인 전에는 실행하지 말고, requiresUserCheck=true 액션은 승인 후에만 실행
127
127
  5) isLeeSpecKitProject === false 이면 lee-spec-kit 전용 절차를 건너뛰고 일반 워크플로우로 진행
128
128
  ```
@@ -299,30 +299,26 @@ npx lee-spec-kit context F001 --approve A --execute --ticket <TICKET> --execute-
299
299
  - `--approve`로 라벨을 승인할 때 CLI가 발급하는 1회용 실행 토큰입니다.
300
300
  - 선택한 액션이 `requiresUserCheck=true`인 경우에만 `--execute`에서 `--ticket`이 필요합니다.
301
301
  - 발급 후 짧은 시간(기본 5분)만 유효하며, 한 번 사용하면 재사용할 수 없습니다.
302
+ - handoff-only command(`pre_pr_review_run`, `code_review_run`)를 `--execute`하면 일반 실행 완료(`approved_executed`) 대신 `approved_handoff_prepared`와 `nextMainState`가 반환됩니다.
302
303
 
303
- 기본 권장 포맷은 `context --json-compact`이며, 같은 판단 정보를 중복 없이 축약해 전달합니다.
304
+ 기본 권장 포맷은 `context --json-compact`이며, 에이전트 hot path에 필요한 상태만 최소 계약으로 전달합니다.
304
305
  `context --json`은 디버깅/세부 필드 확인이 필요할 때만 사용하세요.
305
306
 
306
307
  **핵심 필드 (실사용 권장)**
307
308
 
308
309
  - `status`/`reasonCode`: 현재 상태와 이유 코드
309
- - `actions[]`: 원자 액션 목록
310
- - `type: "command"`: `scope`(project|docs), `cwd`, `cmd`, `category`, `operationType`, `requiresUserCheck`
311
- - `type: "instruction"`: `message`, `category`, `operationType`, `requiresUserCheck`
312
- - `actionOptions[]`: `label`(`A`, `B`, `C`...) + 실행 대상 `action` + 사용자 안내용 `summary`/`detail`/`approvalPrompt`
313
- - `approvalRequest`: 승인 요청/실행에 바로 사용하는 안내 데이터 (`labels`, `approveCommand`, `executeCommand`, `options[]`)
310
+ - `actionOptions[]`: `label`(`A`, `B`, `C`...) + 최소 실행 계약 (`detail`, `actionType`, `category`, `operationType`, `requiresUserCheck`, 그리고 command/instruction payload)
311
+ - `approvalRequest`: 승인 대기 여부와 사용자 표시 문구 (`required`, `userFacingLines`, `finalPrompt`)
314
312
  - `requiredDocs`: 현재 액션 전에 읽어야 할 CLI 내장 문서 목록 (`id`, `command`)
315
- - `checkPolicy`: 승인 검증 정책 (`token`, `acceptedTokens`, `tokenPattern`, `validLabels`, `contextVersion`)
316
- - `agentOrchestration`: 메인(대화/승인) + 서브(명령 실행) 역할 분리 계약. 현재 SSOT는 `subAgentHandoff`와 `matchedFeature.currentSubstate*`이며, `delegateCommandExecution`/`longRunningCategories`/`currentActionShouldDelegate`는 compatibility field입니다.
313
+ - `checkPolicy`: 최소 승인 상태 (`token`, `validLabels`, `checkRequiredLabels`, `checkRequiredCategories`, `approvalRequired`, `contextVersion`)
314
+ - `agentOrchestration`: compact에서는 `subAgentHandoff`만 유지합니다. 위임 SSOT는 `matchedFeature.currentSubstate*` + `subAgentHandoff`입니다.
317
315
  - `matchedFeature.currentSubstateId/currentSubstateOwner/currentSubstatePhase`: step 내부 실행 상태와 owner/phase 기반 오케스트레이션 판단용 필드
316
+ - `actions[]`: 원자 액션 원본 목록은 상세 `context --json`에서 확인합니다.
318
317
 
319
318
  **고급/참고 필드 (자동화 고급 시나리오 또는 디버깅용)**
320
319
 
321
- - `selectionFallback`: 자동 감지 실패 시 사용된 폴백 (`none` | `open_features` | `all_features` | `done_features`)
322
- - `primaryActionLabel`/`primaryActionType`/`primaryActionCategory`/`primaryActionOperationType`: 번째 원자 액션 요약 메타데이터
323
- - `workflowPolicy`: 현재 완료 조건 정책 (`mode`, `requireIssue`, `requireBranch`, `requirePr`, `requireReview`)
324
- - `taskCommitGatePolicy`: 태스크 커밋 게이트 정책 (`off` | `warn` | `strict`)
325
- - `prePrReviewPolicy`: pre-PR 리뷰 정책 (`enabled`, `skills`, `fallback`)
320
+ - `selectionFallback`: 자동 감지 실패 시 사용된 폴백 (`none` | `open_features` | `all_features` | `done_features`) - compact에서는 비-hot-path 상태에서만 노출될 수 있음
321
+ - `primaryActionLabel`/`workflowPolicy`/`taskCommitGatePolicy`/`prePrReviewPolicy`: 상세 `context --json`에서 확인하는 디버깅/정책 필드
326
322
 
327
323
  오류 응답(`status: "error"`)에는 `reasonCode`와 `suggestions`(라벨형 다음 동작: `A/B/C`)가 포함됩니다. (예: `INVALID_APPROVAL`, `CONTEXT_STALE`, `EXECUTION_FAILED`, `EXECUTION_NOT_COMMAND`)
328
324
 
@@ -421,12 +417,15 @@ npx lee-spec-kit flow --strict
421
417
  - `--request`는 auto 모드와 함께 사용해야 합니다.
422
418
  - 예외적으로 `workflow.auto.defaultPreset`이 설정되어 있으면 `--request`만으로도 auto 모드가 활성화됩니다.
423
419
  - `--resume <run-id>`는 `<feature-name>`, `--component`, `--all`, `--done`, `--auto-*`, `--request`와 함께 사용할 수 없습니다. (체크포인트에 저장된 설정을 사용)
424
- - 자동 진행은 지정한 category가 등장하면 `gate_reached`로 멈추고, 해당 단계의 승인 문구(`approvalRequest.userFacingLines`)를 그대로 출력합니다.
420
+ - 자동 진행은 지정한 category가 등장하면 `gate_reached`로 멈추고, `autoRun.gate.userFacingLines`를 그대로 출력합니다. (이 값은 해당 단계의 `approvalRequest.userFacingLines`를 flow 결과에 복사한 것입니다.)
421
+ - `context --json` / `--json-compact`의 `autoRun.available`는 "지금 바로 실행 가능한 auto-run"만 의미합니다. 설정상 auto-run 대상이어도 현재 단계가 instruction-only이면 `autoRun.available=false`, `autoRun.policyEligible=true`, `autoRun.executableNow=false`, `autoRun.manualBoundary`로 표시됩니다.
425
422
  - 현재 액션이 instruction-only라 command 자동 실행이 불가능하면 `AUTO_MANUAL_REQUIRED`로 멈출 수 있습니다. (CLI 오류가 아니라 자동화 경계 도달 상태)
426
423
  - 진행 정체(동일 context/action 반복)가 감지되면 `AUTO_NO_PROGRESS`로 중단됩니다.
427
- - JSON 모드에서는 `autoRun.status`, `autoRun.reasonCode`, `autoRun.gate`, `autoRun.executions`, `autoRun.resume`로 상세 상태를 확인할 수 있습니다.
424
+ - JSON 모드에서는 `autoRun.status`, `autoRun.reasonCode`, `autoRun.gate`, `autoRun.manual`, `autoRun.resume`를 확인하세요.
425
+ - 상세 `flow --json`은 `autoRun.executions` 배열을 유지합니다.
426
+ - 압축 `flow --json-compact`는 `autoRun.executionCount`, `autoRun.lastExecution`만 유지합니다.
428
427
  - JSON `agentOrchestration`과 `matchedFeature.currentSubstate*`로 메인/서브 에이전트 역할 및 중단/보고 조건을 확인할 수 있습니다.
429
- - 위임 판단은 `matchedFeature.currentSubstateOwner`와 `subAgentHandoff`를 우선 사용하세요. `longRunningCategories`와 `currentActionShouldDelegate`는 substate가 없는 레거시 경로용 compatibility 메타데이터입니다.
428
+ - 위임 판단은 `matchedFeature.currentSubstateOwner`와 `subAgentHandoff`를 우선 사용하세요. compact는 `subAgentHandoff`만 유지하고, 상세 `--json`/`flow --json`이 추가 오케스트레이션 메타데이터를 제공합니다.
430
429
  - `--start-auto`를 사용하면 JSON `autoRun.run`에 `runId`, `status`, `resumeCommand`가 포함됩니다.
431
430
 
432
431
  에이전트 재개 규칙(권장):
@@ -457,7 +456,7 @@ npx lee-spec-kit github pr F001 --create --merge --confirm OK --labels enhanceme
457
456
  핵심 동작:
458
457
  - Issue/PR helper는 필수 섹션과 관련 문서 경로를 검증합니다.
459
458
  - `--json` 출력에는 `body`(본문 문자열)와 `bodyFile`(파일 경로)가 함께 제공됩니다.
460
- - 라벨은 최소 1개 이상 필수입니다.
459
+ - `--labels`를 생략하면 기본값 `enhancement`를 사용합니다. 값을 직접 줄 때는 비어 있으면 안 됩니다.
461
460
  - `--create`/`--merge`는 원격 작업이므로 `--confirm OK`가 필요합니다.
462
461
  - PR helper는 기본적으로 `tasks.md`의 `PR`/`PR Status`를 동기화합니다. (`--no-sync-tasks`로 비활성화)
463
462
  - PR helper의 아티팩트 섹션은 `--screenshots (auto|on|off)`, `--mermaid (auto|on|off)`로 제어할 수 있습니다.
@@ -642,16 +641,11 @@ npx lee-spec-kit update --force
642
641
  - 텍스트 출력의 `[확인 필요]` 표시
643
642
  - `context --json-compact`의 `actionOptions[].requiresUserCheck` (`--json`에서는 `actions[].requiresUserCheck`)
644
643
  - `checkPolicy.token` (`context --json-compact`/`--json`): 승인 토큰 형식 (`<LABEL>`)
645
- - `checkPolicy.acceptedTokens`: 허용되는 승인 응답 템플릿 (예: `["<LABEL>", "<LABEL> OK", "<LABEL> ...", "... <LABEL> ..."]`)
646
- - `checkPolicy.tokenPattern`: 승인 응답 검증용 정규식
647
644
  - `checkPolicy.validLabels`: 현재 선택 가능한 라벨 목록 (`A`, `B`, `C`...)
648
- - `checkPolicy.activeCategories`: 현재 액션에 실제 등장한 category 목록 (`actionOptions[].category` 기준)
649
- - `checkPolicy.knownCategories`: CLI가 인식하는 전체 category 목록
650
- - `checkPolicy.uncategorizedLabels`: category가 비어 있는 라벨 목록 (정상이라면 빈 배열)
651
- - `checkPolicy.categoryPolicyGuidance`: `approval.mode="category"` 사용 시 category 매칭 기준 안내
652
- - `checkPolicy.requireExplanationBeforeApproval`: 승인 요청 전에 라벨별 설명을 포함해야 함
653
- - `checkPolicy.requiredExplanationFields`: 라벨 설명에 사용할 필드 목록 (예: `actionOptions[].detail`)
645
+ - `checkPolicy.checkRequiredLabels` / `checkPolicy.checkRequiredCategories`: 현재 승인 필수 라벨/카테고리
646
+ - `checkPolicy.approvalRequired`: 현재 승인 대기 여부
654
647
  - `checkPolicy.contextVersion`: stale context 검증용 스냅샷 해시
648
+ - `checkPolicy.acceptedTokens`, `tokenPattern`, `activeCategories`, `knownCategories`, `uncategorizedLabels`, `categoryPolicyGuidance`, `requireExplanationBeforeApproval`, `requiredExplanationFields`는 상세 `context --json`에서 확인합니다.
655
649
 
656
650
  > 실제 명령 실행을 강제/차단하는 기능은 아닙니다. (에이전트가 참고하도록 신호를 제공)
657
651
  > 기존 설정에 `approval`이 없으면 `builtin`으로 동작합니다. (마이그레이션 불필요)
@@ -760,7 +754,7 @@ Pre-PR 실행 게이트 리스크와 완화:
760
754
  }
761
755
  ```
762
756
 
763
- > 사용 가능한 `category` 값은 `context --json`/`--json-compact`의 `checkPolicy.activeCategories`(현재), `checkPolicy.knownCategories`(전체), `actionOptions[].category`(라벨별)에서 확인하세요.
757
+ > 사용 가능한 `category` 값은 `context --json`의 `checkPolicy.activeCategories`/`checkPolicy.knownCategories`, 또는 `actionOptions[].category`에서 확인하세요. compact는 hot path 최소 계약만 유지합니다.
764
758
 
765
759
  ### pr (PR 결과물 정책)
766
760