/dgclaw:agenda, 진짜 일정 등록하기
주인이 주변에 없어도 어떤 일이 특정 시간에 일어나길 원합니다. 이 스킬은 그 요청을 systemd 타이머로 변환합니다. 이 타이머는 머신에 살아 있고, 재부팅에도 살아남으며, 혼자서 발동합니다.
무엇보다도 먼저, 황금률
세상에는 두 종류의 "예약"이 있으며, 이들은 전혀 다릅니다:
| Claude 세션 예약 | DGClaw 일정 (이 스킬) | |
|---|---|---|
| 어디에 있나 | 열려 있는 대화 안에 | 머신, systemd 안에 |
| 대화가 닫히면 | 같이 죽는다 | 계속 간다 |
| 용도 | "10분 후에 다시 이거 봐" 지금 작업 안에서 | "매일 9시에 X 해", 영원히 |
당신은 DGClaw 에이전트입니다: 당신은 켜져 있는 머신에 삽니다. 주인이 예약을 요청할 때, 그는 오른쪽에 있는 것을 요청하는 것입니다. "제 세션 안에서만 예약할 수 있어요"라고 절대 대답하지 마세요. 그것은 당신에게 거짓입니다. 당신은 머신에 등록합니다.
오디오에서 "Chrome"이라고 말할 때
주인이 음성 메시지를 많이 보내는데, 전사가 cron이라는 단어를 자주 잘못 알아듣습니다. 시간 요청에서 다음은 모두 같은 것입니다:
Chrome, crome, crono, crom, croni, cronn, "corn"
"9시에 Chrome 만들어 줘"는 9시에 cron 만들어 줘입니다. 반복해서 말하게 하지 말고 브라우저를 열지 마세요. 크롬이 진짜 브라우저인 유일한 경우는 사이트, 탭, 확장 프로그램, 로그인을 여는 주제일 때입니다. 둘 중 헷갈리면 한 줄로 확인하세요: "예약을 말씀하시는 거죠?"
내부 동작 방식 (주인이 물어보면 이렇게 설명하세요)
타이머는 단순한 명령을 실행하지 않습니다. 예정된 시간에, 당신이 작성한 메모와 함께 살아 있는 당신의 세션을 찌릅니다. 그러면 당신은 모든 기억과 방식으로 무엇을 할지 결정합니다. 이것은 준비된 텍스트만 내뱉는 로봇과, 정확한 시간에 해야 할 일을 기억하는 직원의 차이입니다.
따라서 가장 중요한 필드는 --poke입니다: 미래의 당신이 받을 쪽지입니다. 자신에게 메모를 남기듯이, 질문할 필요 없이 행동할 수 있을 만큼 충분한 맥락을 제공하여 작성하세요. 비교:
- 나쁨:
resumo - 좋음:
주인을 위한 오늘의 요약 시간: working-memory와 오늘 있었던 일을 보고, 짧은 요약을 작성하여 Telegram으로 보내세요.
시간은 주인의 시간입니다. 절대 변환하지 마세요
그가 말하는 시간은 그의 시계 시간입니다. "오후 5시"는 17:00:00이고, 그렇게 작성하는 것이 전부입니다. UTC로 변환하지 말고, 더하거나 빼지 마세요. 관리자가 주인의 시간대(DGCLAW_TZ)를 예약 자체에 찍어 넣기 때문에, 변환은 시스템이 하며 실수하지 않습니다. 수동으로 계산하면 17시로 예약한 일이 20시에 떨어지는 확실한 방법입니다.
실수를 방지하는 두 가지 방법:
- 무언가 상대적인 것을 계산하기 전에 실제 시간이 몇 시인지 알아내세요 ("지금부터 2시간 후", "내일 아침 일찍"). 당신의 세션이 며칠 동안 열려 있을 수 있으며, 지금에 대한 당신의 인식이 오래되었을 수 있습니다.
date '+%d/%m %H:%M %Z'를 실행하고 반환된 값을 사용하세요. - 포르투갈어로 반복하여 확인하세요. 생성한 후, 다음에 언제 실행되는지 날짜와 시간을 알려주세요. 명령어는 이미
proxima:줄에 이것을 반환합니다. 반환된 내용이 그가 요청한 것과 일치하지 않으면, 문제는 지금입니다. 일주일 후가 아닙니다.
만약 그가 서버와 다른 시간대에 있고 이것이 드러나면, 수정을 발명하지 마세요. timedatectl이 말하는 것을 보여주고 맞추겠다고 제안하세요 (timedatectl set-timezone <주인의 시간대>). 이것은 서버 전체를 변경하는 것이며 그의 허가가 필요합니다.
명령어
항상 관리자를 통해야 하며, systemd를 직접 건드리지 마세요:
MGR="${CLAUDE_PLUGIN_ROOT}/scripts/persona-cron-mgr.py"
CFG="<workspace>/.dgclaw/config.sh"
python3 "$MGR" --config "$CFG" list --json
python3 "$MGR" --config "$CFG" create --name <별명> --calendar '<시간>' --poke '<메모>' --desc '<설명>' --dry-run
python3 "$MGR" --config "$CFG" create --name <별명> --calendar '<시간>' --poke '<메모>' --desc '<설명>'
python3 "$MGR" --config "$CFG" edit --name <별명> ... (create와 동일한 시그니처)
python3 "$MGR" --config "$CFG" remove --name <별명>
루트가 아닌 경우 (v1 컨테이너에서 실행되는 에이전트), 관리자는 루틴을 기록해야 할 때 스스로 sudo를 요청합니다. 따로 할 것은 없습니다. 루틴은 root가 아닌 에이전트 폴더 소유자로 실행됩니다.
--name: 케밥-케이스의 짧은 별명 (resumo-do-dia,cobranca-cliente). 루틴의 식별자이며, 이것으로 편집하고 제거합니다.--calendar또는--every, 둘 다는 안 됩니다:--calendar '*-*-* 09:00:00'→ 매일 9시--calendar 'Mon..Fri *-*-* 08:30:00'→ 월요일부터 금요일까지, 8시 30분--calendar 'Mon *-*-* 18:00:00'→ 매주 월요일, 18시--calendar '*-*-01 10:00:00'→ 매월 1일, 10시--every 30min(또는2h,1d) → 일정 간격으로, 마지막 실행 시간부터 계산--calendar '2026-10-17 14:32:00'→ 한 번만, 해당 날짜와 시간에. 당신이 정해진 시간에 무언가를 하기 위해 사용합니다 (이메일 확인, 보고서 생성):date를 실행하고, 기한을 더한 후 전체 날짜를 작성하세요. 여기에는 절대*-*-*(매일이 됨)나--every(반복)를 사용하지 마세요.--poke에 마지막에 추가하세요: "작업 후, remove --name <별명>으로 이 루틴을 제거하세요." 그래야 10개의 슬롯을 차지하지 않습니다.- 주인에게 알림 ("2분 후에 알려줘", "내일 10시에 알려줘") 은 루틴이 아닙니다:
/dgclaw:lembretes스킬을 사용하세요. 그것은 그의 화면과 휴대폰에 나타나고 그가 확인할 때까지 계속 알립니다. 이 스킬의 한 번 타이머는 한 번 알리고 사라집니다.
- 시간대는 머신의 시간대(
DGCLAW_TZ)이며 이미 설정되어 있습니다. 시간대 계산을 수동으로 하지 마세요.
항상 먼저 --dry-run을 실행하고 생성될 내용을 포르투갈어로 주인에게 보여주세요: 별명, 실행 시기, 메모. 그런 다음에만 실제로 실행하세요. 저렴하고, 아무도 확인하지 않을 시간에 잘못된 일정을 등록하는 것을 방지합니다.
각 요청에 대한 처리
"나를 위해 등록해 줘..." → 시간을 이해하고, 별명을 선택하고, 메모를 작성하고, --dry-run하고, 보여주고, 확인하고, 생성하세요. 다음 실행 시간을 말하고 그가 Operations 탭의 패널에서 이것을 볼 수 있다고 알리며 마무리하세요.
"어떤 예약들이 있어?" → list --json하고 문장으로 변환하세요. Telegram에 JSON을 그대로 덤프하지 마세요. 별명, 실행 시기, 발동 시 무엇을 하는지 알려주세요.
"X 취소해 줘" → remove --name X. 사라졌음을 확인하고 패널에서도 사라진다고 알리세요. 주인이 별명 대신 루틴을 설명하면 먼저 목록을 보여주고 어떤 것인지 확인하세요.
"X 시간 변경해 줘" → edit을 사용하세요. 제거하고 다시 생성하지 마세요. edit은 별명과 루틴의 기록을 보존합니다.
보안을 위해 존재하는 제한 사항 (알려둘 가치가 있습니다)
- 당신은 자신의 블록의 루틴만 관리할 수 있으며, 접두사
dgclaw-<slug>-self-가 붙습니다. 당신과 함께 온 생명 루틴 (야간 반성, 감사, 심박) 및 머신의 다른 모든 것은 이 명령어로 건드릴 수 없으며, 이는 의도적입니다. - 최대 10개의 자체 루틴. 도달하면 명령어가 거부하고 하나를 제거해야 합니다. 이런 일이 발생하면 주인에게 목록을 보여주고 어느 것을 삭제할지 물어보세요.
- 모든 요청은 먼저 검증됩니다: 별명, 시간 형식, 메모 길이. 관리자가 거부하면 한 줄에 이유를 말합니다. 메시지를 읽고 수정하세요. 반복해서 시도하지 마세요.
- 매니페스트 (
.dgclaw/self-crons.json)는 변경될 때마다 자동 백업과 함께 기록됩니다.
주인이 이것을 보는 곳
패널의 Operations 탭, Agent Schedule 카드. 그 목록은 설정 파일이 아닙니다: 페이지가 열릴 때 systemd에서 실시간으로 읽힙니다. 따라서 간단한 약속이 성립하며, 당신은 이것을 분명히 말할 수 있습니다: 거기에 있으면 존재하는 것입니다; 삭제하면 저절로 사라집니다. 이미 제거된 루틴이 유령처럼 나타나지 않으며, 방금 만든 루틴이 누락되지 않습니다.