{ "schema": "hololake.web-novel-open-source-donor-assessment/v1", "record_id": "HLP-WEBNOVEL-OSS-DONORS-001", "state": "PRIMARY_SOURCE_CODE_REVIEW_COMPLETE_IMPLEMENTATION_BOUNDARY_LOCKED", "reviewed_at": "2026-08-18", "download_route": { "relay": "BS-SG-003", "relay_role": "SINGAPORE_OVERSEAS_SOURCE_DOWNLOAD_RELAY", "local_transport": "DIRECT_SSH_FROM_LOCAL_MACHINE", "external_drive_root": "/Volumes/JZAO/HoloLake/development/网文行业开源源码调研-20260818", "repositories_are_clean_git_worktrees": true }, "rule": "READ_REAL_SOURCE_AND_EXTRACT_AUDITABLE_ENGINE_PATTERNS_NEVER_REPLACE_FUNCTIONAL_ENGINES_WITH_STATIC_DEMOS", "candidates": [ { "name": "Kindling", "upstream": "https://github.com/smith-and-web/kindling", "commit": "1b83cb28eca84e76282d0aa6838d68b5786ecf5f", "branch": "main", "observed_license": "MIT", "role": "PRIMARY_LOCAL_FIRST_AUTHOR_ENGINE_DONOR", "inspected_paths": [ "src-tauri/src/db/schema.rs", "src-tauri/src/commands/crud.rs", "src-tauri/src/commands/snapshot.rs", "src-tauri/src/commands/export.rs", "src-tauri/src/parsers", "src/lib/components/ScenePanel.svelte", "src/lib/components/BeatView.svelte" ], "observed_engine": [ "TAURI_RUST_SQLITE_LOCAL_FIRST_STORAGE", "PROJECT_CHAPTER_SCENE_BEAT_HIERARCHY", "CHARACTER_LOCATION_REFERENCE_RELATIONS", "500MS_DEBOUNCED_SAVE_WITH_UNMOUNT_FLUSH", "TRANSACTIONAL_REORDER_AND_RESTORE", "COMPRESSED_PROJECT_SNAPSHOTS", "MARKDOWN_DOCX_EPUB_SCRIVENER_IMPORT_EXPORT" ], "decision": "ADOPT_ARCHITECTURAL_PATTERNS_AND_REIMPLEMENT_HOLOLAKE_ACCOUNT_SCOPED_ENGINE" }, { "name": "novelWriter", "upstream": "https://github.com/vkbo/novelWriter", "commit": "416078506bbd690c5ad2bf736ec363ed2c0db89c", "branch": "main", "observed_license": "GPL-3.0-or-later_WITH_ADDITIONAL_ASSET_LICENSES", "role": "MATURE_AUTHOR_WORKFLOW_REFERENCE", "inspected_paths": [ "novelwriter/core/storage.py", "novelwriter/core/document.py", "novelwriter/core/tree.py", "novelwriter/core/index.py", "novelwriter/core/sessions.py", "novelwriter/manuscript" ], "observed_engine": [ "HUMAN_READABLE_PROJECT_STORAGE", "HANDLE_BASED_PROJECT_TREE", "INDEXED_TAGS_REFERENCES_AND_BACK_REFERENCES", "FILTERED_MANUSCRIPT_BUILDS", "WRITING_SESSION_WORD_AND_TIME_STATISTICS" ], "decision": "STUDY_CONCEPTS_ONLY_DO_NOT_COPY_GPL_SOURCE" }, { "name": "Manuskript", "upstream": "https://github.com/olivierkes/manuskript", "commit": "7abdba31abbd97bfdd80e72786fe2191d7f42d4a", "branch": "develop", "observed_license": "GPL-3.0", "role": "PLANNING_AND_STORY_BIBLE_REFERENCE", "inspected_paths": [ "manuskript/models/outlineItem.py", "manuskript/models/characterModel.py", "manuskript/models/worldModel.py", "manuskript/load_save/version_1.py", "manuskript/exporter" ], "observed_engine": [ "NESTED_OUTLINE_WITH_COMPILE_FLAGS", "CHARACTER_WORLD_AND_PLOT_MODELS", "TEXT_REVISIONS_ON_CHANGE", "RECURSIVE_WORD_TARGET_AGGREGATION", "SPLIT_MERGE_AND_MULTI_FORMAT_EXPORT" ], "decision": "STUDY_CONCEPTS_ONLY_DO_NOT_COPY_GPL_SOURCE" }, { "name": "novel-plus", "upstream": "https://github.com/201206030/novel-plus", "commit": "d9f3f464a6bac1f59652955d0901f05438010190", "branch": "develop_xxy", "observed_license": "Apache-2.0", "role": "PRIMARY_CHINESE_WEB_NOVEL_EDITORIAL_AND_OPERATIONS_DONOR", "inspected_paths": [ "novel-front/src/main/java/com/java2nb/novel/controller/AuthorController.java", "novel-front/src/main/java/com/java2nb/novel/service/impl/BookServiceImpl.java", "novel-admin/src/main/java/com/java2nb/novel/controller", "novel-common/src/main/java/com/java2nb/novel/entity", "doc/sql/novel_plus.sql" ], "observed_engine": [ "AUTHOR_AND_PEN_NAME_IDENTITY", "AUTHOR_OWNERSHIP_CHECKS_BEFORE_MUTATION", "BOOK_CHAPTER_CONTENT_SEPARATION", "ATOMIC_CHAPTER_WORD_COUNT_AND_LATEST_CHAPTER_UPDATES", "BOOK_AND_COMMENT_REVIEW_STATUSES", "RECOMMENDATION_SLOTS_RANKING_READING_HISTORY_AND_SUBSCRIPTIONS", "DAILY_AND_MONTHLY_AUTHOR_INCOME_STATISTICS" ], "decision": "ADOPT_DOMAIN_AND_TRANSACTION_PATTERNS_WITHOUT_IMPORTING_THE_SERVER_APPLICATION" }, { "name": "Editoria", "upstream": "https://github.com/Coko-Foundation/editoria", "commit": "d22b40bda3dd6519e45a56fe1b3bafaa339832b5", "branch": "main", "observed_license": "MIT", "role": "EDITORIAL_TEAM_AND_PRODUCTION_WORKFLOW_REFERENCE", "inspected_paths": [ "app/components/bookbuilder/src/queries/getBook.js", "app/components/bookbuilder/src/queries/getBookTeams.js", "app/components/bookbuilder/src/queries/updateTeam.js", "app/components/bookbuilder/src/queries/updateWorkflowState.js", "app/components/bookbuilder/src/queries/unlockBookComponent.js", "app/components/bookbuilder/src/ConnectedBookBuilder.js" ], "observed_engine": [ "BOOK_COMPONENT_WORKFLOW_STAGES", "OBJECT_SCOPED_TEAMS_AND_ROLES", "EDIT_LOCKS_AND_ADMIN_UNLOCK", "ORDERED_BOOK_DIVISIONS_AND_COMPONENTS", "WORD_INGEST_AND_MULTI_FORMAT_EXPORT" ], "decision": "ADOPT_WORKFLOW_LOCK_AND_ROLE_SEMANTICS_ONLY_REPOSITORY_IS_CLIENT_ONLY_AND_DEPENDS_ON_EXTERNAL_KETIDA_SERVER" }, { "name": "Wax ProseMirror", "upstream": "https://github.com/Coko-Foundation/wax-prosemirror", "commit": "6cc46bfe3aa9e729cdb4e3802ccbd5c8a22f0f56", "branch": "master", "observed_license": "MIT_WITH_SEPARATE_TRACK_CHANGES_NOTICE", "role": "EDITOR_ANNOTATION_AND_TRACK_CHANGES_REFERENCE", "inspected_paths": [ "wax-prosemirror-core/src/utilities/track-changes/trackedTransaction.js", "wax-prosemirror-services/src/TrackChangeService", "wax-prosemirror-services/src/CommentsService", "wax-prosemirror-services/src/YjsService/YjsService.js" ], "observed_engine": [ "TRANSACTION_LEVEL_INSERT_DELETE_FORMAT_TRACKING", "ACCEPT_AND_REJECT_CHANGE_OPERATIONS", "INLINE_COMMENT_MARKS_AND_REPLY_THREADS", "OPTIONAL_YJS_COLLABORATION_PROVIDER" ], "decision": "DEFER_DIRECT_INTEGRATION_REIMPLEMENT_SMALL_LOCAL_REVIEW_MODEL_FIRST_BECAUSE_STACK_AND_PACKAGES_ARE_OLD" } ], "implementation_selection": { "direct_external_runtime_packages_added": 0, "external_source_files_copied": 0, "native_owner": "HOLOLAKE_TAURI_RUST_CORE", "storage": "AUTHENTICATED_ACCOUNT_SCOPED_SQLITE", "selected_patterns": [ "PROJECT_VOLUME_CHAPTER_HIERARCHY", "DEBOUNCED_CHAPTER_SAVE_WITH_FLUSH", "OPTIMISTIC_REVISION_CONFLICTS", "CHAPTER_VERSION_HISTORY_AND_PROJECT_CHECKPOINTS", "CHARACTER_WORLD_RELATION_AND_FORESHADOW_GRAPH", "EDITORIAL_WORKFLOW_STATE_MACHINE_AND_REVIEW_NOTES", "CONTINUITY_AUDIT", "AUTHORIZED_OPERATIONS_METRICS", "MARKDOWN_EXPORT" ] }, "legal_boundary": "PRELIMINARY_ENGINEERING_SCREEN_NOT_FINAL_DISTRIBUTION_LEGAL_APPROVAL" }