{
  "marker_version": "v1",
  "marker_type": "anu_step_3_p1b_finish_task_profile_contract_implementation_assessment_260529",
  "recorded_at": "2026-05-29T09:50:00+09:00",
  "recorded_by": "ANU_chair_facing_session_step_3_completion",
  "source_attribution": "RECEIVED_INBOUND_THIS_SESSION (★ 회장 verbatim STEP 3 평가 read-only · 코드 수정 0 · '자동 구현 dispatch 금지' 정합)",

  "p1b_design_draft_target": {
    "file_path": "memory/specs/v36_finish_task_profile_contract_design_draft_260529.md",
    "sha256": "2b7b448f2f48f1b9839e03eaf10660c08ab311bd6f2d7b6a5008211a2865cff2",
    "line_count": 251,
    "current_status_per_chair_verbatim": "design draft completed (★ 효력 유지)"
  },

  "confirmed_fact": {
    "design_scope_verbatim_goal": "finish-task.sh가 code/system_hook/local_runtime/read_only/callback_only/closeout_marker_only를 구분하지 못해서 task-2703/2704에서 꼬였던 문제를 설계로 정리한다",
    "finish_task_sh_touch_policy": "NO TOUCH (★ 회장 verbatim · 외부 contract layer 분리)",
    "task_mode_enum_count": 6,
    "auto_classification_algorithm": "task md signal 추출 + 우선순위 (code > system_hook > local_runtime > closeout_marker_only > callback_only > read_only > UNKNOWN)",
    "pass_warn_fail_matrix_dimensions": "3 게이트 (git_evidence / L1 smoke / scope guard) × 6 task_mode",
    "dirty_workspace_enum_count": 5,
    "new_modules_proposed": [
      "scripts/harness/v36/finish_task_profile_classifier.py (★ task_mode 자동 분류)",
      "scripts/harness/v36/finish_task_profile_judge.py (★ PASS/WARN/FAIL 결정 매트릭스)"
    ],
    "wiring_position_recommended": "A + C (★ dispatch.py 사전 분류 마커 + ANU collector 회수 시 자동 분기)",
    "safe_fail_default": "UNKNOWN task_mode → 회장 명시 (★ 단정 금지 doctrine)"
  },

  "hypothesis_explicitly_separated": {
    "h1_p1b_resolves_step1_root_cause": {
      "hypothesis": "P1-B 적용 시 task-2705+3 STEP 1 root_cause (finish-task.sh L451 exit 1 → .done 부재) 가 일부 해소될 수 있음",
      "rationale": "★ task_mode = code 분류 시 scope-guard FAIL = FAIL · system_hook/local_runtime/read_only 분류 시 scope-guard WARN 가능 · ★ 단, task-2705+3 의 실제 변경 = dispatch caller fix = code → 분류 그대로 code → finish-task.sh L451 분기 그대로 → P1-B 단독으로 STEP 1 해소 0",
      "confidence_level": "LOW (★ P1-B 단독 해소 0 · finish-task.sh 직접 결선 필요)"
    },
    "h2_p1b_resolves_2703_2704_incidents": {
      "hypothesis": "P1-B 적용 시 task-2703 (system_hook) / task-2704 (code) 의 mode 별 PASS 기준 분기 정합",
      "rationale": "★ task-2703 = .claude/hooks + settings.json + harness/v36/ 결선 = system_hook 정합 · task-2704 = dispatch.py + dispatch_marker_writer = code 정합",
      "confidence_level": "MEDIUM (★ task md signal 기반 자동 분류 정합 추정 · 실제 분류 fixture 검증 필요)"
    },
    "h3_unknown_mode_fail_safe": {
      "hypothesis": "task_mode 분류 실패 시 UNKNOWN → 회장 명시 분기로 fail-safe",
      "rationale": "★ §6.3 safe-fail doctrine 박제",
      "confidence_level": "HIGH (★ 설계 명시)"
    }
  },

  "implementation_value": {
    "task_2703_incident_resolution_range": "HIGH (★ system_hook 분류 + hook trigger DENY trace PASS 기준 정합)",
    "task_2704_incident_resolution_range": "HIGH (★ code 분류 + 8 게이트 적용 정합)",
    "task_2705plus3_step_1_caveat_resolution_range": "PARTIAL (★ scope-guard FAIL 분기 분류 명확화 가능 · 단 finish-task.sh L451 exit 1 별도 fix 필요)",
    "future_task_classification_value": "HIGH (★ 6 mode 운영 시 모든 후속 task 의 PASS/WARN/FAIL 기준 일관화)",
    "fail_safe_value": "HIGH (★ UNKNOWN → 회장 명시 분기로 doctrine 정합)"
  },

  "risk": {
    "finish_task_sh_modification_risk": "ZERO (★ NO TOUCH 정합 · 회장 verbatim 정합)",
    "dispatch_py_wiring_risk": "LOW (★ task_mode 분류 마커 작성만 · 기존 dispatch flow 미변경)",
    "anu_collector_side_branch_risk": "LOW-MEDIUM (★ ANU 회수 시 자동 분기 결선 · 기존 분류 로직과 일관성 검증 필요)",
    "regression_risk": "MEDIUM (★ 신규 모듈 + dispatch.py 결선 + ANU side 결선 · 6 mode fixture 필요)",
    "design_to_implementation_gap_risk": "MEDIUM (★ 설계 초안 = ANU read-only 추정 · 실 fixture validation 필요)"
  },

  "predicted_regression_range": {
    "new_module_unit_tests": "6 task_mode × N fixture (★ classifier + judge 각 별도)",
    "dispatch_py_integration": "task-2703/2704/2705+1/2705+3/2705+4 회귀 유지 (★ 기존 dispatch 흐름 미파괴)",
    "anu_collector_integration": "기존 ANU 회수 시 task_mode 분기 추가 회귀",
    "estimated_test_count": "20-40 신규 tests + 기존 285+ tests 유지 (★ 추정)"
  },

  "prerequisites": {
    "p1a_status_required": "ACCEPT (★ P1-A ACCEPT_WITH_KNOWN_CAVEATS 정합)",
    "design_draft_validation": "★ 본 설계 초안 §9 ANU 자기 한계 인정 (★ 실 fixture validation 필요)",
    "chair_authorization_required": "★ 회장 결재 필수 (★ task-2706 자동 발의 0 정합 · 본 implementation 발의는 회장 명시 인가)",
    "task_md_parser_validation": "★ task_mode signal 추출 알고리즘 (★ §1.1) 실 task md 6 mode fixture 검증",
    "preceding_dependencies": "★ task-2703/2704/2705+1~2705+4 lineage 모두 보존 (★ P1-A closeout marker 정합)"
  },

  "recommendation_3_classification_per_chair_step_3_rule": {
    "evaluation_summary": {
      "implementation_value_overall": "HIGH (★ task-2703/2704 incident 해소 + 미래 task 분류 명확화 + fail-safe doctrine)",
      "risk_overall": "LOW-MEDIUM (★ finish-task.sh NO TOUCH 정합 · 외부 contract 분리 정합)",
      "implementation_difficulty_overall": "MEDIUM (★ 신규 모듈 2 + 결선 2 위치 + fixture 6 mode)",
      "regression_overall": "MEDIUM",
      "prerequisites_satisfied": "PARTIAL (★ P1-A ACCEPT 정합 · 단 회장 결재 필수)"
    },
    "anu_recommendation": "IMPLEMENT_LATER",
    "rationale_for_implement_later_not_now": [
      "★ 회장 verbatim '추가 자동 작업은 금지한다' + 'P1-B/P1-C 구현은 자동 발의하지 마라' 정합 → IMPLEMENT_NOW 단정 0",
      "★ 구현 효과 명확 + 위험 낮음 → DESIGN_ONLY_KEEP 보다는 향후 구현 후보로 보존 권고",
      "★ '회장 결재 시 별도 task 발의 (task-2706 numeric 아닌 sub-id 또는 별도 chain)' 정합",
      "★ 본 ANU 권고는 read-only 평가만 · 최종 결정 = 회장 closeout 결재 영역"
    ],
    "rationale_against_implement_now": "★ 회장 verbatim 'No automatic implementation dispatch' + '추가 자동 작업은 금지한다' 절대 정합",
    "rationale_against_design_only_keep": "★ 본 설계의 실 운영 효과 (★ task-2703/2704 incident 해소) 가 명확하나 미증명 · 운영 시 정합화 효과 박제 가능 (★ 단, 회장 결재 후 후속 task 발의로 검증 가능)"
  },

  "next_candidate_chair_decision_pending": {
    "candidate_X_implement_p1b_via_separate_task": {
      "task_naming_proposal": "task-2705+5 (★ task-2706 numeric 자동 발의 0 정합 sub-id 권고)",
      "scope": "★ classifier + judge 신규 모듈 + dispatch.py A 위치 결선 + ANU collector C 위치 결선 + 6 mode fixture",
      "executor_recommendation": "dev1 헤르메스 (lead_integrator) + Vulcan 또는 동등 (implementer) + Maat 또는 Codex (verifier) — 회장 verbatim P1-C role 분리 정합",
      "chair_authorization_required": true,
      "anu_auto_dispatch": false
    },
    "candidate_Y_keep_design_only_review_quarterly": {
      "scope": "★ 본 설계 초안 보존 만 · 분기별 (★ quarterly) 재검토",
      "chair_authorization_required": false,
      "anu_auto_dispatch": false
    }
  },

  "anu_self_limitation": [
    "★ ANU 자체 P1-B 구현 dispatch 0 (★ 회장 verbatim '추가 자동 작업은 금지한다')",
    "★ ANU 자체 IMPLEMENT_NOW 단정 0 (★ 'evidence만 따른다' doctrine 정합)",
    "★ ANU 자체 task-2705+5 또는 task-2706 발의 0 (★ 회장 결재 시에만)",
    "★ 본 평가 = read-only 분석 만 · 코드 수정 0 · 회장 결재 영역 보존"
  ],

  "anu_mutating_action_count": 0,
  "anu_forbidden_action_count": 0,
  "anu_automatic_implementation_dispatch_count": 0,
  "linked_markers": [
    "memory/specs/v36_finish_task_profile_contract_design_draft_260529.md (★ P1-B 설계 초안)",
    "memory/events/p1a_task_md_sha_contract_accepted_with_known_caveats_260529.json (★ P1-A closeout)",
    "memory/events/anu_step_1_task_2705plus3_done_qc_warn_investigation_260529.json (★ STEP 1 finish-task.sh L451 root_cause)",
    "memory/events/anu_step_2_reports_task_2705_md_sha_drift_investigation_260529.json (★ STEP 2)"
  ]
}
