Class WorkspaceClaudeMdReconciler
- All Implemented Interfaces:
Reconciler
CLAUDE.md in lockstep with its
generator (IKE-Network/ike-issues#790).
The cheatsheets (GOALS.md, WS-REFERENCE.md) were
promoted to continuous reconciliation by CheatsheetReconciler
(#452), but the generated workspace-root CLAUDE.md was left
behind: it is written only at the tail of SubprojectInitializer's
initial ws:scaffold-init pass. A workspace that exists without a
CLAUDE.md — created before the generator landed, or renamed —
therefore never gets one, because nothing backfills it. This reconciler
closes that gap so ws:scaffold-draft reports the drift and
ws:scaffold-publish heals it, exactly like the cheatsheets.
Only the fully-generated CLAUDE.md is managed here. Hand-authored
notes live in CLAUDE-<ws>.md, which SubprojectInitializer
creates if absent and never overwrites — so they are intentionally outside
this reconciler's scope.
Source-of-truth lives in
SubprojectInitializer.generateWorkspaceClaudeMd(String, network.ike.workspace.WorkspaceGraph),
already static so this reconciler can call it without additional plumbing.
Opt-out: -DupdateClaudeMd=false. Useful when the user has
intentionally edited CLAUDE.md and does not want
ws:scaffold-publish to overwrite it.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidapply(WorkspaceContext ctx) Apply reconciliation.detect(WorkspaceContext ctx) Inspect the workspace and report any drift this reconciler would correct.Human-readable name of the dimension this reconciler owns.The Maven property name (without the-Dprefix) that opts out of this reconciler's apply pass.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Reconciler
pinFlag
-
Constructor Details
-
WorkspaceClaudeMdReconciler
public WorkspaceClaudeMdReconciler()
-
-
Method Details
-
dimension
Description copied from interface:ReconcilerHuman-readable name of the dimension this reconciler owns. Used as the heading inscaffold-draftoutput.- Specified by:
dimensionin interfaceReconciler- Returns:
- the dimension label, e.g. "Denormalized YAML fields"
-
optOutFlag
Description copied from interface:ReconcilerThe Maven property name (without the-Dprefix) that opts out of this reconciler's apply pass. Setting the property to"false"skips this dimension on a givenscaffold-publishinvocation.- Specified by:
optOutFlagin interfaceReconciler- Returns:
- the opt-out flag name, e.g.
"updateFields"
-
detect
Description copied from interface:ReconcilerInspect the workspace and report any drift this reconciler would correct. Read-only — must not mutate the workspace.- Specified by:
detectin interfaceReconciler- Parameters:
ctx- the workspace context- Returns:
- drift report;
DriftReport.noDrift(String)if nothing to do
-
apply
Description copied from interface:ReconcilerApply reconciliation. Caller is responsible for checkingReconcilerOptions.isOptedOut(String)before invoking; implementations may also re-check defensively.- Specified by:
applyin interfaceReconciler- Parameters:
ctx- the workspace context
-