Repository navigation
feat: resolve_concern — cross-repo concern-based querying MCP tool - #1
Merged
Merged
Conversation
Sets up execution-log.json for DES monitoring of the resolve_concern implementation. DELIVER wave in progress on this branch. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lking skeleton Step-ID: 01-01 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…format-response Step-ID: 01-01 RED_UNIT Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… only CLAUDE.md When the docs directory does not exist but CLAUDE.md is present at the repo root, the probe check was skipping the repo entirely. Now also checks for CLAUDE.md existence before deciding to skip, enabling repo-conventions matches when no docs structure is present. Step-ID: 02-01
…enarios All 7 release-1 scenarios passing: feature-level match, ADR match, repo-conventions match, relevance ordering, and CONCERN_NOT_FOUND. matchConcernInSnapshot and format-response.ts implementation complete. Step-ID: 02-02 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Step-ID: 03-01 All 4 cross-repo scenarios were already passing via the handler implemented in step 01-01. Full suite (303 tests, 14 files) passes. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ure warning Step-ID: 04-01 Implementation was already delivered as part of the walking skeleton (commit 613d7ea). All 5 acceptance scenarios in release-3-rejected-paths and all 303 tests pass. detectRejectedPaths splits content into paragraphs, filters by concern + rejection keyword, caps snippets at 1500 chars. formatResolveConcernResponse appends partial-structure warning when no feature-level matches exist. Architectural constraints verified clean. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
L1: Remove unused StructuredError type import from server.ts. L1/L2: Eliminate duplicate path.dirname(entry.docPath) computation in resolve_concern handler (repoRootForEntry vs repoRoot in same loop body). No changes needed in concern-matcher.ts or format-response.ts — both were already clean. Step-ID: refactor
… integrity log Step-ID: finalize
6 tasks done
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
Adds a new MCP tool
resolve_concern(concern: string)to LoreMCP that lets an AI agent ask "what owns auth?" without knowing upfront which repo or feature to look in.This PR covers the full nWave wave sequence (DISCUSS → DESIGN → DISTILL) plus the DELIVER implementation (in progress on this branch).
Problem
query_contextrequiresrepo_name+feature_id— the agent must already know the landscape. Before designing a new feature, an agent doesn't know where constraints live. It needs cross-repo, concern-based querying.What's in this PR
DISCUSS wave (
docs/feature/concern-based-querying/discuss/):DESIGN wave (
docs/feature/concern-based-querying/design/,docs/product/architecture/):architecture-design.md: Changes Per File table for the crafterbrief.mdextended: C4 Component diagram,INVALID_CONCERN+CONCERN_NOT_FOUNDerror codesDISTILL wave (
tests/acceptance/concern-based-querying/):src/core/concern-matcher.ts(throws, TypeScript compiles clean)resolve_concerntool registration insrc/shell/server.tsDELIVER (in progress):
docs/feature/concern-based-querying/deliver/execution-log.jsoninitializedNew tool contract
Files to be implemented (DELIVER)
src/core/concern-matcher.tsvalidateConcern,matchConcernInSnapshot,detectRejectedPathssrc/core/format-response.tssrc/shell/server.tsresolve_concerntool registrationArchitecture constraints maintained
src/core/stays pure (no fs imports) — dependency-cruiser enforced🤖 Generated with Claude Code