如果要最快理解“当前已经完成到什么状态 + 距离商业化还缺什么”,优先阅读:
这套仓库现在已经从“单作品可运行 Alpha”升级为一个 商业化 Beta 内核雏形。它仍然保留现有 Alpha 的 /app、Reader Mode、示例世界与基础 API,但新增了:
- 多
World Pack加载与版本管理 Author / Ops / Reader三端最小产品骨架- Author 端已支持“选题材 + 写 brief + 生成 Draft”的普通用户创作入口
- Author 端现已补强
draft diff + simulation drill-down - Author 端现已补
style / pacing / hook结构化控制面板 - Ops 端已支持 review history、publish checklist、rollback history、quality trend 与风险摘要
- Ops 端现已补
Alert Center,能把 runtime / support / governance / async job 信号聚成主动告警 feed,并支持 acknowledge / resolve / investigation prefill - Ops 端现已补
Ops Control Plane,把Alert Center + Account Workspace + Release Workspace + Governance + Investigation串到同一套 navigation / escalation model - Ops control plane 的前端边界现也被 shell smoke test 锁住:
/app会按ops_refresh.js -> ops_actions.js -> ops_render_sections.js -> app.js顺序装配,避免模块职责悄悄回流到单文件 - Ops navigation 现已对失效
alert_id做 soft-fail:不会因为 stale alert 直接让 Control Plane 404,而是保留其余account/world/case上下文继续排查,并在 summary 中提示 stale ref - Ops navigation stale-ref hardening 现已扩到
case_id / world_id / world_version_id,Control Plane 会尽量保住剩余上下文继续解析,而不是因为单个 ref 失效就整条导航掉线 - Ops Control Plane 现也补了 stale-ref remediation actions:会在 follow-up actions 中直接给出
Clear Stale Refs / Re-sync From Valid Context,让 Ops 不必手动删 input 再刷新 - 仓库现也补了
scripts/run_ops_navigation_stale_ref_smoke.sh,可重复执行这条 remediation 的真实浏览器 smoke - Ops 端的
review history + publish checklist现已支持 drill-down:publish_checklist[*].owner / severity / next_action / evidencepublish_checklist_summaryrecent_reviews_drilldownreview_timeline / review_summary
- Ops 端的
rollback history + quality trend现也支持 drill-down:rollback_drilldown / rollback_summaryquality_trend[*].delta_vs_previous / regression_detected / publish_gate_errors / top_failing_pack_idsquality_trend_summary
- Reader 端已支持内测 entitlement / credits 授予、
active / expired / exhausted状态与访问原因展示 - Monetization & Entitlements M0 已开始落地:3 档会员、双钱包、subscription lifecycle、web-first checkout stub
- Phase 3 monetization 现已继续补 webhook / renewal / cancel / retry / past_due 生命周期闭环、checkout session 持久化,以及 Reader / Author / Ops 生命周期可见性
- Phase 4 数据飞轮接口已继续推进:支持
dataset_view,可导出 evaluator-ready / reranker-ready / analytics-ready examples,并附带 split 与质量告警 Postgres-first + SQLite fallback的平台化持久层Authoring / Review / Billing / Analytics服务层Monetization / Subscription / Wallet并行主线骨架- learned evaluator baseline runner(离线)
- learned evaluator shadow inference(并行对照,不影响 gate)
- learned evaluator shadow candidate summary(后端 + Ops surfacing)
- learned reranker baseline runner(离线)
- learned reranker shadow candidate summary(后端 + Ops surfacing)
- shared learned analysis runner(离线)
- unified learned dashboard contract(Ops summary)
- learned shadow decision compare(Ops compare summary)
- learned impact tracking(Ops retention / monetization correlation summary)
Karma Character Engine v0.1与章节化叙事核心Story Feed + Sticky Composer + Intent Prefill的连续阅读流NarrativeEval v0.1的多层评测与 pass / rewrite / block 闸门Kernel-first / capability-first的正文能力边界:DialogueRealismPolicyVoiceProfileEmotionActionPolicySensoryGroundingPolicySceneRealizationContractWorldNarrativeStylePack
- cross-pack benchmark、provider abstraction 与 merge gate 雏形
- weakest packs 的 capability 资产已补强,
cross_pack_pass_rate已从0.0拉升到0.9 - cross-pack benchmark 现已输出 per-pack issue diagnosis,weakest packs 不再只显示 pass rate
- Phase 1 已完成:
story_phase / chapter_index / min_end_turn入状态;ending gate 接入 canon;张力改为 phase-based - Phase 2 已完成:新增
ChapterPlan / SceneBeat / SceneRenderSpec / SceneIntent;内部从“单事件回合”升级为“单场景章节” - Phase 3 已完成:新增
presenter.py / sanitizer.py;API 默认输出 Reader Mode,debug 信息只在显式debug=true时返回 - Phase 4 已完成:加入 promise pressure、scene history、长线事件扩容;demo 世界单路线可稳定支撑 8-12 章节
- Phase 5 已完成:渲染新增
novel_light / novel_lush / manhua_drama风格;默认用户层使用更长的章节正文 - Karma Engine v0.1 已完成:
CharacterState升级为“命 / 业 / 毒 / 愿 / 惑 / 智”人物体;NarrativeState新增fate_pressure / karmic_weather / unresolved_debts / relationship_graph - Karma/Fate/Relationship 子系统已落地:新增
karma.py / fate.py / relationship_graph.py / character_engine.py / scene_functions.py - Beta Kernel 平台化骨架已完成:
- 新增
core / worldpacks / services / api / persistence - handoff 中的
db/、contracts/、legacy/、补充specs/已迁入根仓库 - world pack registry、authoring、review、billing、analytics 已有最小可运行实现
/app已扩成Reader / Author / Ops三端骨架
- 新增
- 内容与阅读流去噪已完成第一轮:
- 新增
current_generation_pipeline与provenance_policy - 引入
ScenePlan -> Writer -> Linter -> Presenter - Reader 主区改成
Story Feed - 新增
Intent Prefill Service
- 新增
- NarrativeEval v0.1 已完成第一轮:
- 新增
eval/目录 - 章节可生成
EvaluationReport - simulation / publish 受
pass / rewrite / block闸门约束 - Reader 在线生成只记录,不阻断
- draft simulation 现已附带
cross_pack_summary / metric_deltas / top_failing_packs - publish gate 现会检查
cross-pack summary / prose leak / metric regression
- 新增
- Repository 默认会读取
DATABASE_URL;未设置时回退到sqlite:///narrativeos_beta.db
WorldBible、NarrativeState、EventAtom、RouteCandidate等核心领域模型支持稳定 JSON 序列化NarrativeState现已包含story_phase、chapter_index、min_end_turn- 新增
EndingGate、SceneIntent、SceneBeat、SceneRenderSpec、ChapterPlan、NarrativeViewModel - 新增
PoisonVector、VowProfile、WoundProfile、AwakeningProfile、DestinyContract、DebtEntry、KarmicSeed、RelationshipEdge examples/下 demo world/state/events 可通过 schema 校验并完整反序列化examples/worldpacks/下已具备多 pack 资产:jade_court_exam_pack、jade_court_romance_pack、urban_mystery_lotus_lane、xianxia_forgotten_vow- 已新增
synthetic_min_pack,专门用于验证 kernel 不依赖任何当前示例人物或礼法体系 - world pack 现已可承载 capability 资产:
dialogue_realism_policyvoice_profilesresponse_cadence_profilespressure_response_stylesemotion_action_policiessensory_grounding_policiesscene_realization_contracts
docs/runtime_asset_inventory.md已明确记录当前 Alpha 的资产耦合点与可平台化部分docs/architecture/current_generation_pipeline.md已明确当前生成链路docs/legal/provenance_policy.md已写明 clean-room 规则docs/phase_0_summary.md到docs/phase_4_summary.md已记录本轮阶段交付docs/narrative_eval_v0_1.md与docs/phase_eval_summary.md已记录评测层- 内部主循环已从“一个回合 = 一个事件”升级为“一个回合 = 一个场景”,单章内部会推进 3-5 个 beats
- 评分主轴已从简单 goal overlap 升级为
desire / shadow / poison / vow / wound / debt / karma / fate / wisdom_resistance - 事件现在会显式种下
KarmicSeed,并通过relationship_graph与debt_deltas写入全局关系债 scene_function已切到人性冲突型主路径:temptation / mask_crack / debt_exchange / misrecognition / truth_trial / mercy_vs_control / humiliation / confession_window / karma_ripening / vow_payment / false_peace- 默认 step 接口输出 Reader Mode:
chapter_title / recap / body / scene_card / choices - 渲染层与逻辑层严格分离,默认章节正文为更长的
premium_prose - 默认章节正文已加入角色化对白、动作线、误会/债务回响与 Karma 派生的命运压力
- 误解与代价现在被视为
KarmicSeed + DebtEntry + relationship_graph的派生视图,而不是独立真相源 - 场景规划已改成“章节 3-5 拍 + 2-3 个真实推进事件”的混合结构,避免正文只靠同一句 summary 反复扩写
world / world_version / session / chapter / review / entitlement / usage_meter / analytics_event已有统一 Repository contract- Reader API 已扩成 Library Shelf、World Detail、Create Session、Continue Story、Replay、Quote Continue
- Reader API 已补
prefill - Reader API 已补:
GET /v1/reader/entitlementsPOST /v1/reader/entitlements/grant
- entitlement 语义现已统一为:
subscriberworld_passcredits并在返回中明确给出status / reason / balance / expires_at
- tier config 与 gating 现已统一收口到:
configs/monetization_tiers.jsonentitlement_matrixauthor_access_levelsconfig_version
reader/subscription与ops/entitlements现会直接返回 tier catalog + entitlement matrix,不再只返回零散余额与状态ops/entitlements现已补:audit_summaryaudit_timelineaudit_trailaudit_breakdowntimeline_cursorrevoke_candidates并支持POST /v1/ops/entitlements/revoke
- Ops 现已补
account detail入口:GET /v1/ops/accounts/{account_id}GET /v1/ops/accounts/{account_id}/workspace- 聚合
subscription / wallets / entitlements / recent_meters / recent_events / recent_sessions / recent_drafts / author_access / audit_trail / audit_breakdown / support_summary / support_issues workspace现会进一步返回:workspace_summarywallet_postureentitlement_posturetop_blockersaction_packinvestigation_summarylinked_contextoperator_timeline
/app中对应的账户详情 / 权益 / 订阅 / 钱包统一排查页现已把原本分散的 account detail / support / alerts / investigation 重新收束成一个 operator workspace:- 先看 account health / blockers / recommended path
- 再看 quick actions
- 再看 operator timeline
- 最后继续 drill-down 到原有
subscription audit / support / alert / governance / investigation
- Ops 现已补
account issue lookup:GET /v1/ops/accounts/{account_id}/issues- 输出
support_summary / support_issues / support_tooling - 能直接定位
missing_subscription / payment_required / credits_exhausted / studio_credits_exhausted / author_access_blocked / subscription_lifecycle_issue
- Ops 现已补
rights / moderation / abuse flow skeleton:GET /v1/ops/accounts/{account_id}/governancePOST /v1/ops/accounts/{account_id}/governance/escalate-supportGET /v1/ops/governance/casesGET /v1/ops/governance/cases/{case_id}POST /v1/ops/governance/casesPOST /v1/ops/governance/cases/{case_id}/assignPOST /v1/ops/governance/cases/{case_id}/evidencePOST /v1/ops/governance/cases/{case_id}/statusGET /v1/ops/governance/restrictionsPOST /v1/ops/governance/restrictionsPOST /v1/ops/governance/restrictions/{restriction_id}/releaseGET /v1/ops/export/governance-audit- 复用
review_records作为最小 case storage,不引入新表 /app中新增治理 Case 流面板,可创建 case、更新状态、施加/释放 restriction、从 support issue 一键升级治理 case,并查看单 case drill-down 与治理导出摘要- restriction 当前支持:
reader_access_blockauthor_access_blockcheckout_blockaccount_hold
- governance case 现已补
owner_id / due_at / disposition / policy_labels / evidence_refs / workflow_checklist - 单 case detail 现会返回:
workflow_summarypermission_summaryevidence_refsdetail_summary.owner_id / evidence_count
- status flow 现已从“任意改状态”收口到明确 transition:
open -> in_review / escalated / dismissedin_review -> escalated / resolved / dismissedescalated -> in_review / resolved / dismissed
- 当使用 bearer token 或
X-NarrativeOS-*reviewer identity 时,governance mutation 会优先信任该身份;author角色不能执行 governance mutation /app中新增Owner ID / Due At / Policy Labels / Evidence Title / Evidence Preview,并支持Assign Case / Add Evidence
- Ops 现已补
Unified Investigation聚合排查入口:GET /v1/ops/investigations/accounts/{account_id}GET /v1/ops/investigations/cases/{case_id}GET /v1/ops/investigations/world-versions/{world_version_id}GET /v1/ops/export/investigation-trace- 统一返回
generated_at / filters / investigation_summary / linked_entities / trace_timeline / evidence_index / recommended_paths - 把
billing lifecycle / retry attempts / support issues / governance cases / review timeline / publish checklist / rollback drilldown / runtime receipts串成同一条 account-first 调查路径 /appOps 面板新增Unified Investigation,可直接输入account_id,再按world_version_id / case_iddrill-down 并导出 JSON trace bundle
- Ops 现已补
Alert Center:GET /v1/ops/alertsGET /v1/ops/alerts/{alert_id}POST /v1/ops/alerts/{alert_id}/status- 把
runtime incident / support issue / governance case+restriction / async job incident聚成统一主动告警 feed - 每条 alert 都会给出
recommended_actions / standard_operating_path / investigation_ref /appOps 面板新增Alert Center,支持筛选、acknowledge、resolve,并可一键把 alert prefill 到Unified Investigation
- Author API 已具备 Draft CRUD / Validate / Simulate / Submit for Review,并已补 collaboration / approval / compare 基础能力
- Author collaboration 现已继续补 reviewer inbox / in-app notifications /
@mentionworkflow,可对 comment threads、approval request 与 approval decision 做最小路由 - Author collaboration 现已继续补 inline thread reply / watcher / inbox filters / bulk notification status / async notification mirror
- Author collaboration 现已继续补 header-based identity shim / draft watcher / inbox cursor + search / notification preferences / thread-update throttling
- Author collaboration 现已继续补
/v1/auth register/login/me/logout、bearer token auth、独立 Notification Settings panel 与 per-user email/slack routing stub - Author API 已补
brief-template与drafts/from-brief - Ops API 已具备 Review Queue / Publish / Rollback / World Status / Meter 查询
- Ops API 已补
/v1/ops/worlds/{world_id}/history - Ops API 已补
/v1/ops/worlds/{world_id}/release-workspace - Ops
world status现已返回 richerpublish_checklist / recent_reviews / recent_entitlement_events / risk_summary - Ops
world status现已把 publish gate 补成 drill-down contract:publish_checklist_summarypublish_checklist[*].owner / severity / next_action / evidencerecent_reviews_drilldown
- Ops
world history现已补:review_timelinereview_summaryrollback_drilldownrollback_summaryquality_trend_summary
- content release 线现已补
Content Release Workspace:- 统一返回:
release_summarypublish_blockersreview_ownership_summaryversion_matrixrollback_workspaceaction_packinvestigation_summaryoperator_timeline
/app中新增发布 / Checklist / 回滚统一处置页- operator 现在可以围绕一个
world_id先看:- 能不能发
- 为什么不能发
- 谁在 owner 当前 blocker
- 最近 review / rollback 轨迹
- 下一步能直接按什么动作
- 统一返回:
- Ops 顶层现已补
GET /v1/ops/navigation-model- 统一接收
account_id / world_id / case_id / alert_id - 输出:
active_contextcontext_resolutionescalation_summarylinked_contextnavigation_targetsfollow_up_actions
/app顶部统一导航 / 升级路径面板现在会把 account/world/case/alert 收口到同一 shared context,再驱动各个 workspace 的 drill-down,而不是再维护多套平行输入- 最近又补了一轮 Ops control plane refresh hardening:
refreshOpsSurface现已拆成review_release / runtime / jobs / account / alerts / learned / navigation / investigationscopes- 高频动作默认只刷新对应 scope,不再总是整页 full refresh
- 关键 workspace helper 现已加 stale-request protection,避免旧请求覆盖新状态
- 当前
renderOpsSurface也已开始按同一 scope 做 section-level 条件渲染,逐步从“大渲染函数”推进到“局部 render/update pipeline” - 目前
navigation / review_release / runtime / jobs / account / investigation / learned已各自抽成独立 render section helper,renderOpsSurface主要只负责 scope dispatch - 这些 Ops render section 现已物理迁到独立前端脚本
ops_render_sections.js,app.js更接近只保留 state / refresh orchestration / action handlers - 现在
ops_refresh.js / ops_actions.js / ops_render_sections.js / app.js已形成更清晰的前端分层:ops_refresh.js:shared context + scope refresh orchestrationops_actions.js:Ops navigation / governance / account / release / jobs action handlersops_render_sections.js:Ops section render helpersapp.js:全局 state、Reader/Author 主线、事件绑定与总装配
- 现已补
tests/test_ops_frontend_split.py,直接锁/app的脚本加载顺序与 refresh/action/render/app 四层职责边界
- 统一接收
- Ops
eval-metrics现已可返回 learned-vs-rule 摘要与继续读相关性:online_continuation_correlationcontinuation_signal_summaryquality_signal_correlationscontinuation_world_detailscontinuation_version_detailscontinuation_sample_accumulationlearned_eval_availablelearned_rule_agreement_ratetop_mismatch_worldstop_mismatch_issue_codeslearned_shadow_summarylearned_reranker_shadow_summary
- 内置 Web 前端
/app现已包含Reader / Author / Ops三端骨架 - Author 端已不再只支持复制当前世界,也支持从题材预设与 freeform brief 直接生成新 world pack draft
- Reader 主区已不再只显示单章,而是连续追加式 Story Feed
- Reader 现在会直接解释:
- 为什么可读 / 不可读
- 当前世界是否已解锁
- 剩余 credits
继续旅程书架现在支持删除多余 session- demo 世界已扩容到更长的中段路线,单路线可稳定支撑 8-12 章节以上
- 已生成一个对应的 Figma 设计文件,方便继续做视觉迭代
- analytics 事件口径现已统一覆盖:
session_createdcontinue_storypayment_requiredcredits_consumedentitlement_grantedpublish_blockedrollback_performed
eval/learned_baseline.py现已支持:- 读取
dataset_view=evaluator - 训练 scikit-learn baseline
- 写出
model.joblib / metrics.json / training_manifest.json
- 读取
eval/learned_inference.py现已支持:- 从
artifacts/learned_evaluator_baseline自动加载 artifact - 对 evaluator examples 做并行预测
- 输出
agreement_rate / mismatch_examples / top_mismatch_worlds / top_mismatch_issue_codes
- 从
eval/learned_shadow.py现已支持:- 结合 artifact 与 live disagreement 产出
learned_shadow_summary - 输出
status / warnings / recommended_next_action
- 结合 artifact 与 live disagreement 产出
eval/learned_reranker_baseline.py现已支持:- 读取
dataset_view=reranker - 训练 scikit-learn preference baseline
- 写出
reranker_model.joblib / reranker_metrics.json / reranker_training_manifest.json
- 读取
eval/learned_reranker_shadow.py现已支持:- 结合 reranker artifact 与 pair coverage 产出
learned_reranker_shadow_summary - 输出
status / warnings / recommended_next_action
- 结合 reranker artifact 与 pair coverage 产出
eval/learned_compare.py现已支持:- 对 evaluator / reranker 的 shadow readiness 做统一对比
- 输出
preferred_shadow_candidate / disagreement_worlds / disagreement_issue_codes
eval/learned_data_ops.py现已支持:- 把 learned dashboard / compare / backlog 聚成可执行的 Ops 数据扩充工作流
- 输出
review_sample_backlog / pair_coverage_backlog / action_queue
eval/learned_review_quality.py现已支持:- 聚合
human review coverage / reviewer diversity / ingestion warning / reference validation - 输出
high-coverage replenishment backlog - 提供 world 级 review quality drill-down
- 聚合
eval/learned_data_impact.py现已支持:- 对单次 human review capture 计算 before / after impact receipt
- 输出
preferred_shadow_candidate / backlog count / next action的即时变化
eval/learned_impact.py现已支持:- 聚合 evaluator / reranker 的 learned impact summary
- 分开输出
retention proxy与monetization proxy - 提供
world / issue级 impact drill-down - 对
assisted_gateexperiment receipts 额外输出 experiment-aware retention / monetization correlation - 让 Ops 直接看到
assisted block是否和 continuation / checkout / subscription / paywall proxy 同步变化
eval/learned_cadence.py现已支持:- 把
data coverage / latest training / shadow validation / promotion approval / rollout聚成统一 cadence 视图 - 输出每条 learned track 当前所处的
collect_data / train_candidate / validate_shadow / request_promotion / ready_to_activate / monitor_active / rebuild_readiness - 额外输出
cadence_health / stale_reasons / checkpoint_summary / recent_events - 提供 per-track cadence detail,且不改变现有 promotion / rollout gate
- 把
eval/learned_assisted_gate.py现已支持:shadow_only -> assisted_gate的受控实验 config / summary / decision receipt- 仅在
evaluator rollout active + promotion approved + bucket 命中时允许极窄的 assisted block - 明确禁止 learned force-pass 一个 rule-blocked version
- 输出
recent decisions / guardrails / rollback conditions
eval/learned_assisted_rerank.py现已支持:shadow_only -> assisted_rerank的受控实验 config / summary / decision receipt- 在 Reader runtime 的候选排序链路里,只对
beat 1做可回滚的 top-candidate assisted rerank - 仅在
reranker rollout active + promotion approved + bucket 命中 + score gap 足够小时允许重排 - 输出
recent decisions / guardrails / rollback conditions
eval/learned_promotion.py现已支持:- 基于 evaluator shadow / compare / data ops 计算 recommendation-only promotion summary
- 输出
status / blockers / advisories / checklist / evidence
eval/learned_training_automation.py现已支持:- 一次性运行 evaluator / reranker / both baseline training
- 产出 per-track training result
- 生成
promotion evidence pack - 在 training result 与 evidence pack 中附带 cadence snapshot
- 写入 run summary artifact
eval/learned_rollout.py现已支持:shadow -> active -> rolled_back的最小 rollout 状态机- rollout safety 依赖
shadow compare + promotion approval - active rollout watchlist 与 rollback recommendation
eval/learned_promotion_workflow.py现已支持:- 复用
review_records为 evaluator promotion 叠加人工批准/撤销状态 - 输出
recommendation_status / approval_status / reconfirm_required / latest_approval_record
- 复用
eval/learned_reranker_promotion.py现已支持:- 基于 reranker shadow / compare / data ops 计算 recommend-only promotion summary
- 输出
status / blockers / advisories / checklist / evidence
eval/learned_reranker_promotion_workflow.py现已支持:- 复用
review_records为 reranker promotion 叠加人工批准/撤销状态 - 输出
recommendation_status / approval_status / reconfirm_required / latest_approval_record
- 复用
services/monetization.py现已支持:- tier config 读取
- entitlement matrix 读取
- config snapshot 输出
- subscription lifecycle
- lifecycle reconcile(
active/trialing -> past_due/expired) - reactivation renew + wallet refill
- web-first checkout stub
- monthly wallet refill
services/billing.py现已支持:- Reader / Author metering 统一走 entitlement matrix
usage_units对齐实际 charged creditsmodel_policy_version记录config_version:metering_rule- subscription-backed continue 会记录
0credits metered,而不是伪装成 credit 消耗 - Reader / Author gating payload 会直接暴露
required_display_name / required_capability / required_units / suggested_checkout_tier
- Ops API 已补最小离线导出入口:
GET /v1/ops/export/training-signal
- Ops API 已补:
POST /v1/ops/review-samplesGET /v1/ops/review-samplesGET /v1/ops/review-sample-backlogGET /v1/ops/issue-fix-pair-backlogGET /v1/ops/issue-fix-pairsGET /v1/ops/learned-dashboardGET /v1/ops/learned-dashboard/worlds/{world_id}GET /v1/ops/learned-dashboard/issues/{issue_code}GET /v1/ops/learned-compareGET /v1/ops/learned-impactGET /v1/ops/learned-impact/worlds/{world_id}GET /v1/ops/learned-impact/issues/{issue_code}GET /v1/ops/learned-cadenceGET /v1/ops/learned-cadence/{track}GET /v1/ops/learned-assisted-gatePOST /v1/ops/learned-assisted-gate/configureGET /v1/ops/learned-assisted-rerankPOST /v1/ops/learned-assisted-rerank/configureGET /v1/ops/learned-data-opsGET /v1/ops/learned-review-qualityGET /v1/ops/learned-review-quality/worlds/{world_id}GET /v1/ops/learned-promotionGET /v1/ops/learned-reranker-promotionPOST /v1/ops/learned-training/runGET /v1/ops/learned-promotion-evidenceGET /v1/ops/learned-rolloutPOST /v1/ops/learned-rollout/{track}/activatePOST /v1/ops/learned-rollout/{track}/rollbackGET /v1/ops/runtime-receiptsGET /v1/ops/runtime-incident-snapshotGET /v1/ops/provider-routingGET /v1/ops/provider-rolloutPOST /v1/ops/provider-rollout/{track}/canaryPOST /v1/ops/provider-rollout/{track}/activatePOST /v1/ops/provider-rollout/{track}/rollbackGET /v1/ops/provider-runtime-metricsGET /v1/ops/deployment-runbookGET /v1/ops/deployment-health-gateGET /v1/ops/preflight-verification-bundleGET /v1/ops/incident-playbookGET /v1/ops/recovery-drillsGET /v1/ops/runtime-restore-requestsGET /v1/ops/jobsGET /v1/ops/jobs/incidentsGET /v1/ops/jobs/boot-reconcileGET /v1/ops/jobs/artifact-retentionGET /v1/ops/jobs/operator-historyGET /v1/ops/jobs/notification-sinksGET /v1/ops/jobs/adapter-config-validationGET /v1/ops/jobs/adapter-health-probeGET /v1/ops/jobs/retry-policiesGET /v1/ops/jobs/notification-delivery-receiptsGET /v1/ops/jobs/notification-delivery-receipts/{event_id}GET /v1/ops/jobs/notification-retry-queueGET /v1/ops/jobs/notification-dead-letter-queueGET /v1/ops/jobs/retry-outcome-dashboardGET /v1/ops/jobs/handoff-bundleGET /v1/ops/jobs/remote-shippingGET /v1/ops/jobs/handoff-slaPOST /v1/ops/jobs/handoff-bundle/exportPOST /v1/ops/jobs/handoff-sla/escalatePOST /v1/ops/jobs/notification-retry-queue/enqueuePOST /v1/ops/jobs/enforce-retentionPOST /v1/ops/jobs/cold-start-drillGET /v1/ops/jobs/{job_id}POST /v1/ops/jobs/{job_id}/acknowledgePOST /v1/ops/jobs/{job_id}/ship-remotePOST /v1/ops/jobs/notification-retry-queue/{retry_id}/processPOST /v1/ops/jobs/{job_id}/retryPOST /v1/ops/jobs/{job_id}/resumePOST /v1/ops/jobs/learned-trainingPOST /v1/ops/jobs/runtime-backupsPOST /v1/ops/jobs/recover-incidentsPOST /v1/ops/runtime-backupsPOST /v1/ops/runtime-restorePOST /v1/ops/recovery-drillPOST /v1/ops/runtime-restore/requestPOST /v1/ops/runtime-restore/{request_id}/approvePOST /v1/ops/runtime-restore/{request_id}/revokePOST /v1/ops/jobs/runtime-restoresPOST /v1/ops/learned-promotion/approvePOST /v1/ops/learned-promotion/revokePOST /v1/ops/learned-reranker-promotion/approvePOST /v1/ops/learned-reranker-promotion/revokeGET /v1/ops/subscriptionsGET /v1/ops/entitlementsPOST /v1/ops/subscriptions/grantPOST /v1/ops/subscriptions/statePOST /v1/ops/subscriptions/{subscription_id}/reconcilePOST /v1/ops/subscriptions/{subscription_id}/retry-paymentPOST /v1/ops/billing-events/{event_id}/replayPOST /v1/ops/wallets/grantPOST /v1/ops/wallets/debit
- Reader API 已扩展:
GET /v1/reader/subscriptionPOST /v1/reader/checkout/startPOST /v1/reader/checkout/webhookPOST /v1/reader/subscription/{account_id}/retry-paymentPOST /v1/reader/subscription/{account_id}/renewPOST /v1/reader/subscription/{account_id}/cancel
/app的 Ops 区现已补:Evaluator Promotion GateReranker Promotion GateTraining AutomationAsync JobsRuntime Receipts / Incident SnapshotProvider Runtime MetricsDeployment / Backup / IncidentDeployment Health GateLast Action ImpactMonetizationaudit panel- 用于展示一次 human review 提交后,对 backlog / compare / next action 的即时影响
specs/现已新增:review_sample.schema.jsonauthor_revision_log.schema.jsoncontinue_churn_event.schema.jsontraining_signal_bundle.schema.jsonissue_fix_pair.schema.json
training_signal_bundle现已包含:manifestpack_quality_trendsnext_cursorevaluator_examplesreranker_examplesanalytics_examplesmanifest.warningsrollback_performed
promotion evidence pack现已聚合:- artifact state
- learned dashboard summary
- compare summary
- data ops summary
- promotion summary
- promotion workflow
- analysis report
- Phase 6 现已补
long-running jobs + async workflow skeleton:- 通过
FastAPI BackgroundTasks + review_records复用现有持久层,不引入外部队列 - 当前已接入两个真实长任务入口:
learned_trainingruntime_backup
/v1/ops/jobs会返回队列摘要、每个 job 的queued / running / succeeded / failed状态与 workflow steps
- 通过
- Phase 6 现已继续补
durable job retry / resume + async workflow incident recovery:- 支持单 job
retry、单 jobresume - 支持批量
recover-incidents,优先恢复queued与stale runningjobs /v1/ops/jobs/incidents会返回 failed / queued / stale-running 的恢复摘要与建议动作
- 支持单 job
- Phase 6 现已继续补
boot-time async reconciler + job heartbeat / lease model:- app startup 会把 orphaned
runningjobs reconcile 回queued - job 状态现会暴露
lease_owner / lease_expires_at / heartbeat_at / heartbeat_count / lease_status /v1/ops/jobs/boot-reconcile可查看最近一次 boot reconcile 摘要
- app startup 会把 orphaned
- Phase 6 现已继续补
async job artifact retention + operator run history:/v1/ops/jobs/artifact-retention会聚合 artifact 存在性、保留天数、到期时间与缺失/过期状态/v1/ops/jobs/operator-history会聚合 enqueue、retry、resume、boot reconcile 等 operator 动作历史/app的 Async Jobs 面板现可直接看到 retention 摘要和 operator run history
- Phase 6 现已继续补
async job cleanup / retention enforcement + cold-start recovery drill:POST /v1/ops/jobs/enforce-retention可执行过期 artifact cleanupPOST /v1/ops/jobs/cold-start-drill可做当前队列的 cold-start recovery 演练/app的 Async Jobs 面板现可直接触发 retention enforcement 和 cold-start drill
- Phase 6 现已继续补
async job export / handoff bundle + operator acknowledgement flow:GET /v1/ops/jobs/handoff-bundle会聚合需要交接的 async jobs 与 acknowledgement 摘要POST /v1/ops/jobs/handoff-bundle/export会写出 handoff bundle artifactPOST /v1/ops/jobs/{job_id}/acknowledge可记录 operator acknowledgement
- Phase 6 现已继续补
async job remote artifact shipping + handoff SLA escalation skeleton:GET /v1/ops/jobs/remote-shipping会汇总 remote shipping 状态POST /v1/ops/jobs/{job_id}/ship-remote会把 job artifacts 复制到 remote stub 目录并写 shipping manifestGET /v1/ops/jobs/handoff-sla会汇总 overdue / pending handoff 状态POST /v1/ops/jobs/handoff-sla/escalate会对 overdue handoff 做 SLA escalation skeleton 记录
- Phase 6 现已继续补
async adapter config validation + notification delivery receipt drill-down:GET /v1/ops/jobs/adapter-config-validation会校验默认 remote adapter / notification sink 是否注册且路径可写GET /v1/ops/jobs/notification-delivery-receipts会汇总 notification delivery receipts、target path 是否存在与 event type 分布GET /v1/ops/jobs/notification-delivery-receipts/{event_id}可查看单条 receipt 的 target payload preview
- Phase 6 现已继续补
async adapter health probe + notification retry queue skeleton:GET /v1/ops/jobs/adapter-health-probe会输出 adapter/sink probe 状态GET /v1/ops/jobs/retry-policies会输出 notification retry policy registryGET /v1/ops/jobs/notification-retry-queue会汇总 notification retry queuePOST /v1/ops/jobs/notification-retry-queue/enqueue可把 delivery receipt 入重试队列POST /v1/ops/jobs/notification-retry-queue/{retry_id}/process可执行最小 retry skeleton
- Phase 6 现已继续补
async dead-letter queue + retry outcome dashboard:GET /v1/ops/jobs/notification-dead-letter-queue会汇总 terminal failuresGET /v1/ops/jobs/retry-outcome-dashboard会汇总 retry success / planned / terminal failure 与 failure class 分布
- Phase 6 现已继续补
async retry policy registry + adapter failure classification:- retry queue 现在会记录
retry_policy_id / retry_policy / failure_classification / retry_decision / next_retry_at - adapter 失败会按
configuration / permission / missing_resource / timeout / transient_io / rate_limited / unsupported / unknown分类 - retry 决策现在由 policy registry 驱动,而不是单纯成功/失败二分
- retry queue 现在会记录
shadow compare现已补 rollout hardening:rollout_readinesssafe_rollout_candidates
/app的 Learned 区现已补Safe Rollout卡片,可直接查看 active tracks、safe candidates、rollback watchlist,并触发 activate / rollbackreview sample ingestion现已补硬化:world_id / world_version_id / session_id / revision_id引用校验issue_codes / linked_issue_codes规范化- human review 默认按 stable ingestion key upsert,避免同一 logical sample 无限重复
ingestion_meta会记录reference_status / storage_mode / ingestion_warnings
issue-fix pair pipeline现已补 richer contract:before_review_sample_ids / after_review_sample_idsreview_coverage_count / human_review_countpair_source / pair_quality / pair_warnings- backlog 会额外输出
effective_coverage_count
- 真实供应商的 LLM 接入仍保留为可替换 backend 接口,没有默认绑定具体厂商
- provider boundary 已存在:
AnthropicProviderOpenAIProviderLocalRuleBasedProvider
- provider routing / retry / fallback skeleton 现已补:
RetryingLLMBackendRoutingLLMBackendCachedLLMBackendBudgetedLLMBackendbuild_llm_backend_from_env(scope=...)build_llm_policy_from_env(scope=...)ProviderRoutingServiceLLMCandidateProvider/LLMRenderer会暴露backend_routingdebug- Reader
continue_story与 Authoringrun_simulation_for_world_version现已接入统一的 candidate / renderer runtime - primary provider 失败、budget blocked、或 retry 后仍失败时,会自动走 static candidate / template renderer fallback 但默认开发与 benchmark 仍以 deterministic / local 路径为主
- provider runtime metrics / cost trend 现已补:
provider_summarycost_trendlatency_summarylatency_trendrollout_stage_summarysurface_summaryaction_summaryselected_as_candidate_count / selected_as_renderer_countavg/p95 runtime / candidate / renderer latencycandidate_estimated_request_cost / renderer_estimated_request_cost
- Postgres schema 已进入根仓库
db/postgres_schema.sql,但本地默认仍以 SQLite fallback 跑测试与开发 - Postgres migration / schema lifecycle 现已补:
schema_sql_fingerprintmigrations_fingerprintinspect_schema_lifecyclebootstrap_schema_lifecyclebootstrap_postgres_runtime(..., dry_run=True)- Alembic scaffold:
alembic.inidb/alembic/env.pydb/alembic/versions/20260404_0011_platform_baseline.pydb/alembic/versions/20260404_0012_runtime_hotspot_indexes.py
- Alembic lifecycle signals:
current_revisionhead_revisionpending_revisionsstatus
- data integrity / repair 现已补:
- hotspot composite index coverage summary
- session pointer drift detection
- orphan route choice detection
- duplicate active subscription detection
- safe dry-run / apply repair actions
- runtime ops / runbook 现已补:
- sqlite backup / restore
- deployment runbook
- deployment health gate
- preflight verification bundle
- incident playbook
- recovery drill dry-run artifact
- restore decision hints + pre/post restore verification
- Postgres restore request / approve / revoke workflow
- Postgres
pg_dump/pg_restore/psqlwrapper execution with result artifacts - runtime observability receipts 联动
- Author / Ops 前端目前是最小产品骨架,还不是完整工作台
- 真实支付、鉴权、内容审核外部服务、模型路由策略仍是占位骨架
- 当前 core 已基本清除 Jade Court pack-specific prose hardcode,但 world pack 资产和 benchmark 仍需要继续丰富,才能让 4+ packs 同时受益
docs/:产品范围、算法设计、API 合约、评测与风控说明- 其中 canonical handoff 文档是:
docs/gpt_handoff_status_and_commercialization.md
- 其中 canonical handoff 文档是:
specs/:Alpha schema + 平台化worldpack / scene_plan / character_profile / route_offer / billing_meter / content_reviewschemadb/:postgres_schema.sqlcontracts/:Python / TypeScript 契约草案legacy/:此前 Alpha 与 Karma 相关历史方案configs/:评分权重、策略示例prompts/:规划器、角色器、批评器、渲染器 Prompt 模板examples/:Alpha 示例世界 +examples/worldpacks/多 pack 资产src/narrativeos/:当前 Beta Kernel 实现tests/:Alpha 回归 + Beta 平台化骨架测试TASKS_FOR_CODEX.md:原始执行清单CODEX_HANDOFF_PROMPT.md:原始交接 prompt
- 状态先于文本:先维护世界、人物、关系、承诺与张力,再生成文本。
- 事件先于段落:系统搜索“下一步发生什么事件”,而不是直接续写下一段。
- 分支不是树,而是带疤痕的 DAG:允许汇合,但要保留关系、资源、秘密、伤痕等后果。
- 显式评分函数:不要把“好剧情”完全托付给模型感觉。
- 多 critic 回路:一致性、戏剧推进、多样性都要单独检查。
- 创作者可控:通过 canon anchors / forbidden moves / theme targets 等参数控制作品灵魂。
推荐做法:
cd narrativeos_codex_handoff
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
python -m pytest -q
python -m src.narrativeos.demo如果要跑 API:
source .venv/bin/activate
uvicorn src.narrativeos.api:app --reload前端入口:
http://127.0.0.1:8000/app
Ops navigation stale-ref remediation browser smoke:
bash scripts/run_ops_navigation_stale_ref_smoke.sh它会 seed 一份 deterministic stale-ref 场景,并验证:
- stale warning 出现
Re-sync From Valid ContextClear Stale Refs
CI / headless 模式:
CI_HEADLESS=1 CHROME_BIN=/path/to/google-chrome bash scripts/run_ops_navigation_stale_ref_smoke.sh如果要显式指定 SQLite fallback:
source .venv/bin/activate
export DATABASE_URL=sqlite:///narrativeos_beta.db
uvicorn src.narrativeos.api:app --reload如果要启用 provider routing skeleton:
source .venv/bin/activate
export NARRATIVEOS_LLM_ROUTING_ENABLED=true
export NARRATIVEOS_LLM_PROVIDER_ORDER=openai,anthropic,local
export NARRATIVEOS_LLM_MAX_ATTEMPTS=2
export OPENAI_API_KEY=...
export ANTHROPIC_API_KEY=...
uvicorn src.narrativeos.api:app --reloadPostgres-first 开发时,请先应用 db/postgres_schema.sql,再把仓库层改为对应 DSN。
更完整的 Postgres 初始化方式:
source .venv/bin/activate
python -m src.narrativeos.persistence.migrations \
--database-url 'postgresql://user:password@localhost:5432/narrativeos' \
--seed-builtins只检查 schema lifecycle,不实际 apply migrations:
source .venv/bin/activate
python -m src.narrativeos.persistence.migrations \
--database-url 'postgresql://user:password@localhost:5432/narrativeos' \
--dry-run查看 Alembic current/head:
source .venv/bin/activate
python -m src.narrativeos.persistence.migrations \
--database-url 'postgresql://user:password@localhost:5432/narrativeos' \
--alembic-current查看 Alembic revision history:
source .venv/bin/activate
python -m src.narrativeos.persistence.migrations --alembic-history如果已有 Postgres schema 需要正式 stamp 到当前 Alembic head,继续走标准 bootstrap:
source .venv/bin/activate
python -m src.narrativeos.persistence.migrations \
--database-url 'postgresql://user:password@localhost:5432/narrativeos'如果未来新增 forward Alembic revisions,可以显式执行:
source .venv/bin/activate
python -m src.narrativeos.persistence.migrations \
--database-url 'postgresql://user:password@localhost:5432/narrativeos' \
--alembic-upgrade-head检查数据完整性与 repair backlog:
source .venv/bin/activate
python -m src.narrativeos.services.data_integrity \
--database-url 'postgresql://user:password@localhost:5432/narrativeos'只对 safe actions 做 dry-run:
source .venv/bin/activate
python -m src.narrativeos.services.data_integrity \
--database-url 'postgresql://user:password@localhost:5432/narrativeos' \
--action reconcile_session_chapter_pointers \
--action prune_orphan_route_choices应用 safe repair:
source .venv/bin/activate
python -m src.narrativeos.services.data_integrity \
--database-url 'postgresql://user:password@localhost:5432/narrativeos' \
--apply \
--action reconcile_session_chapter_pointers \
--action prune_orphan_route_choicesNarrativeEval nightly / regression 调用方式:
source .venv/bin/activate
python -m src.narrativeos.eval.regression \
--worldpack all \
--golden-dir tests/golden_routes \
--database-url sqlite:///narrativeos_beta.dbLearned evaluator baseline 调用方式:
source .venv/bin/activate
python -m src.narrativeos.eval.learned_baseline \
--dataset-view evaluator \
--world-id urban_mystery_lotus_lane \
--output-dir tmp/learned_evaluator_baseline \
--database-url sqlite:///narrativeos_beta.dbLearned reranker baseline 调用方式:
source .venv/bin/activate
python -m src.narrativeos.eval.learned_reranker_baseline \
--dataset-view reranker \
--world-id urban_mystery_lotus_lane \
--output-dir tmp/learned_reranker_baseline \
--database-url sqlite:///narrativeos_beta.dbShared learned analysis 调用方式:
source .venv/bin/activate
python -m src.narrativeos.eval.learned_analysis \
--world-id urban_mystery_lotus_lane \
--evaluator-artifact-dir artifacts/learned_evaluator_baseline \
--reranker-artifact-dir artifacts/learned_reranker_baseline \
--output-dir tmp/learned_analysis \
--database-url sqlite:///narrativeos_beta.dbKernel-first cross-pack benchmark:
source .venv/bin/activate
python -m src.narrativeos.benchmark.runner \
--worldpack all \
--golden-dir tests/golden_routes \
--baseline-file tests/benchmark_baseline.json \
--database-url sqlite:///narrativeos_beta.db \
--markdown-out artifacts/cross_pack_benchmark_summary.md报表 JSON 现至少包含:
- 顶层:
benchmark_modechapter_budgetworldscross_pack_pass_ratestrongest_packsweakest_packstop_failing_packsweakest_pack_diagnosticsdelta_summary
- 每个
worlds[*]:completion_ratiostop_reasonissue_mixlong_route_qualitymid_arc_dropdialogue_distinctnessdiagnostic_scorediagnostic_ranktop_issue_categoriesdimension_scoresissue_summary
同时 CLI 支持把人工可读报表写到 --markdown-out 指定路径,便于在本地或 PR 附件里直接查看 strongest / weakest packs 与 benchmark delta。
其中 weakest_pack_diagnostics 会继续下钻 weakest packs,补出:
worst_chaptersissue_category_distributionattribution_map.modules / assets / policiesnext_fix_candidates
Long-route benchmark(30–50 章压力测试):
source .venv/bin/activate
python -m src.narrativeos.benchmark.runner \
--worldpack all \
--golden-dir tests/golden_routes \
--baseline-file tests/long_route_benchmark_baseline.json \
--database-url sqlite:///narrativeos_beta.db \
--max-chapters 36 \
--min-end-turn-override 30 \
--markdown-out artifacts/long_route_benchmark_summary.mdlong-route 模式会额外输出:
benchmark_mode = long_routecompletion_ratio / stop_reason / premature_endingavg_repetition_score / avg_exposition_ratio / avg_hook_qualitymid_arc_pass_rate / late_arc_pass_rate- top-level
long_route_summary
当 min_end_turn 被拉高到 long-route 级别时,静态 provider 现在会启用一层 kernel-level continuation candidates:
- 只在 long-route 语境补充续航事件,不改标准 6 章基线
- continuation candidates 复用现有 pack actors / tags / contracts,但使用新的 event ids,避免 event pool 被一次性耗尽
- continuation candidates 会移除 terminal metadata,并按 phase 轮换 scene function / promise / seed / location
- 这样 long-route benchmark 更接近“内容是否还能继续读”,而不是过早停在
no_legal_routes
Q03 / Q04 / Q05 / Q09 remediation framework:
Q03- generic repetition variation pass on repaired drafts
Q04- exposition guard that injects more scene-facing dialogue pressure when drafts are too summary-like
Q05- detail reinforcement pass that adds concrete sensory grounding when density is too thin
Q09- stronger hook reinforcement plus phase-aware terminal scene penalty before
min_end_turn
- stronger hook reinforcement plus phase-aware terminal scene penalty before
Cross-pack merge gate:
source .venv/bin/activate
scripts/run_cross_pack_merge_gate.sh如果要在本地连同 PR 证据一起校验,可额外提供:
PR_BODY_FILE=/absolute/path/to/pr-body.md scripts/run_cross_pack_merge_gate.shmerge gate 当前会阻断:
cross_pack_pass_rate回退- benchmark
regressions非空 - PR 缺少
strongest pack delta / weakest pack delta / cross-pack pass-rate delta / rollback point - PR 缺少
Goal met / Out-of-scope changes introduced / commercialization / kernel-vs-current-pack polish等纪律字段 Does this improve kernel/product/ops instead of just current-pack polish? = no
Phase 0 guardrails:
source .venv/bin/activate
bash scripts/run_phase0_guardrails.sh当前会强制检查:
- root + nested
AGENTS.md存在 .github/pull_request_template.md持续保留 commercialization / kernel-first 纪律字段src/narrativeos/core/与rendering.py不得导入worldpacks- benchmark-enabled published
world_id不得硬编码进core/或rendering.py README.md持续引用 benchmark sampletests/cross_pack_benchmark_summary.md作为受版本控制的 benchmark markdown baseline,与当前 benchmark 生成结果保持同步
benchmark --worldpack all 当前已改为 registry-driven:
- 来源是
FileSystemWorldRegistry().list_benchmark_worldpacks() - 只覆盖
catalog_role = published且benchmark_enabled = true的 world packs - Author 模板资产
world_template_minimal.json会继续保留,但不会混入 benchmark / regression 的all集合
GET /healthGET /appGET /v1/examplesGET /v1/examples/{example_id}GET /v1/examples/demoGET /v1/worldsPOST /v1/worldsGET /v1/sessionsGET /v1/sessions/{session_id}DELETE /v1/sessions/{session_id}POST /v1/sessionsPOST /v1/sessions/{session_id}/stepGET /v1/sessions/{session_id}/replayPOST /v1/routes/previewGET /v1/library/worldsGET /v1/library/worlds/{world_id}POST /v1/reader/sessionsPOST /v1/reader/continueGET /v1/reader/sessions/{session_id}/quoteGET /v1/reader/entitlementsPOST /v1/reader/entitlements/grantGET /v1/reader/sessions/{session_id}/replayGET /v1/author/draftsPOST /v1/auth/registerPOST /v1/auth/loginGET /v1/auth/mePOST /v1/auth/logoutGET /v1/author/brief-templatePOST /v1/author/draftsPOST /v1/author/drafts/from-briefPOST /v1/author/drafts/validatePOST /v1/author/drafts/{world_version_id}/simulatePOST /v1/author/drafts/{world_version_id}/submitGET /v1/author/workflowGET /v1/author/drafts/{world_version_id}/collaborationGET /v1/author/reviewer-inboxGET /v1/author/notification-preferencesPOST /v1/author/drafts/{world_version_id}/commentsPOST /v1/author/comments/{thread_id}/replyPOST /v1/author/comments/{thread_id}/statusPOST /v1/author/comments/{thread_id}/watchersPOST /v1/author/comments/{thread_id}/watchers/{watcher_id}/removePOST /v1/author/drafts/{world_version_id}/watchersPOST /v1/author/drafts/{world_version_id}/watchers/{watcher_id}/removePOST /v1/author/drafts/{world_version_id}/approval/requestPOST /v1/author/drafts/{world_version_id}/approval/decisionPOST /v1/author/notifications/{notification_id}/statusPOST /v1/author/notifications/bulk-statusPOST /v1/author/notification-preferences
Author draft detail / simulate 现在还会直接暴露:
diff_drilldown- 每个 revision 的结构化 diff summary
- 角色 / 场景 / capability 改动明细
- revision compare 与 simulation delta
section_change_counts / recommended_next_actions / simulation_freshness
simulation_drilldownissue_histogram / module_histogramdecision_histogram / story_phase_histogram / scene_function_histogramissue_focus_queueweakest_chapterschapter_breakdownquality_pass_summarychapter_tracenext_actions
validation_drilldownblockers / warning_groups / next_actions
revision_compare- latest revision vs previous revision 的结构与 simulation delta 对照
before_after_chapter_compare- latest simulation vs previous simulation 的章节前后对照
collaboration- anchored comments / blocking threads / latest approval state
queue_summary / assignee_queues / threads_by_anchor / notification_summary- thread payload 现会带
messages / watchers / watcher_ids / notifications - collaboration summary 现会带
draft_watcher_summary
reviewer_inbox- assigned open threads / blocking assigned threads / pending approvals / unread notifications
- filters:
world_version_id / status_filter / notification_type / blocking_only / cursor / q - quick triage for
read / archive / resolve / approve / changes_requested - bulk actions:
bulk notification status
notification_preferences- per actor + per event type 的
in_app_enabled / async_mirror_enabled / async_sink_name / delivery_target
- per actor + per event type 的
auth- bearer token auth 现已可用于 Author APIs
- identity precedence:
Authorization Bearer>X-NarrativeOS-*headers > legacy body fields
Author 主路径现在建议按这个顺序演示:
根据 Brief 生成 Draft- 查看
主路径引导 - 如果 workflow 显示已自动通过当前校验,直接
运行 Simulation - 修改一处角色 / 场景 / 风格配置
- 查看 workflow 变成
修改后待重跑 重新运行 Simulation- workflow 进入
准备送审 送审
面板变化说明:
- 创建后:应自动聚焦到
Draft Detail - 校验/自动校验后:应在
主路径引导与Validation中看到当前状态 - 模拟后:应自动聚焦到
Simulation - 保存 revision 后:应自动聚焦到
Asset Diff,且 workflow 显示re_simulate - 送审后:应自动聚焦到
Version History GET /v1/ops/review-queueGET /v1/ops/worlds/{world_id}/statusGET /v1/ops/worlds/{world_id}/historyPOST /v1/ops/review-samplesGET /v1/ops/review-samplesGET /v1/ops/review-sample-backlogGET /v1/ops/export/training-signalPOST /v1/ops/world-versions/{world_version_id}/publishPOST /v1/ops/worlds/{world_id}/rollbackGET /v1/ops/metersGET /v1/ops/schema-lifecycleGET /v1/ops/eval-metricsGET /v1/ops/cross-pack-quality
specs/openapi.yaml 已和当前实现同步更新。
当前验证基线:
./.venv/bin/python -m pytest -q:215 passed, 2 warningspython -m src.narrativeos.demo:可稳定运行demo.py连跑 3 次输出稳定:默认返回 Reader Mode 章节摘要与正文预览python -m src.narrativeos.benchmark.runner --baseline-file tests/benchmark_baseline.json --markdown-out artifacts/cross_pack_benchmark_summary.md:可稳定输出 JSON + markdown summary,包含strongest_packs / weakest_packs / top_failing_packs / delta_summary.ranking_changes;tests/cross_pack_benchmark_summary.md保存当前受版本控制的 markdown baselinepython -m src.narrativeos.benchmark.runner --baseline-file tests/long_route_benchmark_baseline.json --max-chapters 36 --min-end-turn-override 30 --markdown-out artifacts/long_route_benchmark_summary.md:可稳定输出 long-route JSON + markdown summary,包含long_route_summary / completion_ratio / stop_reason / mid_arc_pass_rate / late_arc_pass_ratescripts/run_cross_pack_merge_gate.sh:可本地执行 cross-pack merge gate;GitHub Actions 的cross-pack-qualityworkflow 也会调用同一套 gate 逻辑cross-pack-qualityworkflow 现已在 benchmark step 显式使用sqlite:///narrativeos_beta.db,避免 CI 中DATABASE_URL缺失时 benchmark runner 直接失败- 当前 benchmark 基线:
cross_pack_pass_rate = 0.933strongest packs(composite diagnostic)=jade_court_exam / xianxia_forgotten_vowweakest packs(更偏诊断,不只看 pass rate)=jade_court_romance / synthetic_min_pack / urban_mystery_lotus_lanebenchmark delta = +0.000,当前无 regressions weakest packs 现可直接看到issue_mix / long_route_quality / mid_arc_drop / dialogue_distinctness / weakest_dimensionsweakest diagnostics 现已补出worst_chapters / module-asset-policy attribution / next_fix_candidatesmerge gate 现已要求 strongest / weakest / cross-pack delta 证据,不再只接受“某个 pack 看起来更好” Q03 / Q04 / Q05 / Q09 定向修复框架现已接入默认 draft 生成链 - 当前 long-route benchmark(
36 / 30)基线:cross_pack_pass_rate = 1.000avg_completion_ratio = 1.000strongest packs(long-route)=xianxia_forgotten_vow / jade_court_examweakest packs(long-route)=jade_court_romance / urban_mystery_lotus_lane / synthetic_min_packpacks_reaching_target = urban_mystery_lotus_lane / xianxia_forgotten_vow / jade_court_exam / jade_court_romance / synthetic_min_packpremature_ending_packs = -这说明 long-route survivability 已不再主要受no_legal_routes限制,当前长线弱项已从“跑不长”转向具体的Q03 / Q05内容质量残留 - 浏览器验证通过:
/app可切换Reader / Author / OpsReader 可切换Duty / Romanceworlds、创建/恢复/删除 session、预览 route、执行 step、查看 replay Reader 具备Story Feed + Sticky Composer + suggested_prefillAuthor 可把当前世界存成 draft、触发 simulate、submit for review,并查看revision compare / before-after chapter compare / issue heatmap / weakest chapters / chapter breakdown / style-pacing-hook controls / collaboration / approvalOps 可查看 review queue、publish、rollback、查看 metering Ops 可查看cross-pack quality、top failing packs、metric delta
- 仓库目标运行时仍建议使用
Python >= 3.11 - 当前这台机器实际可用的是
python3 3.9.6,本次验证在.venv中基于它完成 - 因此 README 保留了 3.11 目标,但如果你要复现实验结果,优先以本仓库
.venv为准
- 最优先的下一步是把
worldpacks/和services/从当前最小实现继续做深:真正接 Postgres、补 Alembic、把 review / metering / entitlement 变成生产级 - 第二优先级是继续扩容世界内容库,把单路线从 8-12 章继续拉长到更接近连载长度,并为更多角色补完整语言习惯库
- 第三优先级是把 Author / Ops 前端从最小骨架升级为真实工作台,并把
specs/openapi.yaml对齐到新增 Beta 路径 - 如果要进入多人或长流程使用,下一步应补 Alembic 迁移、数据库索引、session 并发安全与 replay 查询分页
- 如果要进入创作者工作流,建议补 creator controls 的管理 API、权重可视化、phase/ending gate 编辑器和世界内容库工具
narrativeos_codex_handoff/
├── README.md
├── TASKS_FOR_CODEX.md
├── CODEX_HANDOFF_PROMPT.md
├── pyproject.toml
├── requirements.txt
├── .env.example
├── configs/
├── docs/
├── examples/
├── prompts/
├── specs/
├── src/narrativeos/
│ ├── api.py
│ ├── canon.py
│ ├── critics.py
│ ├── demo.py
│ ├── intent.py
│ ├── memory.py
│ ├── models.py
│ ├── pipeline.py
│ ├── prompts.py
│ ├── providers.py
│ ├── rendering.py
│ ├── repository.py
│ ├── schemas.py
│ ├── scoring.py
│ └── search.py
└── tests/