8.3 KiB
id, type, title, domain, repo, status, owner, topic_slug, planning_priority, planning_order, created, updated, state_hub_workstream_id
| id | type | title | domain | repo | status | owner | topic_slug | planning_priority | planning_order | created | updated | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| RAIL-FAB-WP-0012 | workplan | Baseline Rollout And Conflict Review | railiance | railiance-fabric | finished | codex | railiance | high | 12 | 2026-05-20 | 2026-05-20 | c7f85db5-59db-4f4b-bfe5-f984edb201f9 |
RAIL-FAB-WP-0012 - Baseline Rollout And Conflict Review
Goal
Start using the operational rescan loop in anger: run the local Fabric registry,
ingest a controlled baseline for a small repo allowlist, review the
repo-scoping discovery conflicts found by the dry-run, and decide whether the
baseline is clean enough to expand toward all-local-repo rollout.
The implementation should prove that RAIL-FAB-WP-0011 is not just a command
surface, but a usable operating loop for keeping Fabric discovery state fresh.
Background
RAIL-FAB-WP-0011 implemented:
.fabric-discoverysnapshot/report caches- previous-from-registry reconciliation
- idempotent unchanged ingest skipping
- safe acceptance policy
- registry discovery health/status surfaces
- automation-safe exit codes and locking
The first local-cache dry-run on 2026-05-20 scanned:
repo-scopingllm-connectrailiance-fabric
It completed with 3 scanned repos, 2 baselines, 1 changed repo, 7 conflicts, and
1 review-required repo. The registry-backed path could not run because the
local Fabric registry service was not listening on 127.0.0.1:8765.
Design Principles
- Keep the first baseline small and inspectable.
- Do not broaden to all repos while review conflicts are still unexplained.
- Prefer ingesting discovery baselines over accepting/projection until the conflict set is understood.
- Treat the registry service bootstrap as operational setup, not a source-code feature unless implementation gaps appear.
- Record enough evidence in docs and State Hub to make the next operator run repeatable.
Tasks
T01 - Registry Service Bootstrap
id: RAIL-FAB-WP-0012-T01
status: done
priority: high
state_hub_task_id: "53880e37-6800-47db-8c35-4278eb241da4"
Start or verify the local Fabric registry service on 127.0.0.1:8765 using the
repo-local .railiance-fabric/registry.sqlite3 database.
Acceptance notes:
- Verify whether a registry service is already listening on
127.0.0.1:8765. - Start
railiance-fabric-registry --db .railiance-fabric/registry.sqlite3 --port 8765when needed. - Confirm
/health,/status, and graph explorer routes respond. - Record the service command, database path, and log path used for the session.
- Avoid changing source code unless startup reveals a real defect.
T02 - Controlled Baseline Ingest
id: RAIL-FAB-WP-0012-T02
status: done
priority: high
state_hub_task_id: "1b945a9e-6193-4e34-8e3b-9b2d5a6aa828"
Run the small allowlist operational rescan against the live registry and ingest baseline discovery snapshots.
Acceptance notes:
- Use allowlist:
repo-scoping,llm-connect,railiance-fabric. - Use
--previous-from-registryand--ingest; do not use--acceptyet. - Confirm registry-backed first-baseline behavior for repos without prior discovery snapshots.
- Confirm unchanged follow-up runs skip ingest by default.
- Record discovery snapshot ids, report path, counts, and review-required conditions.
T03 - Repo-Scoping Conflict Review
id: RAIL-FAB-WP-0012-T03
status: done
priority: high
state_hub_task_id: "52e18533-df3f-4478-84bd-f8fa688d83e3"
Inspect the repo-scoping conflicts from the rescan report and classify what
they mean.
Acceptance notes:
- Open the latest report and/or discovery snapshot for
repo-scoping. - List the 7 conflicted candidates by stable key, kind, label, and evidence.
- Determine whether conflicts are expected duplicate-detection noise, real declaration/discovery disagreement, or scanner identity defects.
- Capture recommended action for each conflict: accept, ignore, improve scanner identity, improve repo declarations, or create follow-up workplan.
- Do not project accepted graph changes until this review is complete.
Review result:
- Latest
repo-scopingdiscovery snapshot:4, commitfd7f25866a94897acfdefaafc83a9d8336c1081b, generated2026-05-20T21:21:22Z. - Conflicted candidates are all
Lockfilenodes with labelsuv.lockorpackage-lock.jsonunder distinctvar/checkouts/...paths:llm-connect-ce2118b9dc59/uv.lock,markitect-main-1e0f80026926/package-lock.json,ops-bridge-9733411215b8/uv.lock,ops-warden-eac790a4872c/uv.lock,railiance-cluster-95d336518aae/uv.lock,vergabe-teilnahme-336b6f081ec8/package-lock.json, andvergabe-teilnahme-336b6f081ec8/uv.lock. - Classification: duplicate-detection noise for path-scoped lockfile entities.
The scanner is treating same kind plus same normalized label as enough to
raise
possible_duplicate_node, even when source paths clearly distinguish separate lockfiles. - Recommended action: refine duplicate detection for path-scoped nodes before broad rollout or acceptance projection. Lockfiles should require matching source anchor/path identity, not label alone, before being treated as possible duplicates.
T04 - Acceptance Policy Trial
id: RAIL-FAB-WP-0012-T04
status: done
priority: medium
state_hub_task_id: "7ceaa12a-8044-4fa1-82c3-d202a815e494"
Exercise the safe acceptance policy on the clean subset without forcing conflicted candidates through projection.
Acceptance notes:
- Identify whether
llm-connectandrailiance-fabrichave accepted repo-owned declaration candidates suitable for projection. - Run accept only where the safe policy allows it.
- Verify projected graph snapshots do not overwrite repo-owned declarations.
- Confirm
registry rescan-status --review-onlystill highlights unresolved conflict/review work. - Record any blocked acceptance reasons.
Trial result:
llm-connectdiscovery snapshot2is clean but contains onlycandidatereview-state discoveries, so no candidates were projected.railiance-fabricdiscovery snapshot3is clean, has accepted repo-declaration candidates, and was projected into accepted graph snapshot24with 49 nodes and 63 edges.- Projection appended a new graph snapshot with commit
discovery:9ad2750965f0100adcee2473b31ede6f7098205c; it did not mutate the earlier repo-owned graph snapshots. registry rescan-status --review-onlystill shows onlyrepo-scopingsnapshot4as review-required.
T05 - Rollout Readiness Decision
id: RAIL-FAB-WP-0012-T05
status: done
priority: medium
state_hub_task_id: "4a73225c-18ce-4ba6-89b9-cdc8c76ca5d9"
Decide whether the operational loop is ready for all-local-repo rollout or needs another targeted refinement first.
Acceptance notes:
- Summarize the small baseline outcome in docs and State Hub.
- State whether broad rollout is recommended now, recommended after conflict fixes, or blocked.
- If blocked or deferred, create a focused follow-up backlog item/workplan.
- If ready, propose the command and guardrails for all-local-repo baseline ingestion.
Decision:
- Broad all-local-repo rollout is deferred until duplicate detection respects path-scoped node identity for lockfile-style evidence.
- The operational loop itself is usable: registry service bootstrap, baseline ingest, unchanged skip, review-only status, and safe projection for clean accepted declarations all worked locally.
- Follow-up:
RAIL-FAB-WP-0013owns the path-scoped duplicate identity refinement and should be completed before the next broad rollout attempt.
Open Questions
- Are
repo-scopingconflicts caused by stale cache baselines from before the latest scanner refinements? - Should the first ingested baseline include conflicted discovery snapshots, or should conflicted repos be ingested only after review?
- Should the registry service be treated as a long-running local service with a documented startup command, or should this repo provide a helper command?
Close Criteria
- The local registry service is running and verified.
- The three-repo controlled baseline has been run against registry-backed previous snapshots.
- Baseline discovery snapshots are ingested or intentionally withheld with reasons.
repo-scopingconflicts are classified and turned into concrete next steps.- We know whether to proceed to all-local-repo rollout.