Skip to content

D721 — A write says what lint will flag and where the commit is

Decision. A write response says what the agent would otherwise learn later and by other means. map_create and map_update add a warnings entry when the title is one kb_review would flag as map_naming. source_register adds one when the title is flagged title_quality (length, decoration, forbidden terms) under the sources map contract. A write whose push failed for a reason other than a conflict reports committed, commit_sha, unpushed_commits and a hint that the commit is safe in the local clone. A write refused by D311, because local commits are unpushed, says that nothing was written and that syncing failed, with the error. doctor_suggested ignores info findings only while no doctor session has ever run. client bind asks the server for the mounted KBs before it warns that a KB is unknown, without rewriting the cached list (sync owns it).

Why. An agent importing a large source corpus learned each of these only afterwards: from a kb_review run over hundreds of pages, from git status in a clone it was told not to touch, or from a doctor nudge on a KB created minutes earlier. A small model takes the nudge literally and stops to tidy instead of importing. The rule already existed in each case; the agent just heard about it too late.

Alternatives rejected. - Refusing a long map or Source title: the rule is a review heuristic, not an invariant, and a refused write costs a retry for something the agent can fix later. - A timer that retries a failed push, so the message could say when the next attempt happens: it would be a new background mechanism, and today the next write or sync already retries. - Leaving info findings in doctor_suggested and waiting a grace period after the KB is created: on a new KB info findings are the whole list, so the grace period would only delay the same false nudge. - Refreshing the client bind cache on every bind, or persisting the fresh list: the cache belongs to sync together with the routed path. - Excluding info findings from doctor_suggested for good: an established KB with only repairable info debt (link_to_retired) would never be nudged (D336).

Consequences. MapTitleIssues and EffectiveTitleMaxLength in internal/lint are now the single home of these rules: kb_review, title_quality and the write warnings must keep calling them, never copies. Every warnings array is advisory: a client that ignores it behaves as before. Before the first doctor session doctor_suggested turns on only for warning or error findings, or for review items; afterwards every finding counts.