# Invocation Contract ## 1. Minimum Runtime Input ```yaml runtime_id: viewpoint-discussion-distillation source_document_path: source_type: round_boundary_rule: intended_use: viewpoint-development output_workspace_path: lossless_requirement: true allow_topic_overlap: true writing_handoff_required: optional model_mining_required: optional no_simulation_requirement: true human_confirmation_required_before: - final_topic_map - material_routing - source_disposable_claim - writing_workbench_handoff - downstream_task_routing whole_source_gestalt_required_when: - source_is_coherent - source_fits_high_context_participant whole_source_gestalt_exception_requires_record: true ``` ## 2. Run Directory Contract ```text {workspace}/ README.md 00-source-map.md 01-topic-map.md 02-material-routing-log.md 03-run-notes.md topics/ audits/ model-mining/ handoff/ invocations/ ``` ## 3. Invocation Directory Contract ```text invocations/ whole-source-gestalt-reviewer/ conversation-segmentation/ topic-discovery-router/ evidence-routing-and-topic-doc-builder/ lossless-coverage-auditor/ ``` Subdirectories may be split by range: ```text conversation-segmentation/R01/ conversation-segmentation/R02/ ``` ## 4. Whole-Source Gestalt Output Contract `whole-source-gestalt-reviewer/returned-output.md` must include: ```text - participant identity and invocation metadata - source document path and source version note - coherence judgment: coherent / mixed / fragmented - coherence rationale and split recommendation if mixed or fragmented - global topic portrait - main structure or candidate layers - core tensions and governing questions - model-evolution line - parent/child/tool/case/action-layer distinctions - chunk-first distortion risks - segmentation guidance for downstream workers - confidence notes and unresolved structure questions ``` This output is orientation and constraint material. It is not a substitute for source block indexing, evidence routing, or coverage audit. ## 5. Blocked State Use this state when the run cannot accept a participant output: ```text blocked_waiting_for_participant_output ``` Record the reason in `03-run-notes.md` or the relevant invocation directory.