Files
kis_bot/.cursor/rules/agent-shell-python-safety.mdc
Your Name fc27e726f9 feat: 새로운 안전 규칙 및 최적화 적용을 통한 트레이딩 시스템 개선
변경 사항 (Changes):

구문 오류(Syntax error) 및 토큰 낭비를 방지하기 위해 에이전트 쉘(Agent shell)과 파이썬 코드 스니펫에 다수의 신규 안전 규칙(Safety rules)을 추가함.

스키마 검증 및 적절한 SQL 포맷팅을 보장하기 위해 임시(Ad-hoc) 데이터베이스 쿼리 작성 가이드라인을 도입함.

코드 수정 후 UI 기능이 정상 작동하는지 확인하기 위해, 백테스트 웹 서비스 재시작 및 브라우저 검증에 대한 새로운 규칙을 구현함.

시스템 전반의 무결성(Integrity)을 유지하기 위해 실전 매매(Live trading), 웹 백테스팅, 파라미터 탐색(Parameter searches) 간의 일관성 검사(Consistency checks) 체계를 확립함.

기대 효과 (Impact):

이러한 개선 사항들은 트레이딩 시스템의 견고성(Robustness)과 신뢰성을 향상시키며, 에러 발생을 최소화하고 다양한 시스템 컴포넌트 간의 원활한 상호작용을 보장함.
2026-07-17 01:09:09 +09:00

46 lines
2.1 KiB
Plaintext

---
description: 에이전트 셸·Python 원라이너 — 문법 오류 코드 금지로 토큰/재실행 낭비 방지
alwaysApply: true
---
# 에이전트 셸 / Python 스니펫 안전 (토큰 절약)
대화에서 실제로 낭비된 패턴: **실행 전에 문법이 틀린 Python을 heredoc으로 돌림**
(예: `from X import Y if False else None` → `SyntaxError` → 재작성으로 턴·토큰 낭비).
## 1. 실행 전 문법 유효성 (필수)
- `python - <<'PY'` / `-c` / 임시 `.py` 를 **돌리기 전에** 문법이 맞는지 스스로 확인.
- 확신이 없으면 파일로 쓴 뒤 `python -m py_compile path.py` **1회**만 하고 실행.
- `SyntaxError` / `IndentationError` 나면 **원인 고친 뒤 1회만** 재실행. 같은 스니펫을 살짝만 바꿔 반복 금지.
## 2. 금지 패턴 (자주 나는 가짜 문법)
- `from module import name if cond else None` — **문법 불가**.
→ `import module as m` 후 `getattr(m, "name", None)` 또는 `try/except ImportError`.
- `from X import a, b if c` / 조건부 import를 `from` 한 줄에 섞기.
- 존재하지 않는 심볼을 **추측 import** (`get_scalp_grids` 등).
→ 먼저 `hasattr` / `dir` / Grep으로 실명 확인 후 import.
- heredoc 안에서 이전에 실패한 코드를 **거의 그대로** 다시 붙여 넣기.
## 3. 그리드·헬퍼 조회 스니펫 최소형
축 개수 세기 등은 아래처럼 **검증된 형태만** 사용 (조건부 from 금지):
```python
from kis_trader.backtest.param_search_breakout import _breakout_grids
import kis_trader.backtest.param_search_scalping as sc
bg = _breakout_grids()
print({m: len(a) for m, a in bg.items()})
fn = getattr(sc, "_scalp_grids", None)
print({m: len(a) for m, a in fn().items()} if callable(fn) else "no _scalp_grids")
```
시그니처를 모르면 `inspect.signature(fn)` **먼저** — `_tail_grids(mode)` 처럼 인자가 필요한데 `()`로 호출하지 말 것.
## 4. 토큰 절약 원칙
- “한 번에 여러 전략 import + 조건부 트릭”보다 **짧은 확정 코드 1회**.
- 실패 로그를 사용자에게 길게 반복 붙여 넣지 말 것. 고치고 결과만 보고.