Files
gitea-agent-testbed/docs/requirements/req-001_project-scaffold.md
T
code-agent 52dd589f8c code-agent: implement issue 4
Approval-Correlation: 0543bb321a84cb936bc0ac4988615840
Plan-SHA256: 437a85f68d151ed4db780511812834041cfec5e7cf021fb77e238d5a6196e6fb
Base-SHA: 256be64ac7
2000-01-01 00:00:00 +00:00

45 lines
2.4 KiB
Markdown

# 프로젝트 스캐폴드 요구사항
## 범위
Python 3.11 이상과 표준 `pyproject.toml`을 사용하는 Textual 기반 TUI 초기 스캐폴드를 제공한다.
## 기능 요구사항
1. `chat-tui` 콘솔 명령과 `python -m chat_tui` 실행을 지원한다.
2. Textual 화면에 사용자 입력창과 대화 영역을 표시한다.
3. 사용자가 입력을 제출하면 입력값을 `trim`한 뒤 비어 있지 않은 사용자 메시지를 제출 순서대로 대화 영역에 누적한다.
4. 유효한 사용자 메시지 제출 후 고정된 다섯 개 응답 목록에서 표준 난수 선택으로 하나의 응답을 결정한다.
5. 선택한 응답을 해당 사용자 메시지 바로 뒤에 별도의 대화 항목으로 표시한다.
6. 유효한 입력 처리 뒤 입력창을 비운다.
7. 빈 입력 또는 공백만 포함한 입력은 사용자 메시지와 응답을 대화 기록에 추가하지 않는다.
8. `Escape` 또는 `Ctrl+Q`로 애플리케이션 종료를 요청할 수 있다.
9. 입력 누적, 응답 선택과 표시, 공백 입력 무시, 입력창 초기화 및 종료 동작을 자동 테스트로 검증한다.
## 고정 응답 목록
응답은 다음 다섯 문구 중 하나를 사용한다.
- 안녕하세요! 무엇을 도와드릴까요?
- 그것은 제가 처리하기 불가능합니다.
- 맡겨만 주세요.
- 지금 처리 중입니다.
- 작업을 완료하였습니다.
응답 선택에는 표준 라이브러리의 난수 선택 기능을 사용하며, 외부 서비스나 LLM은 호출하지 않는다.
## 제외 범위
LLM 연동, 외부 API 호출, 인증, 영구 대화 기록 저장, 사용자별 응답 기록, 응답 목록 편집, 사용자 입력에 따른 맞춤형 응답 생성은 구현하지 않는다.
## 수용 기준
- Python 3.11 이상 환경에서 의존성을 설치할 수 있다.
- TUI가 실행되고 입력창에 포커스가 배치된다.
- 두 번 이상 제출한 입력이 `trim`된 값으로 제출 순서대로 표시된다.
- 각 유효한 사용자 메시지 바로 뒤에 고정 목록에서 선택된 응답이 표시된다.
- 자동 테스트에서 난수 선택 결과를 제어하고 선택 호출 및 표시 순서를 검증할 수 있다.
- 빈 입력과 공백만 포함한 입력은 사용자 메시지, 응답 및 응답 선택 결과를 남기지 않는다.
- 유효한 입력 제출 뒤 입력창이 비워진다.
- `Escape` 및 `Ctrl+Q`가 애플리케이션 종료를 요청한다.