Skip to content
This repository was archived by the owner on Apr 5, 2026. It is now read-only.

Commit 9ce8321

Browse files
HerbHallclaude
andauthored
docs: autolearn session -- CHANGELOG exclusion + metadata validator gotcha (#402)
New entries: - AP#132: Exclude release-please CHANGELOG from markdownlint - KG#156: DevKit CI metadata validator parses all cross-references Learnings from sprint execution session where replace_all on asterisk list markers corrupted bold markers, and extra pipe fields in Added lines broke CI metadata validation. Co-authored-by: Claude <noreply@anthropic.com>
1 parent f444302 commit 9ce8321

2 files changed

Lines changed: 18 additions & 2 deletions

File tree

claude/rules/autolearn-patterns.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Learned patterns from past sessions. Read when encountering similar situations.
33
tier: 2
4-
entry_count: 68
4+
entry_count: 69
55
last_updated: "2026-03-17"
66
---
77

@@ -687,3 +687,11 @@ MUI Popper needs `anchorEl` during render. `useRef` + `ref.current` triggers Rea
687687
**Context:** Parallel PRs modifying a shared Go interface (e.g., Provider with Embed/EmbedBatch/Ping) create cascading conflicts in mock implementations across test files. Automated keep-both-sides scripts cannot resolve these correctly.
688688
**Fix:** Merge the interface-changing PR first, then rebase dependent PRs onto updated main. When conflicts arise on already-pushed PRs, spawn a fresh worktree agent to rebuild the change on current main -- faster and more reliable than manual conflict resolution.
689689
**See also:** AP#127 (worktree isolation), KG#149 (worktree branch collision), AP#82 (rebase conflict resolution)
690+
691+
## 132. Exclude Release-Please CHANGELOG From Markdownlint
692+
693+
**Added:** 2026-03-17 | **Source:** DevKit | **Status:** active
694+
695+
**Category:** ci-config
696+
**Context:** Release-please generates CHANGELOG.md with asterisk list markers (`*`) and double blank lines. These violate MD004 and MD012 but cannot be fixed -- the file is regenerated on each release.
697+
**Fix:** Add `"CHANGELOG.md"` to the `ignores` array in `.markdownlint-cli2.jsonc`. Do not attempt `replace_all` on asterisk-space -- it corrupts bold markers (`**text:**`) inside list items.

claude/rules/known-gotchas.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
description: Known gotchas and platform-specific issues. Read when debugging unexpected behavior.
33
tier: 2
4-
entry_count: 57
4+
entry_count: 58
55
last_updated: "2026-03-17"
66
---
77

@@ -623,3 +623,11 @@ Windows CRLF (`\r\n`) causes silent failures across multiple tools. Three known
623623
**Platform:** Claude Code (all)
624624
**Issue:** stdio-based MCP servers (sqlite, memory, sequential-thinking, context7, ms365-onenote) hang indefinitely when they fail to initialize (wrong path, missing auth, process crash). Tool calls never return and the session must be manually cancelled. The "If unavailable, skip" instruction in workflows has no way to detect unavailability before attempting the call.
625625
**Fix:** Before calling any stdio MCP tool, verify it appears in the available tools list. If not listed, skip the call entirely. For workflows, add explicit pre-check instructions. HTTP-based MCP servers (Synapset) fail fast with connection errors instead of hanging.
626+
627+
## 156. DevKit CI Metadata Validator Parses All Cross-References in Text
628+
629+
**Added:** 2026-03-17 | **Source:** DevKit | **Status:** active
630+
631+
**Platform:** DevKit CI (lint.yml)
632+
**Issue:** The metadata validator (`Validate rule metadata` job) scans all text for `KG#N` and `AP#N` patterns and checks for matching `## N.` entries in the target file. References in descriptive prose (e.g., "archived as KG#148") trigger validation failures if the entry was archived. Additionally, extra pipe-separated fields on `**Added:**` lines (e.g., `| **Researched:** 2026-03-17`) break status parsing because the validator expects exactly 3 fields: Added, Source, Status.
633+
**Fix:** When referencing archived entries, omit the `KG#`/`AP#` prefix (use descriptive text instead). Never add extra pipe fields to `**Added:**` lines.

0 commit comments

Comments
 (0)