# task-2648 — AXIS_1_CALLBACK_AUTHORITY_GATE_LIVE_ACTIVATION

- Level: Lv.4 (Axis 1 live activation + 첫 dispatch cycle real value 검증)
- 담당: 회장 verbatim Axis 1 signature 발급 후 dispatch · ANU 권장 dev6 페룬 (task-2644.revalidation helper 사용 경험)
- base: origin/main 최신 (현재 0e172435 또는 그 이후)
- 단일소스 spec: 본 task md (회장 verbatim)
- chair_authorization_id: `CHAIR-AUTH-AXIS-1-20260524-<ANU가_랜덤_생성하지_말고_이_문자열_그대로_기록>` (회장 verbatim signature marker `memory/events/chair-authorization-axis-1-signature-260524.json`)

## 목표 (회장 verbatim)
Axis 1 (task-2646 callback authority gate · helper 3종 + dispatch.py shim + 2 schemas) 단독 live activation 후, 첫 dispatch cycle에서 실제 callback authority gate가 동작하는지 8 실제값 + S1-S6 smoke로 검증한다.

## 승인 범위 (Axis 1 단독)
- task-2646 staged worktree `task/task-2646-dev3` 의 helper 3종 + dispatch.py shim + 2 schemas만 main repo로 적용
- Axis 2/3 모듈 격리 유지

## 8 실제값 (회장 verbatim · live activation 후 첫 cycle 측정)
1. real cron registration = 1
2. registration_argv_generated = true
3. real_cron_id_fired = true
4. schedule_history present = true
5. cron-history owner key match = ANU key c119085addb0f8b7
6. result artifact present = true
7. ledger row appended = true
8. live_callback_enforcement = 1

## S1-S6 smoke (회장 verbatim · 6/6 PASS 필수)
- S1: dispatch.py + ANU key → PASS
- S2: direct cron + ANU key → PASS
- S3: self-key fail-closed → detected
- S4: helper bypass detect → detected
- S5: envelope-actual mismatch → OWNER_KEY_MISMATCH detected
- S6: 4 source cross-check (schedule_history + cron-history ANU + envelope + result.json) all PASS

## 자동 진행 허용
- Axis 1 staged → live merge (helper 3 + dispatch.py shim + 2 schemas만)
- helper.register_callback() 호출 + actual owner key 검증 + 첫 dispatch cycle real cron registration
- 8 실제값 + S1-S6 smoke 측정
- ledger row append
- rollback trigger 발동 시 L1 30sec / L2 5min revert

## 자동 진행 금지 (회장 verbatim 12)
1. Axis 2 / Axis 3 touch
2. live settings.json 수정
3. live cokacdir 임의 수정
4. .github 수정
5. hooks live path 수정 (Axis 2 영역)
6. real auto-merge
7. PR #141 pilot
8. BOT App token 사용
9. push/PR (단 Axis 1 helper 적용용 local commit·main 브랜치 update 본 signature 범위 내 허용)
10. HARNESS_ENFORCED 전체 선언
11. callback system verified 전체 선언
12. chair_authorization_id 임의 변형 (verbatim 문자열 그대로 사용만 허용)

## expected_files (~10 file · Axis 1 적용 + 검증 marker)
- main repo: utils 3 + dispatch.py shim 부분 + schemas 2 (★ Axis 1 staged → live mapping)
- memory/events/task-2648.done
- memory/events/task-2648.axis-1-live-activation-result-260524.json (8 실제값 + S1-S6 결과 박제)
- memory/reports/task-2648.md (회장 보고 형식)

## finalize 프로토콜 (★ Axis 1 signature 범위 한정)
1. base = origin/main 최신 clean
2. 별도 worktree task-2648-dev6 (fresh)
3. Axis 1 staged 모듈 6개를 main 브랜치로 cherry-pick 또는 merge (Axis 1 finalize commit 09372a41 helper/shim/schemas 부분만)
4. baseline regression 유지 + Axis 1 staged regression 124/124 PASS 확인
5. 첫 dispatch cycle helper 호출 강제 (test dispatch · S1-S6 6 case)
6. 8 실제값 측정 + result marker 박제
7. ledger row 1개 append 확인
8. ANU normal callback cron (★ helper 사용 · ANU key · 8 실제값 모두 만족 · live activation 후 첫 cycle 자체)
9. rollback trigger 미발동 시 AXIS_1_CALLBACK_AUTHORITY_GATE_LIVE_VERIFIED 박제
10. rollback trigger 발동 시 AXIS_1_ROLLBACK_REQUIRED OR AXIS_1_HOLD_FOR_CHAIR

