Documentation index
booktx uses a source-first, profile-aware lifecycle: initialize a source project, extract shared source state, create a profile, approve its context, translate through profile-local tasks, validate, and build output.
Onboarding
Operating workflows
Formats and maintenance
Reference
- Quickstart
- Project layout
- Profiles
- Concepts
- Commands
- Human workflows
- Context
- Rules
- Source of truth and organization doctor
- Same-book multi-profile context sync
- Source-analysis review queue
- Typical workflow
- Context question lifecycle
- Glossary commands
- Chapter note commands
- Binding, advisory, and disabled glossary entries
- Glossary phrase collisions
- Starting the next book in a series
- Series workflows
- Agent workflow
- 1. Choose the access mode
- 2. Read the profile-local context
- 3. Request a task
- 4. Fill the durable ingest file
- 5. Lint, then submit the result
- 6. Validate and build
- 6b. Refresh editor QA indexes
- 6c. Resume an existing bounded todo
- 7. Longer bounded runs
- Guardrails
- Finish a single large chapter
- Context approval hard stop
- EPUB inline XHTML translation rule
- 7b. Quality review pass workflow
- Judge / selection workflow
- Isolated judge workflow
- Grammar judge revision profiles
- First-pass translation quality
- Translation contract
- Translation store policy
- Markdown handling
- EPUB handling
- Architecture
- API reference
BooktxErrorProjectcanonical_language_key()context_sync_ledger_path()create_profile()current_source_sha256()detect_format()extracted_source_sha256()find_source_file()global_termbase_dir()global_termbase_path()identity_path()init_project()init_source_project()judge_ingest_block_path()judge_ingest_decisions_path()judge_ingest_dir()judge_ingest_json_path()judge_task_dir()judge_task_path()judge_task_source_block_path()list_profiles()load_context_sync_ledger()load_identity()load_judge_task()load_manifest()load_names()load_profile_config()load_profile_project()load_profile_root_marker()load_project()load_source_project()load_translation_review_task()load_translation_selection_ledger()load_translation_store()load_translation_task()load_translation_version_ledger()migrate_current_project()profile_config_path()profile_dir()profile_root_marker_path()profile_source_analysis_markdown_path()profile_source_analysis_path()profile_source_cache_dir()profile_termbase_path()profile_termbase_snapshot_path()project_source_id()project_source_id_or_unavailable()project_source_sha256()project_storage_root()project_termbase_path()protected_terms_sha256()resolve_profile_name()resolve_stored_path()review_todo_dir()review_todo_json_path()review_todo_markdown_path()source_analysis_decisions_path()source_analysis_markdown_path()source_analysis_path()source_config_path()stored_path()termbase_language_keys()translation_ingest_block_path()translation_ingest_dir()translation_ingest_path()translation_review_dir()translation_review_ingest_block_path()translation_review_source_block_path()translation_review_task_path()translation_selection_ledger_path()translation_source_index_path()translation_source_target_index_path()translation_store_path()translation_store_v3_manifest_path()translation_store_v3_root()translation_target_index_path()translation_task_concordance_json_path()translation_task_concordance_markdown_path()translation_task_dir()translation_task_path()translation_task_source_block_path()translation_todo_dir()translation_todo_json_path()translation_todo_lifecycle_path()translation_todo_markdown_path()translation_validation_receipt_dir()translation_validation_receipt_path()translation_version_ledger_path()translations_dir()write_context_sync_ledger()write_identity()write_judge_task()write_manifest()write_names()write_profile_config()write_profile_root_marker()write_translation_review_task()write_translation_selection_ledger()write_translation_store()write_translation_task()write_translation_version_ledger()AgentNextActionApplicableTermbaseEntrySnapshotApplicableTermbaseExampleSnapshotApplicableTermbaseFindingSnapshotApplicableTermbaseUsageRuleSnapshotChunkContextSyncLedgerContextSyncLedgerEntryContextSyncLedgerFindingEpubNavigationRefEpubOutputConfigEpubSpanRefEpubTemplateDataIndexesConfigJudgeCandidateEvidenceJudgeDecisionJudgeTaskJudgeTaskCandidateJudgeTaskFindingJudgeTaskRecordManifestManifestSourceNamesFilePlaceholderProfileConfigProfileIdentityConfigProfileRootMarkerProjectConfigQualityReviewConfigRecordReviewContextRecordReviewPassConfigReviewTodoReviewTodoChapterReviewTodoPassSelectionConfigSourceAnalysisConfigSourceAnalysisGenericLemmasConfigSourceAnalysisPatternsConfigSourceConfigStatusTotalsStoredTranslationRecordStoredTranslationRecordV2SubmissionQualityConfigTranslatedChunkTranslatedRecordTranslationCandidateTranslationIdentityTranslationReviewCandidateTranslationReviewTaskTranslationReviewTaskRecordTranslationSelectionLedgerTranslationStoreTranslationStoreV2TranslationSubversionLedgerEntryTranslationTaskTranslationTaskContextRecordTranslationTaskRecordTranslationTodoTranslationTodoChapterTranslationTodoLifecycleTranslationTrackLedgerEntryTranslationVersionLedgerChapterContextContextMarkdownDriftContextQuestionGlossaryEntryStyleProfileTranslationContextanalyze_context_markdown_drift()apply_answer_to_context()baseline_payload()baseline_sha256()chapter_contexts_equivalent()chapter_map_path()chapter_notes_before_target()clear_context_readiness()context_history_dir()context_history_views_dir()context_markdown_path()context_path()default_context()ensure_context_markdown_safe_to_overwrite()ensure_context_view_snapshot()hydrate_chapter_contexts_from_chapter_map()load_context()merge_chapter_contexts()next_question_id()parse_context_markdown_chapter_notes()render_context_markdown()seed_glossary()seed_questions()unapproved_required_questions()unresolved_required_questions()upsert_chapter_context()write_context()write_context_markdown()ProseSpanpack_chunks()segment_spans()segmenter_metadata()spans_to_chunks()SKIP_BLOCK_TYPESTRANSLATABLE_INLINE_PARENTSProtectResultprotect_names()protect_tags()restore()span_token_ids()FRONT_MATTER_REMarkdownExtractionbuild_markdown()extract_markdown()split_front_matter()EpubExtractionbuild_epub()extract_epub()read_epub()assert_source_sha()build_raw_block_index()load_epub_template_from_manifest()sha256_path()structured_to_navigation_refs()structured_to_span_refs()structured_to_text2epub_manifest()ChapterChapterMapdetect_chapters()load_chapter_map()write_chapter_map()EffectiveTranslationsFindingSeverityValidationReportload_effective_translated_chunks()load_validation_context()review_coverage_findings()strict_load_translated()validate_chunk_pair()validate_project()validate_record_pair()write_report()BuildErrorBuildResultbuild_project()records_to_span_text()ChapterProgressChunkProgressContextStatusEpubAuditSummaryProfileOverviewProfilesOverviewRecordRangeSourceStatusStatusBundleStatusRuntimeIndexStatusSnapshotStatusTotalsTrackCoverageVersionCoveragebuild_profiles_overview()build_status_snapshot()coverage_status()selected_chapter()TaskPathscreate_translation_task()limit_records_by_words()make_task_id()project_relative()select_translation_record_ids()task_paths()write_block_ingest_template()write_ingest_template()write_task_source_block()ParsedSubmissionparse_block_submission()parse_json_submission()parse_tsv_submission()read_submission_file()resolve_submission()AcceptResultSubmissionQualityAuditResultSubmissionValidationErrorSubmittedRecordaccept_one_record()accept_translation_records()audit_submission_quality()submission_quality_findings()validate_submitted_records()format_chunk_span()print_status_human()print_translate_task()render_submission_failures()utc_timestamp()write_text_atomic()write_json_model_atomic()write_json_text_atomic()RecordRefVersionRefcanonical_record_id()format_version_ref()parse_record_ref()parse_version_ref()resolve_record_range()EffectiveCandidateErrorEffectiveCandidateSelectionMigrationResultactive_candidate()active_review_candidate()effective_candidate_selection()effective_target_candidate()ensure_store_record()find_candidate()find_review_candidate()legacy_store_to_v2()migrate_legacy_store()resolve_review_base()review_candidate_is_stale()review_chain_is_stale()review_chain_refs()sha256_text()upsert_translation_version()VersionResolutioncanonical_json_sha256()current_baseline_sha256()current_context_sha256()default_identity()fork_current_context()lookup_version()resolve_current_version()resolve_identity()select_active_version()set_track_label()
- Development
- Releasing
- Mypy status
- Maintenance
- Troubleshooting
- Multiple profiles or missing profile
- Profile and submission mismatches
- Legacy paths after migration
- Stale tasks and context
- Source drift and missing chunks
- Validation and build
- Context and series preparation
- EPUB output policy
- Bounded todos
- source_directive_in_target
- Glossary and termbase
- Judge ingest
- Changelog