用途与实际影响
这项功能怎样使用
为什么需要它
公开索引只展示适合公开的仓库信息,也可能落后于真实远端。完整登记和当前仓库状态分开查,才能知道这次到底对齐了多少、哪些只是旧提示。
举个实际例子
我问:“现在项目仓库都对上了吗?先检查,别重复刷新。”系统比较当前登记、本地副本与远端;若一致就只说一致,发现真实变化才提刷新。
最后我会得到什么
得到仓库总数、本地和远端分别有多少、哪些仍需复查;这一轮登记核对一致,也不等于每个项目本身都能运行。
正常时
仓库身份、本地副本和登记一致时,只说总账当前对齐。
发现问题时
发现差异时指出具体仓库和需要复查的内容,不顺手改登记。
入口不可用或证据不足时
本地或 GitHub 暂时不可读时说明缺哪处,不从目录名或旧网页猜现状。
从哪里开始
在已接入 GitHub 总索引的 AI 对话中说出项目名,要求确认“这是哪个仓库、谁负责”。
需要准备什么
- 项目名或本地路径
- 预期的远端和可见性
从开始到拿到结果
- 1
定位唯一仓库
AI 从总账找到本地路径、远端身份和默认分支,不靠相似目录名猜。
- 2
核对责任和现场
比较登记与真实 Git/GitHub 状态,并分清项目业务负责人。
- 3
交回导航结论
给出可继续使用的仓库身份;不一致或远端不可见时标出具体冲突,不把旧索引说成实时事实。
技术实现与依据
这里保留实现、关键条件、精确入口、历史记录和验证结果。
9月22日身份与基线均45;24公开/21私有,45本地/0仅远端;delta=0、issue=0,关注记录与当前问题分开关键规则与设计选择
identity baseline(身份基线) 与现场一致且无 issue 时,仓库总账可视为 current(当前状态)。
普通零写status发现新增、删除、visibility(公开或私有属性)或默认分支差异时返回review_needed,不自行改基线;正常完整refresh会在同一命令内自动推进已有有效v3基线并回读。
-MigrateBaseline只保留显式首次bootstrap/repair用途;有效基线的普通增量不再要求额外迁移。缺失previous的历史不能被伪造补齐。
总索引自身 origin identity 不符时先 blocked,且不读取 baseline、registry(登记清单)、GitHub 或本地 root。
GitHub CLI(命令行工具) 或远端元数据执行失败属于 execution error,不伪造 domain conclusion(领域结论)。
普通 commit/push 不写里程碑;只有真实、已确认且有公开安全理由的发布节点才显式记录。helper 返回 changed 只表示记录文件变化,不代表 Git commit/push 已完成。
PUBLIC(公开) 页面按决策价值选择仓库明细或聚合计数;PUBLIC(公开)/PRIVATE(私有) 都按具体值判断,只省略经实际审查需要保留的 L3+ 具体值、可复用凭据和不影响判断的噪声。
本模块用到的名词
- Owner baseline(责任源基线)
- 完整仓库 identity 的受管 current(当前状态)/previous 快照;不是 PUBLIC(公开) 子集,也不是一次 live 自比。
- domain_status(领域状态)
- 事实是 current(当前状态)、review_needed、blocked 还是 unknown(未验证);与 Provider 是否成功执行分开。
- history_gap(历史缺口)
- 第一次迁移没有可信 previous 全量基线;即使 current(当前状态) 内容有效,也不能伪装成连续历史。
- clone occurrence(clone 出现记录)
- 私有导航给出候选路径后,实际 `.git` origin 与 repo identity 一致的本机副本关联。
- semantic fingerprint(语义指纹)
- 对稳定事实规范化后计算的 SHA-256;字段顺序、观察时间和工作树噪声不会改变它。
- Milestone record(里程碑记录)
- 外层已确认的少量公开安全 Git 事实节点;稳定键重复不追加,最多读取当前50条,不等于完整 Git 历史。
专业定义
把仓库身份、公开属性和本地副本放进同一张账;当前45个,零写查询只报告变化,完整刷新才推进基线。
解决什么
人类需要可读总账,机器需要结构化完整身份,而页面不应为了完整性把所有动态路径和低价值明细全部铺开。若把公开 Markdown 当完整权威,新仓库会被漏掉;若把本机目录当仓库身份,旧 clone、重命名和 origin 错配会制造假事实。
当前怎样实现
- GitHub 全量 inventory 由现场 API 分页闭合;每项保留稳定 node id(稳定节点编号)、visibility(公开或私有属性)、默认分支 OID 和公开安全元数据。
- ignored(已被版本控制忽略) 私有导航 v2 保存 repo 到本机 clone 的定位,但只有 `.git` origin 回读一致才建立 clone occurrence。
- owner-baseline-store.v3 把完整 identity snapshot 与 nullable(可为空) local-root snapshot 分开;current(当前状态)、previous、hash(内容指纹) 和 receipt(执行回执) 原子读写。
- Refresh-GitHubLocalIndex.ps1先验证既有v3基线是否为missing或current(当前状态);invalid在公开generation(代际)发布前拒绝。正常full refresh原子发布generation(代际)并更新private(私有) clone navigation后,调用Invoke-RefreshGitOwnerBaselineAdvance,使用同一份fresh owner inventory做前后比较。
- 零delta返回owner_baseline.status=current(当前状态);完整有效的真实delta触发原子advance,必须execution_status=completed、domain_status=current(当前状态)、history_gap=false,再回读delta=0、issue=0才返回advanced。基线missing只返回skipped/owner_baseline_missing_requires_explicit_bootstrap,不静默建立首次历史。
- Get-GitOwnerStatus.ps1 只比较稳定 Owner 事实,排除工作树 dirty、ahead/behind(领先/落后提交数)、观察时间、索引 HEAD 和任务状态等高频噪声。
- governance registry(登记清单) 只输出规范化有效性和 fingerprint,不把内部条目内容放进 compact status。
- Add-PushRecord.ps1 是 pure-file(纯文件)且幂等的窄 helper:用稳定键去重、拒绝 secret-shaped reason,只更新目标记录并返回 changed,不 stage、commit、pull、rebase 或 push。
- Get-GitOwnerStatus 的 milestone_records 只读输出最多 50 条现存公开安全记录;空表是合法 current(当前状态),bootstrap_gap 与 retained_window_only 永久保留。
执行流程
- 1
核验 GitHub 总索引仓库自身 origin 与预期 identity
- 2
读取并验证 current(当前状态)/previous Owner baseline 和治理 registry(登记清单)
- 3
分页读取 GitHub 全量 identity,必要时关联 origin 已验证的 clone
- 4
规范化并比较 baseline 与 observed fact set
- 5
返回 domain_status、delta/issue 计数、history 和 fingerprint
- 6
若请求正常完整刷新且已有有效v3基线,先发布公开generation(代际)和导航,再自动advance/read-back(正式回读);只有缺失或修复才显式使用-MigrateBaseline
- 7
若外层 closeout 确认本次是真实里程碑,显式传入 repo/branch/commit/reason 调用 Add-PushRecord;读取结果时只消费 Owner Provider(Owner 现场提供器) 的有界 milestone_records
边界
- compact Owner status 不返回私有 local root、branch(分支)、worktree(Git 工作树)、dirty 或 task 状态
- 不扫描未声明的磁盘根;新 root 由显式 refresh 发现
- 公开 Markdown 是导航和投影,不是完整 owner baseline
- 普通status保持zero_write=true、fetch_performed=false;full refresh是独立写操作,会自动收敛已有有效基线,-MigrateBaseline仅为显式bootstrap/repair兼容入口
- 里程碑记录是有界补充来源,不是完整 Git 历史或每次 push 的事件流
失败与恢复
- 总索引自身 origin 缺失或不匹配
- 返回 completed/blocked 与有界 issue,阻止所有不可信下游读取。
- v3 baseline 缺失、无效或第一次 history gap
- 返回 unknown(未验证);不回退到 PUBLIC(公开) Markdown 或伪造 previous。
- 现场身份集合与基线不同
- 零写status返回review_needed和delta;用户发起正常完整刷新时,事实完整且已有有效基线就自动推进并回读,不再要求另跑迁移。
- 完整刷新时基线缺失、无效或推进回读失败
- 缺失时baseline推进标skipped并要求显式bootstrap;无效时在公开发布前停止。若公开generation(代际)已成功而随后基线推进失败,分别保留实际状态、报告未收口阶段,不谎称两层整体回滚。
- registry(登记清单) schema(数据结构)、重复 ref 或 retention 条目无效
- Owner current(当前状态) 失败关闭,只公开稳定问题代码。
- GitHub CLI(命令行工具) 不可用、非零退出或 JSON 无效
- 返回 execution_status=error、domain_status=unknown(未验证),供调用者决定重试。
- 里程碑 reason 像秘密、稳定键重复、文件锁或写入失败
- 不安全或失败时保持文件不变;重复项返回 changed=false。Git stage/commit/push 仍由外层处理。
真实入口
E:\GitHub总索引\tools\Get-GitOwnerStatus.ps1零写 compact Owner Provider(Owner 现场提供器)
E:\GitHub总索引\tools\Refresh-GitHubLocalIndex.ps1正常完整刷新中的有效基线自动advance与前后回读;仅缺失/修复走显式迁移
E:\GitHub总索引\docs\contracts\git.refresh-consistency.mdstatus零写、full refresh自动基线收敛与bootstrap/repair边界
E:\GitHub总索引\tools\Get-ProjectCognitionSource.ps1分页闭合的 GitHub 仓库来源与有界 compare
E:\GitHub总索引\tools\GitHubIndex.PrivateNavigation.psm1私有导航 v2 与 Owner baseline store v3
E:\GitHub总索引\config\git-artifact-governance.json专门 Owner、冻结历史和必要保留的 schema(数据结构) 来源;页面不展开条目
E:\GitHub总索引\00_总览\current-generation.json当前公开 generation(代际) 的兼容指针
E:\GitHub总索引\docs\contracts\git.milestone-record.md真实里程碑触发、pure-file写入、50条Provider输出与历史缺口合同
E:\GitHub总索引\tools\Add-PushRecord.ps1稳定键幂等、拒绝秘密形理由且不执行Git事务的记录helper
如何验证
- 2026-08-29 的 Test-GitOwnerStatus.ps1 历史回归通过:identity gate、zero write、全量 PUBLIC(公开)/PRIVATE(私有) 基线、history、registry(登记清单)、远端失败和无路径泄露。
- 2026-08-29 的 Test-ProjectCognitionSource.ps1 历史回归通过:分页闭合、稳定 node id(稳定节点编号)、origin 验证 clone、compare 上限、partial gaps 和无凭据输出。
- 2026-09-08T08:08:28.3009473Z 直接运行 Get-GitOwnerStatus:completed/current(当前状态)、zero_write=true、fetch_performed=false、baseline=48、observed=48、delta=0、issue=0;历史保留一次已接受过渡提醒。
- 2026-09-08T08:08:24Z 的 ProjectCognitionSource 为 complete,分页闭合:48个仓库,25 PUBLIC(公开)/23 PRIVATE(私有)、44个本地副本、4个仅远端;两种覆盖均完整。归档仍是仓库身份,不能因其退出网站展示就从GitHub实际总数中删除。
- 当前公开 pointer 明确声明 authoritative=false 与 decision_authority=false,避免投影冒充动态事实。
- 2026-09-02只读核对当前源码:正常完整刷新按generation(代际)/navigation→Invoke-RefreshGitOwnerBaselineAdvance排序;Run-UnitTests.ps1已有自动推进、无效基线前置拒绝和调用顺序断言。本次未执行有写入的完整refresh,也未把源码检查冒充新的基线推进回执。
- Test-PushRecord.ps1 验证 pure-file、幂等、并发去重、不安全理由拒绝和 no Git transaction(事务);Test-GitOwnerStatus.ps1 验证空表、稳定摘要、50条上界与公开安全失败关闭。
与其他模块的关系
它回答整个仓库集合是否可信和是否需要复核;单仓库 Admission(仓库准入检查) 再回答某个精确目录、工作树和分支现在能否安全继续。
