2026-08-16 세션 — 세션 도구 조정판(tools.html) 신설 + 그릴미 상시작동 전환
논의·대안
페페 지시 2건. ①"그릴미 상시 세션 작동으로 변경" ②"tools 페이지를 신설한다. devplan catalog.html에 있는 tools 리포 목록과 세션에 연관된 mcp, 플러그인들을 통합해서 항목별 옵션 조정이 가능한 페이지를 만들어라. 세션 시작시 상시 작동부터 세부 디테일 조정이 가능하게 한다. 설정 조작 후 저장하면 cli 바로 작동시켜서 현상태를 다음 세션 적용되게 작업한다."
[코디] 그릴미가 왜 안 돌았나 — 스킬 2개(grilling 본체 + grill-me 3줄 래퍼)가 ~/.claude/skills/에
26.7.7부터 있었으나 둘 다 disable-model-invocation: true라 코디가 자동 발동할 수 없었다.
26.7.14 "상시 활성화" 지시는 메모리 파일 1개(grillme-always-active.md)에만 남아 있어서, 그 메모리가
컨텍스트에 안 실리는 세션이면 그릴링은 0회였다. CLAUDE.md·settings.json 훅 어디에도 근거가 없었다.
[코디] tools 페이지 그릴링 4문 — 신규구축이라 착수 전 질문 1개씩: 1. 조정 범위 → 5종 전부(MCP·플러그인·스킬·서브에이전트·tools 리포) + devplan 사이드 메뉴 등록. (2안=지시문 3종만, 3안=훅·env까지) 2. 저장→적용 → 즉시 CLI 실행 + 백업/실패건만 롤백 + 적용 이력 페이지 보관. (2안=2단계 확인, 3안=텔레그램 승인 게이트) 3. tools 리포 22항목 노브 → 표시+MCP 연결만, 목록 원천은 JSON으로 분리해 catalog.html과 공유. (2안=상주/자동시작 토글까지) 4. 편집 깊이 → 토글 + 항목별 핵심노브. 프리셋(가구모드/개발모드)은 보류. (3안=날 JSON 편집기 = 비추천)
[페페] 후속(같은 날) — "그릴링은 조정할 옵션이 없어?" 스킬 탭이 frontmatter만 편집해서 그릴링 노브 7개 중 5개(질문 개수·추천안 제시·사실 자동조사·결정 주체·종료 조건)가 본문에 박혀 손이 안 닿았다. 그릴링은 노브 대부분이 본문에 있는 유일한 스킬이라 이게 티가 났다. 질문 1문 → 본문 편집칸 1개(모든 스킬 공통) 채택. 그릴링 전용 구조 노브(체크박스·셀렉트)는 기각 — 스킬 4개 중 1개만 쓰는 스키마인 데다 규칙을 고칠 때마다 페이지 코드도 같이 고쳐야 한다.
결정
- 그릴미 = 상시작동.
grilling/SKILL.md에서disable-model-invocation제거 + description을 "설계·계획·신규구축·UI방향·스키마 결정 시 항상 발동" + 한글 트리거(그릴미/그릴링/따져줘/질문해줘/캐물어)로 교체. 근거를 메모리에서C:\dev\CLAUDE.md§3 첫 줄로 승격(메모리 의존 제거).grill-me래퍼는 수동 별칭으로 존치. - MCP에는 disable이 없다 — CLI는
add/remove뿐. 그래서 끄기 =mcp remove+ 설정을devplan/tools_stash.json에 보관, 켜기 = 그 stash로mcp add재등록. 왕복 후.claude.json엔트리가 바이트 동일함을 확인. - claude.ai 커넥터 5개(Gmail·Notion·Drive·Autodesk·user-brief)는 읽기전용.
.claude.json의claudeAiMcpEverConnected에만 이름이 남고 설정 실체가 없어 CLI로 못 끈다 → 페이지에 🔒로 표시. - 적용 반영 시점이 두 갈래 — MCP·플러그인은 다음 세션부터, 스킬·서브에이전트는 즉시(frontmatter 직접 편집). 페이지가 적용 결과 줄에 이걸 매번 문구로 띄운다. 이번 세션이 그 증거 — grilling 스킬을 고치자마자 스킬 목록에 떴다.
- 목록 중복 제거 — catalog.html 안에 하드코딩돼 있던 42항목 JS 배열을
devplan/tools_catalog.json으로 분리하고 catalog.html은 fetch로 읽는다. tools.html은 그중cat=toolrepo19개를 쓴다. 원천 1개. - 사이드바 항목 추가 =
--renav필요. NAV 단일 출처는apply_shell.py지만 쉘은 페이지에 박제돼 있어 이미 적용된 35개 페이지는 자동으로 안 바뀐다. 재적용은hub-shell-v1표식이 막는다 → 사이드바<ul>블록만 갈아끼우는--renav모드를 신설했다.
[페페] 후속2(26.8.17) — "텍스트 수정으로 내가 하면 실수할 수 있으니 조정 사항을 내가 선택할 수 있는 메뉴옵션으로 정리를 해서 페이지에 올려줘. 선택사항에 대해 지정하면 그것을 코디가 읽고 반영해주는거로 해줘." 질문 1문(반영 트리거) → 페페 답 = "저장 및 반영 버튼을 페이지에서 누르면 코디가 cli로 실행되서 시드 복원하고 구문을 정리해서 처리한다. 질문 필요시 텔레그램으로 보낸다." → 세션 시작 훅 안 만들고 버튼이 헤드리스 코디를 띄우는 방식으로 확정. ⚠페이지가 문장을 조립하지 않는 게 핵심이다 — 조립식이면 「결과 기록 = handoff.md에 남겨라」처럼 본문 밖 행동을 담을 수 없고, 나온 문장이 템플릿티를 낸다. 코디가 쓰면 기존 영어 문체 그대로 필요한 문장만 손댄다.
산출물
| 파일 | 내용 |
|---|---|
devplan/tools.html |
조정판 페이지(6탭: MCP·플러그인·스킬·서브에이전트·tools 리포·적용 이력) |
devplan/tools_state.py |
상태 읽기 + 적용 엔진 + 백업/롤백 + 이력. 단독 CLI(state/apply/history/--selftest) |
| ↳ 스킬 노브 3종 | 자동발동(disable-model-invocation) · 트리거 문구(description) · 지시문 본문(skill.body, frontmatter 무손상) |
↳ SKILL_OPTIONS + reflect() |
그릴링 옵션 메뉴 7개 정의 + 「저장 및 반영」이 띄우는 헤드리스 코디 러너(/api/tools/reflect) |
devplan/tools_skill_options.json |
고른 값(selected) · 반영된 값(applied) · 마지막 반영 시각·요약 |
devplan/tools_catalog.json |
catalog.html에서 분리한 42항목 목록(양쪽 공유) |
devplan/app.py |
GET /api/tools/state · GET /api/tools/history · POST /api/tools/apply + TOOLS_LOCK |
devplan/apply_shell.py |
NAV에 도구 조정판 추가 + --renav 모드 신설 |
devplan/build_hub.py |
허브 사이드바 동일 항목 추가 |
~/.claude/skills/grilling/SKILL.md · C:\dev\CLAUDE.md |
그릴미 상시작동 |
검증
tools_state.py --selftest— Python 3.12·3.9 양쪽 PASS(app.py는 3.9 pythonw로 돈다). frontmatter 읽기/쓰기/멱등/제거, 잘못된 모델·빈 description·모르는 kind 거부 시 파일 무변화, 상태 5종 비어있지 않음.- E2E 왕복 4건 — 플러그인
session-reportoff→on(✔ Successfully disabled/enabled, 상태 False→True 확인), MCPyoutube-transcriptoff→on(stash 경유,.claude.json엔트리 원상복구 동일=True), MCPautocad-plotmcp.edit재등록(envPYTHONUNBUFFERED보존, 동일=True), 스킬grilling본문 변경→복구(파일 바이트 동일, description 427자 무손상, 빈 값 거부 후에도 무변화). check_font.pyFAIL 0 ·check_theme.pyFAIL 0 ·apply_shell.py --selftest13항목 통과-
build_hub.py --selftest11항목 + 카드 45개 source 해결 + 상태층 검증 통과 → 허브 재생성,tools-panel최신일자로 노출. -
reflect 왕복 2회 실측(26.8.17) — 「질문 총량 제한 없음 → 최대 5개」 13.6초, 「최대 5개 → 제한 없음」 17.0초. 둘 다 frontmatter·description 무손상, 영어·명령형 문체 유지, 바꾼 항목만 손댐. 검증 뒤 원본 파일로 복구하고 옵션 기록도 초기화. ⚠되돌리기는 「문장 삭제」가 아니라 「반대 문장 추가」로 나온다(
Do not cap the number of questions…) — 반복하면 본문이 자란다. - 라디오 렌더 버그 1건(같은 날) —
.det input{width:100%}에 라디오가 걸려 라벨에서 멀리 밀렸다. 폰트·테마 게이트는 둘 다 PASS였다 = 이런 건 스크린샷 육안으로만 잡힌다. 수정 =input:not([type=radio])+.optflex.
남은 것
- 프리셋(가구모드/개발모드 세트 전환)은 그릴링 4번에서 보류 — 페페가 실사용 후 필요하다고 하면 착수.
- tools 리포의 상주/자동시작 토글(그릴링 3번 2안)도 보류 — 도구마다 기동방식(HKCU Run·예약작업·pythonw)이 달라 항목별 기동명령 등록이 선행돼야 한다.
tools_catalog.json의 날짜·설명은 26.6.23 스냅샷 그대로다(catalog.html 시절 값). 자동 스캔으로 갱신하는 건 별건.