Close the message and lesson gaps that two real concept-loop corrections showed #1764
Labels
No labels
P0
P1
P2
P3
bug
category/code-change
category/cross-repo
category/eval-run
category/investigation
category/no-test-target
category/owner-ruling
category/prose-artifact
category/recurring-chore
category/structure
category/umbrella
crc-refactor
create
delete
enhancement
filed-by/agent
filed-by/user
frozen
lint-rule
needs-info
needs-triage
next
plugin/cc-architect
plugin/os
plugin/os-adr
plugin/os-aidd-lint
plugin/os-backlog
plugin/os-context
plugin/os-doc-hygiene
plugin/os-sdlc
plugin/os-vault
project/cc-os
ready-for-agent
ready-for-human
recurring
review
rule-proposal
update
waiting
wayfinder:grilling
wayfinder:map
wayfinder:map
wayfinder:research
wayfinder:task
wayfinder:task
wontfix
worklist/deviations
worklist/lint-rule
worklist/new-implement-build
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
jared/cc-os#1764
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
Two real corrections were made from the concept-loop cop package on 2026-11-13, each by one agent that got only the offense and the lesson. Both corrections were correct. Each agent reported facts that the message or the lesson did not give, and that it had to find in the code.
Observed
Sdlc/Structural/ClassInWrongConceptatlib/os_sdlc/dispatch/async_launch.rb:5(correction4e047e76a):ConceptCallsItsCallerwent from 11 to 13 offenses. The message does not say this.bin/system-model build --target os-sdlc.Sdlc/Structural/ConceptCallsItsCalleratlib/os_sdlc/project/config_command.rb:29(correctiond6a345222):Hook) calls a method (connect) that is at none of the listed lines.StartingCodeInSharedConceptgives 19 offenses for 18 references, so the agent could not compare the stated effect with the cop counts.Reproduce
n/a: the two corrections are merged; the offenses no longer exist.
Approach
Correct the message forms and the two lessons for the items above. Each new value in a message comes from
OsSdlc::Lint::ConceptCycleCheck::Kinds::Report. Lesson text holds no repository names.Origin
plugins/os-sdlc/.cc-os/os/handoffs/2026-11-13-1547-concept-cycle-package.md; the two agent runs that made commits4e047e76aandd6a345222.plugins/os-sdlc/lib/os_sdlc/cops/structural/class_in_wrong_concept/move.rb,plugins/os-sdlc/lib/os_sdlc/cops/structural/concept_calls_its_caller/,plugins/os-sdlc/lint-lessons/sdlc-structural-class-in-wrong-concept.yml,plugins/os-sdlc/lint-lessons/sdlc-structural-concept-calls-its-caller.ymlVERDICT: CREATE
Gaps from the PipelineScript move (commit
69d3dba65, one agent run from the offense and lesson only; StartingCodeInSharedConcept 19 to 0, loop reports 62 to 42):12. The lesson says 'move the test file' but not to fix its relative require_relative path; the suite failed to load until the agent changed it.
13. The message's list of test files is incomplete: test/support files that hold the old name as strings are not listed. One listed test file was a false hit (only a method name matched).
14. 'References that stay' lists the superclass line and says each name must start with the old concept; for a superclass that IS the old concept, nothing changes. The rule is unclear for that line.
15. The lesson tells the agent to update present documents but does not say a document can be outside the plugin directory (docs/architecture/ at the repository root).
16. The lesson says 'run the generator' (see item 2); state when not to (generated files already stale) or how to keep the regeneration diff scoped.
17. The message does not say that decision records, History rows, and research records keep the old name; only the lesson says it.
18. The project test command comes from .sdlc/project.yaml (ruby test/all.rb); there is no Rakefile. A lesson that names a test command must read it from there.
Resolution
Done: Items 1-18: lesson text for 2,3,4,7,8,10,11,12,15,16,18; message code for 1,5,6,9,13,14,17 (new values from Kinds::Report).
Evidence:
b9fbc7c0dmerged to main; suite 5568 runs 0 failures; sweep counts on lib unchanged 33/0/0/9Follow-ups: dropped: per-cop offense count after a move (item 1) and the exact method each user calls (item 6) need large new computations; the messages now state the total and tell the agent to read the method; re-file if a real correction misses either