Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/hygiene-history/ticks/2026/05/01/1005Z.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
| 2026-05-01T10:05:00Z | opus-4-7 / autonomous-loop tick | 98fc7424 | PR #1025 follow-up tick — 1 thread (Copilot P1 xref). The "Aaron-is-Rodney rule" cross-reference cited the rule by **name only**, not by canonical filename. Added the filename `memory/feedback_aaron_is_rodney_razor_not_immune_to_canonicalization_aaron_2026_04_30.md` inline (verified existence via `git ls-tree -r --name-only origin/main`). **Same class as PR #1042's wildcard-not-navigable** (composes-with refs are content-addressed pointers, not semantic indicators) but with a sharper lesson: when a substrate file *cites* a memory file by name in prose ("the Aaron-is-Rodney rule"), the corrective is to **dual-reference**: keep the prose name AND add the canonical filename. The prose stays readable; the filename stays grep-able. Single-reference (name-only OR filename-only) is suboptimal — name-only loses navigation; filename-only loses readability. Thread resolved via GraphQL. PR #1025 substrate; auto-merge unarmed. Cron 98fc7424 healthy. | [PR #1025: 1 commit (708d950) addressing 1 finding + 1 thread-resolution; auto-merge intentionally unarmed] | The dual-reference discipline is structurally a special case of **named-link / Real-fix subclass** — when a substrate file references a class/concept that has a canonical memory file backing it, the prose-form ("the X rule") should be paired with the path-form (`memory/feedback_x_*.md`). The pair gives readers both the cognitive handle (the name) and the navigation handle (the path). This is a different shape from forward-reference (path-only, file in flight) and from wildcard-not-navigable (path-with-glob); it's the substrate-level discipline of **prose-name → path-pair atom is the correct citation atom**. Future-Otto: when authoring "the X rule" / "the Y discipline" / "the Z framework" cross-references in substrate prose, immediately add the canonical filename inline as a backtick-wrapped path. The cost is ~50 chars; the saved cost is per-reader navigation-friction. The pattern catalog promotion next session should add this as a fourth class member alongside forward-reference / wildcard-not-navigable / stale-filename. |
Copy link

Copilot AI May 1, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 (xref): This tick row includes a wildcard memory-path example (memory/feedback_x_*.md). In this repo, wildcard cross-references like feedback_* are treated as broken pointers (see memory/feedback_external_reviewer_known_bad_advice_classes_check_our_rules_first_otto_292_2026_04_25.md §“B-9. Add wildcard cross-references”). Please rewrite the example to avoid * (e.g., memory/feedback_<slug>_<date>.md, or describe the pattern without a path-shaped string) so it can’t be mistaken for a navigable/verifiable reference.

Suggested change
| 2026-05-01T10:05:00Z | opus-4-7 / autonomous-loop tick | 98fc7424 | PR #1025 follow-up tick — 1 thread (Copilot P1 xref). The "Aaron-is-Rodney rule" cross-reference cited the rule by **name only**, not by canonical filename. Added the filename `memory/feedback_aaron_is_rodney_razor_not_immune_to_canonicalization_aaron_2026_04_30.md` inline (verified existence via `git ls-tree -r --name-only origin/main`). **Same class as PR #1042's wildcard-not-navigable** (composes-with refs are content-addressed pointers, not semantic indicators) but with a sharper lesson: when a substrate file *cites* a memory file by name in prose ("the Aaron-is-Rodney rule"), the corrective is to **dual-reference**: keep the prose name AND add the canonical filename. The prose stays readable; the filename stays grep-able. Single-reference (name-only OR filename-only) is suboptimal — name-only loses navigation; filename-only loses readability. Thread resolved via GraphQL. PR #1025 substrate; auto-merge unarmed. Cron 98fc7424 healthy. | [PR #1025: 1 commit (708d950) addressing 1 finding + 1 thread-resolution; auto-merge intentionally unarmed] | The dual-reference discipline is structurally a special case of **named-link / Real-fix subclass** — when a substrate file references a class/concept that has a canonical memory file backing it, the prose-form ("the X rule") should be paired with the path-form (`memory/feedback_x_*.md`). The pair gives readers both the cognitive handle (the name) and the navigation handle (the path). This is a different shape from forward-reference (path-only, file in flight) and from wildcard-not-navigable (path-with-glob); it's the substrate-level discipline of **prose-name → path-pair atom is the correct citation atom**. Future-Otto: when authoring "the X rule" / "the Y discipline" / "the Z framework" cross-references in substrate prose, immediately add the canonical filename inline as a backtick-wrapped path. The cost is ~50 chars; the saved cost is per-reader navigation-friction. The pattern catalog promotion next session should add this as a fourth class member alongside forward-reference / wildcard-not-navigable / stale-filename. |
| 2026-05-01T10:05:00Z | opus-4-7 / autonomous-loop tick | 98fc7424 | PR #1025 follow-up tick — 1 thread (Copilot P1 xref). The "Aaron-is-Rodney rule" cross-reference cited the rule by **name only**, not by canonical filename. Added the filename `memory/feedback_aaron_is_rodney_razor_not_immune_to_canonicalization_aaron_2026_04_30.md` inline (verified existence via `git ls-tree -r --name-only origin/main`). **Same class as PR #1042's wildcard-not-navigable** (composes-with refs are content-addressed pointers, not semantic indicators) but with a sharper lesson: when a substrate file *cites* a memory file by name in prose ("the Aaron-is-Rodney rule"), the corrective is to **dual-reference**: keep the prose name AND add the canonical filename. The prose stays readable; the filename stays grep-able. Single-reference (name-only OR filename-only) is suboptimal — name-only loses navigation; filename-only loses readability. Thread resolved via GraphQL. PR #1025 substrate; auto-merge unarmed. Cron 98fc7424 healthy. | [PR #1025: 1 commit (708d950) addressing 1 finding + 1 thread-resolution; auto-merge intentionally unarmed] | The dual-reference discipline is structurally a special case of **named-link / Real-fix subclass** — when a substrate file references a class/concept that has a canonical memory file backing it, the prose-form ("the X rule") should be paired with the path-form (`memory/feedback_<slug>_<date>.md`). The pair gives readers both the cognitive handle (the name) and the navigation handle (the path). This is a different shape from forward-reference (path-only, file in flight) and from wildcard-not-navigable (path-with-glob); it's the substrate-level discipline of **prose-name → path-pair atom is the correct citation atom**. Future-Otto: when authoring "the X rule" / "the Y discipline" / "the Z framework" cross-references in substrate prose, immediately add the canonical filename inline as a backtick-wrapped path. The cost is ~50 chars; the saved cost is per-reader navigation-friction. The pattern catalog promotion next session should add this as a fourth class member alongside forward-reference / wildcard-not-navigable / stale-filename. |

Copilot uses AI. Check for mistakes.
Loading