generated from coulomb/repo-seed
Closes the gap where recurring_error suggestions showed generic 'Investigate' instead of the curated recommendation. Added a covers[] field to SolutionPattern (lowercase substrings a pattern's recommendation also applies to) + Catalog.find_for (exact key first, then covers match against signal key+locus). Retro now resolves recommendations through find_for. Tagged the read-before-edit pattern with covers=['file has not been read','modified since read','file_not_read'] (v1.0.1). Live: file-not-read suggestions across all repos now inherit 'Read the file before Edit/Write'. 6 new tests; suite 158/158. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
64 lines
1.7 KiB
JSON
64 lines
1.7 KiB
JSON
{
|
|
"covers": [
|
|
"file has not been read",
|
|
"modified since read",
|
|
"file_not_read"
|
|
],
|
|
"created_at": "2026-06-07T13:26:25Z",
|
|
"distribution_ready": true,
|
|
"id": "sp-problem-file_not_read-edit",
|
|
"name": "Read before you Edit",
|
|
"polarity": "problem",
|
|
"problem": "Agents call Edit/Write on a file they have not read in the current session, or after it changed under them. The edit tools reject this ('File has not been read yet' / 'File has been modified since read'), and the retry burns a turn. Top recurring error in the corpus (12/27 sessions, 8 repos).",
|
|
"provenance": {
|
|
"detected_at": null,
|
|
"evidence": {
|
|
"frequency": 32,
|
|
"origin": "AGENTIC-WP-0006 error mining / ASSESSMENT-infra-friction.md",
|
|
"polarity": "problem",
|
|
"repos": 8,
|
|
"sessions": 12
|
|
},
|
|
"promoted_at": null,
|
|
"source_key": "problem:file_not_read:edit"
|
|
},
|
|
"rendering_hints": {
|
|
"claude": {
|
|
"target": "CLAUDE.md"
|
|
},
|
|
"codex": {
|
|
"target": "AGENTS.md"
|
|
},
|
|
"grok": {
|
|
"target": ".grok/instructions.md"
|
|
}
|
|
},
|
|
"resolutions": [
|
|
{
|
|
"detail": "Never blind-write a file you haven't read this session.",
|
|
"steps": [
|
|
"Read the target file",
|
|
"Then Edit/Write"
|
|
],
|
|
"summary": "Read the file (or the region you'll touch) before Edit/Write"
|
|
},
|
|
{
|
|
"detail": "A stale read means the file changed under you; refresh, don't loop.",
|
|
"steps": [
|
|
"Re-Read the file",
|
|
"Re-apply the Edit"
|
|
],
|
|
"summary": "On 'modified since read', re-Read then re-Edit"
|
|
}
|
|
],
|
|
"schema_version": 1,
|
|
"scope": {
|
|
"domains": [],
|
|
"flavors": [],
|
|
"repos": []
|
|
},
|
|
"status": "approved",
|
|
"updated_at": "2026-06-07T19:06:45Z",
|
|
"version": "1.0.1"
|
|
}
|