fix(citation-validator): normalize colons and backslash-brackets in anchor matching#101
Merged
WesleyMFrederick merged 5 commits intomainfrom Feb 19, 2026
Merged
Conversation
Adds comprehensive GSD system including: - 11 agent markdown files for task planning and execution - Continuous learning command framework - GSD file manifest and package configuration - Domain-driven design (DDD) skill and templates - OpenSpec changes for evidence tagging, Slack MCP, and transcript extraction Also updates: - User prompt submit hook improvements - Settings configuration enhancements - Baseline evidence verification skill - MyWorkflow schema and all template types (design, proposal, spec, tasks, etc.) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…leanMarkdownForComparison Fixes two false-positive patterns in findFlexibleAnchorMatch (issue #100): 1. Colon normalization: replace ':' with space to match Obsidian's heading anchor behavior (Obsidian: colon → space, not empty string). 2. Backslash/bracket stripping: remove '\' escape chars and lone '['/']' brackets, which Obsidian strips during its own heading comparison. Also fixes pre-existing biome.json config issues: 'files.includes' and 'assist' keys invalid in Biome 1.9.4; migrated to correct 1.9.4 schema with 'files.ignore' and 'organizeImports'. Closes: #100 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This was referenced Feb 19, 2026
bug(citation-validator): false positives on colon-in-heading and backslash-encoded anchor links
#100
Closed
Removes invalid link to cc-workflows-workspace-architecture.md which has been deleted from the archive. This resolves the last remaining validation error from issue #36. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…in-heading anchor Add test fixture and regression test to verify that the cleanMarkdownForComparison fix from issue #100 also resolves issue #27 (backtick anchors in headings). This ensures that anchor matching correctly handles backticks in heading text. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Owner
Author
Additionally resolves #36 (false positives for internal anchor patterns)Issue #36 reported 19 false positives on The colon and bracket normalization in The 1 real broken link (line 723, archived file reference) was already removed from the file in a prior commit. |
11 tasks
…f exists When a link references a block anchor without the caret prefix (e.g., #decision-skills instead of #^decision-skills), the validator now emits a warning suggesting the correct format. The link still resolves (valid with warning) since Obsidian handles both formats, but the caret form is canonical. The check correctly skips caret-ref definitions (^anchor patterns that ARE the block anchor) and only flags markdown links that reference block anchors without the caret prefix. Closes #81 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
findFlexibleAnchorMatch→cleanMarkdownForComparison:with space to match Obsidian's heading anchor behavior\escape chars and lone[/]bracketsbiome.jsonconfig (was referencing Biome 2.3.13 schema with Biome 1.9.4 installed)Additional issues resolved
ARCHITECTURE-Citation-Manager.mdfor internal anchors with URL-encoded spaces and dot-separated C4 patterns — all resolved by the same normalization fixcleanMarkdownForComparison#anchoris used but^anchorblock reference exists — suggests correct#^anchorformatRegression Tests
Test plan
cleanMarkdownForComparisonandvalidateAnchorExistsnpm run build -w tools/citation-manager)Closes #100
Closes #36
Closes #27
Closes #81
🤖 Generated with Claude Code