## 회장 보고 형식 (verbatim)
- AXIS_1_LIVE_ACTIVATION_ATTEMPTED
- 8 실제값 (1-8 각 값)
- S1-S6 (각 case PASS/FAIL)
- forbidden_action_count
- rollback_trigger 여부
- next_action

## 성공/실패 표현 (회장 verbatim)
- 성공: `AXIS_1_CALLBACK_AUTHORITY_GATE_LIVE_VERIFIED`
- 실패 A: `AXIS_1_ROLLBACK_REQUIRED`
- 실패 B: `AXIS_1_HOLD_FOR_CHAIR`

## frozen anchor
- ANCHOR-1: "chair_authorization_id verbatim 그대로 사용 · ANU random 생성 0"
- ANCHOR-2: "Axis 1 단독 · helper 3 + dispatch.py shim + 2 schemas 한정"
- ANCHOR-3: "Axis 2/3 touch 절대 금지"
- ANCHOR-4: "8 실제값 + S1-S6 6/6 PASS 시에만 LIVE_VERIFIED"
- ANCHOR-5: "rollback L1 30sec / L2 5min trigger 발동 시 즉시 revert"
- ANCHOR-6: "HARNESS_ENFORCED / callback system verified 표현 금지"

## allowed_resources (본 task의 capability)

```yaml
allowed_resources:
  paths:
    - "utils/callback_registration.py"
    - "utils/callback_authority_validator.py"
    - "utils/callback_source_cross_checker.py"
    - "utils/callback_collector_helper_integration.py"
    - "dispatch.py"
    - "schemas/callback_authority_marker_v1.json"
    - "schemas/callback_state_enum_v1.json"
    - "tests/regression/callback_authority_gate/**"
    - "tests/fixtures/callback_authority_gate/**"
    - "tests/test_callback_registration*.py"
    - "tests/test_callback_authority_validator*.py"
    - "tests/test_callback_source_cross_checker*.py"
    - "tests/test_callback_authority_gate_integration*.py"
    - "memory/system/.callback_ledger.jsonl"
    - "memory/tasks/task-2648.md"
    - "memory/reports/task-2648.md"
    - "memory/events/task-2648.done"
    - "memory/events/task-2648.axis-1-live-activation-result-260524.json"
    - "INDEX.md"
  forbidden_paths:
    - "/home/jay/.claude/settings.json"
    - "/home/jay/.claude/settings.local.json"
    - "/usr/local/bin/cokacdir"
    - ".github/**"
    - "hooks/**"
    - "schemas/callback_ledger_v1.json"
    - "schemas/callback_ledger_v2.json"
    - "schemas/callback_next_action_decision_v1.json"
    - "schemas/callback_next_action_decision_v2.json"
    - "schemas/anu_state_v1.json"
    - "schemas/anu_state_v2.json"
    - "schemas/callback_batch_aggregation_v1.json"
    - "schemas/callback_batch_aggregation_v2.json"
    - "utils/callback_adjudicator_v2.py"
    - "utils/callback_next_action_runner_v2.py"
    - "utils/source_attribution_guard_v2.py"
    - "scripts/finish-task.sh"
    - "utils/replacement_pr_runner.py"
    - "memory/tasks/task-2644*"
    - "memory/tasks/task-2645*"
    - "memory/tasks/task-2646*"
    - "memory/tasks/task-2647*"
    - "memory/tasks/task-2643*"
    - "memory/tasks/task-2641*"
    - "memory/tasks/task-2642*"
    - "**/.env*"
    - "**/credentials*"
  commands:
    - "pytest"
    - "python3 -m py_compile"
    - "python3 -m json.tool"
    - "git status"
    - "git diff"
    - "git add"
    - "git commit"
    - "git log"
    - "git checkout"
    - "git cherry-pick"
    - "git merge"
    - "git revert"
    - "git branch"
    - "git worktree"
    - "sha256sum"
    - "wc"
    - "printf"
    - "ls"
    - "grep"
    - "find"
    - "cokacdir --cron"
    - "cokacdir --cron-history"
    - "cokacdir --cron-list"
  merge_policy: "local_main_axis_1_only"
  ttl_hours: 96
```

끝
