# pi-autoprompt

[English](./README.md) | 한국어

Pi가 마지막 답변에 현재 목표를 바로 이어갈 다음 작업 후보를 함께 남기게 하고, 세션이 끝난 뒤 그 후보를 선택/타임아웃으로 이어 보냅니다. 별도 LLM 호출은 하지 않습니다. 이어갈 작업이 없으면 종료합니다.

## 명령어

```text
/autoprompt on                 # 자동 실행과 연속 실행 켜기
/autoprompt off                # 현재 런타임에서 자동 실행 끄기
/autoprompt now                # 지금 한 번 실행
/autoprompt status             # 현재 상태 확인(기본 timeout=10s)
/autoprompt timeout 15         # 선택 타임아웃 초 설정
/autoprompt loop on            # 연속 자동 실행 켜기
/autoprompt loop off           # 현재 런타임에서 연속 자동 실행 끄기
/autoprompt mode normal        # 현재 목표를 이어가는 실용적 후보를 제안
/autoprompt mode conservative  # 명시 요청 완료에 꼭 필요한 작업만 보수적으로 제안
/autoprompt cancel             # 대기 중인 다음 자동 실행 취소
/autoprompt history            # 최근 자동 실행 기록 보기
/autoprompt help               # 명령어 도움말 보기
/autoprompt doctor             # 캐시 판정/usage 디버그 보기
/autoprompt reset-stats        # 캐시 통계 초기화
```

## Loop

시작/리로드 후 기본값은 자동 실행과 `loop on`입니다. 오토프롬프트가 보낸 작업이 끝난 뒤에도 마지막 답변의 다음 작업 후보가 있으면 계속 이어 보냅니다.

현재 루프는 이어갈 다음 작업이 없다고 판정될 때 자동으로 멈춥니다.

`cacheRead`가 없거나 prompt cache 적중률이 50% 미만이면 경고만 보여주고, 다음 작업 후보가 있는 동안에는 루프를 계속 진행합니다.

이어갈 다음 작업이 없을 때는 현재 루프만 종료하고, 저장된 연속 실행 설정은 다음 턴을 위해 유지합니다.

## Doctor

`/autoprompt doctor`는 캐시 디버깅용으로 한 섹션에 다음 값을 보여줍니다.

- `currentCacheKey`, `sessionId`
- `lastRawUsage`
- 추출된 `cacheRead`, `cacheWrite`, `totalInputTokens`
- `cacheHitRate`
- `cacheRead=0`일 때 가능한 원인 힌트

## 설정 저장

다음 값은 Pi global `settings.json`의 `piAutoprompt`에 저장되어 `/reload` 후에도 유지됩니다.

- `timeoutSeconds`
- `mode`
- `history`

`enabled`와 `loopEnabled`는 시작/리로드 후 기본적으로 켜집니다. 현재 런타임에서만 끄려면 `/autoprompt off` 또는 `/autoprompt loop off`를 사용하세요.

## 비용 주의

`loop on`은 에이전트 작업을 계속 이어갈 수 있습니다. 필요하면 `/autoprompt loop off`로 끄세요.
