/project add "프로젝트명"프로젝트 생성 → 워크플로우 시작
/task add "할일" → /task done 번호태스크 관리 → 자동 전진
/leads → 이메일 생성 → 발송리드 발굴에서 전환까지
대시보드 홈 (/) 접속오늘 태스크 + 전체 현황 확인
/tasks 페이지에서 체크박스태스크 완료/상태 변경
/projects 페이지에서 카드 클릭프로젝트 상세 + 워크플로우 확인
/meeting <녹음> --project <name>회의록 + 태스크 + GitHub + Discord 원툴
/project-update "메시지" --type=progress진행/결정/블로커 팀 브로드캐스트
/team-sync --pushgit push/pull + 큐 drain + AUDIT 알림
.claude/rules/three-tools.md/meeting— 미팅 후처리입력
오디오/전사 파일
출력
플래그
--project --auto-tasks --dry-run --resume --auto-advance --skip-stt --skip-github --no-broadcast/project-update— 진행 브로드캐스트📝 텍스트만 OK입력
"메시지" (필수) + --type + --project
출력
플래그
"메시지" [--type=status|milestone|decision|blocker|progress] [--project=name]/team-sync— 코드·큐 동기화입력
(자동 훅) 또는 수동
출력
플래그
--push / --pull / --status-only / --docs-only / --force / --auto-commit의사결정 트리
무엇을 하려는가? ├─ 미팅 녹음이 있다 ............. /meeting ├─ 진행/결정/블로커 공지 ........ /project-update ├─ git/큐 동기화 ................ /team-sync ├─ 태스크 1건 할당 .............. /task add "제목" --owner=이름 └─ 신규 프로젝트 시작 ........... /project-launch
| 훅 | 이벤트 | 트리거 | 출력 | 쿨다운 |
|---|---|---|---|---|
| post-meeting-commit.sh | PostToolUse (Edit/Write) | **/meetings/YYYYMMDD-*.md 파일 편집 | stderr 배너 — /meeting --commit-minutes 안내 | 없음 (fire-and-forget) |
| team-sync-context.sh | UserPromptSubmit | 모든 사용자 프롬프트 제출 | 본인 os_command_queue pending top 3 priority ASC 주입 | 5분 |
| pm-orchestrator-preflight.sh | SubagentStart | pm-orchestrator 에이전트 진입 | team/live 프리페치 → 활성 프로젝트 top5 + workflow_stage 주입 | 10분 |
MENTION_ALLOWLIST (opt-in 7종)
task_assignedproject_kickoffquotation_pending_approvalincentive_deadline_warninggov_support_deadline_d3project_stale_warningproject_owner_changed목록 외 타입이 mentionRecipients:true로 호출되면 강제 false + warn 로그.
남용 방지
Sprint 3 마이그레이션 20260419_expand_command_queue이drain_command_queue(p_dry_run BOOLEAN) RPC와 pg_cron 15분 주기 스케줄을 등록했다. 1주 dry-run 검증 후실제 UPDATE 모드로 전환한다.
현재 cron job 조회
SELECT jobname, schedule, command, active FROM cron.job WHERE jobname = 'drain-command-queue-dry-run';
최근 실행 이력 (5건)
SELECT start_time, status, return_message FROM cron.job_run_details WHERE jobid = (SELECT jobid FROM cron.job WHERE jobname='drain-command-queue-dry-run') ORDER BY start_time DESC LIMIT 5;
1주 검증 후 실제 실행 모드로 전환
SELECT cron.alter_job( (SELECT jobid FROM cron.job WHERE jobname='drain-command-queue-dry-run'), command => 'SELECT public.drain_command_queue(false);' );
⚠ 실행 전 최근 7일 로그에 FAIL 0건 + expired/timeout 카운트가 기대치 이내인지 확인.
company-claude 최초 셋업 시 아래 13단계를 순서대로 진행. 3~6번은 대표가 공유한 시크릿이 필요하며, 8번은 discord:access 스킬로 대표 승인 후 완료된다. 11~13번(2026-04-24 추가)은 설치 이후 실사용 시작을 위한 단계 — 이미 설치 완료된 사원은 11부터 진행.
company-claude clone
git clone https://github.com/qjc-office/company-claude ~/qjc-office/company-claudeinstall.sh 실행
cd ~/qjc-office/company-claude && ./install.shWORKER_API_KEY 입력
~/.claude/settings.local.json (install.sh가 안내)qjc-member.json 생성
~/.claude/qjc-member.json — member_id/name/roleGitHub SSH/PAT 설정
ssh-keygen + GitHub 계정 등록Supabase MCP 인증
Claude Code에서 /mcp → supabase authenticategws CLI 인증
gws auth login -s drive,sheets,docs,chatDiscord bot 채널 allowlist
/discord:access 스킬 실행 → 대표(정상록)가 pairing 승인첫 /team-sync --pull
Claude Code 세션 내에서 실행훅 3종 로드 확인
새 세션 시작 → team-sync-context (UserPromptSubmit) + changelog-briefing (SessionStart) 배너 stderr 노출대시보드 /guide 북마크
qjc-internal.vercel.app/guide 접속 → 3탭(워크플로우/시스템/PM 스킬) 모두 확인 → 브라우저 북마크. 모르는 명령어는 먼저 여기부터.WORKER_KEY_{이름} 발급·설정 상세
대표가 Vercel/Supabase에서 WORKER_KEY_KWANGO 또는 WORKER_KEY_SOYOUNG 생성 → Bitwarden으로 전달 → ~/.claude/.env.secrets에 export. 검증: bash ~/qjc-office/qjc-os-스킬/scripts/verify-env-sync.sh (env-sync.md:26-43 참조)첫 스킬 실행 권장 순서
1) /team-sync --pull 2) /sync-all --check-only 3) /task list @본인 4) /checkin 5) (업무) /pm prd, /meeting 등 6) /checkout 7) /save-workchangelog-briefing.sh가 최근 Phase 5 업데이트를 자동 공지한다.코드(현장)와 문서(도면) 간 드리프트를 자동 감지한다. 건물 시공에서 도면과 현장이 맞지 않으면 감리관이 경고하듯, CLAUDE.md·rules/·PRD가 코드보다 10커밋 이상 뒤쳐지면 SessionStart 배너가 알린다.
claudemd-drift-check.shSessionStartpost-merge-sync-docs-check.shPostToolUse (Bash)commands-drift-check.shSessionStartQJC_DOC_SYNC_DISABLED=1로 3종 훅 일괄 비활성화 (alert fatigue 발생 시 임시 사용). 판정 로그는 ~/.claude/cache/doc-sync-metrics/*.jsonl에 누적.훅이 임의 git 레포 경로에서 실행될 때 악성 .git/config의 core.fsmonitor 등을 통한 RCE (CVE-2022-24765 클래스) 공격 표면을 차단한다.
export GIT_CONFIG_NOSYSTEM=1 GIT_CONFIG_GLOBAL=/dev/null — system/global config 무시git -c safe.directory=$CWD — 소유권 검증 엄격 모드-c protocol.file.allow=never -c protocol.ext.allow=never — 위험 프로토콜 차단git -C $CWD 명시 지정 (cd 없앰, 실행 컨텍스트 고정).env* / *secret* / *.pem / *.p12 → [REDACTED]비유: 경비실 자물쇠가 밤새 눌려있다면 다음 날 경비원이 들어갈 수 없다. SIGKILL/crash/OOM으로trap EXIT이 실행되지 못하면 lock 디렉토리가 영구 잔존하여 이후 세션에서 배너가 영원히 출력되지 않는다.
# mkdir lock 획득 직전에 10분 초과 stale lock 강제 제거
find "$STAMP_DIR" -maxdepth 1 -type d -name "*.lock.d" -mmin +10 \
-exec rm -rf {} \; 2>/dev/null
mkdir "$LOCK_DIR" 2>/dev/null || exit 0
trap 'rmdir "$LOCK_DIR" 2>/dev/null' EXIT-mmin +10)~/.claude/hooks/ + dotclaude + company-claude .claude/hooks/.상황에 따라 어떤 순서로 기능을 사용하면 좋은지 안내합니다.
프로젝트 생성 → 기획 → 태스크 → 완료까지
CLI 팁
모든 스킬은 인자 없이 실행하면 대화형으로 안내합니다. 예: /project, /task
웹 팁
대시보드 주소: qjc-internal.vercel.app. 모든 변경은 실시간 반영됩니다.
자동화 팁
PRD 생성, 태스크 추가/완료 시 워크플로우가 자동으로 전진합니다. 수동 개입 최소화.