Skip to content

feat(descriptions): intent-first tool descriptions with dynamic Related resolution#172

Merged
polaz merged 1 commit intomainfrom
feat/#169-featdescriptions-intent-first-tool-descriptions-wi
Jan 24, 2026
Merged

feat(descriptions): intent-first tool descriptions with dynamic Related resolution#172
polaz merged 1 commit intomainfrom
feat/#169-featdescriptions-intent-first-tool-descriptions-wi

Conversation

@polaz
Copy link
Copy Markdown
Member

@polaz polaz commented Jan 24, 2026

Summary

  • Rewrite all 32 remaining tool descriptions from UPPERCASE PREFIX format to intent-first agentic format with dynamic cross-references
  • Add resolveRelatedReferences() utility that strips Related: references to unavailable tools (disabled via USE_*, GITLAB_DENIED_TOOLS_REGEX, read-only mode, or tier/version gating)
  • Integrate dynamic resolution into buildToolLookupCache() and getAllToolDefinitionsTierless() in registry-manager

Test plan

  • yarn lint — 0 errors
  • yarn test — 3820 tests passing (124 suites)
  • yarn build — clean
  • New unit tests for description-utils (10 cases)
  • New RegistryManager integration tests for Related resolution (5 scenarios: unavailable tool, available tool, read-only mode, denied regex, custom override bypass)
  • Updated assertions in 14 entity test files

Closes #169

…ed resolution

Rewrite all 32 tool descriptions from UPPERCASE PREFIX format to
intent-first agentic format with dynamic cross-references.

- New resolveRelatedReferences() utility in src/utils/description-utils.ts
- Dynamic Related resolution in registry-manager.ts buildToolLookupCache()
  and getAllToolDefinitionsTierless() — strips unavailable tool references
- Updated all 18 entity registries with intent-first descriptions
- Unit tests for description-utils (10 cases)
- RegistryManager tests for Related resolution (5 scenarios)
- Updated assertions in 14 entity test files
- New Dynamic Cross-References section in docs/advanced/customization.md

Closes #169
Copilot AI review requested due to automatic review settings January 24, 2026 10:22
@github-actions
Copy link
Copy Markdown

Test Coverage Report

Overall Coverage: 93.49%

Metric Percentage
Statements 93.01%
Branches 84.76%
Functions 82.88%
Lines 93.49%

View detailed coverage report

@codecov
Copy link
Copy Markdown

codecov bot commented Jan 24, 2026

Codecov Report

❌ Patch coverage is 92.59259% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/registry-manager.ts 92.85% 0 Missing and 1 partial ⚠️
src/utils/description-utils.ts 92.30% 0 Missing and 1 partial ⚠️

📢 Thoughts on this report? Let us know!

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR rewrites all 32 remaining tool descriptions from the old UPPERCASE PREFIX format to an intent-first agentic format, and implements dynamic resolution of "Related:" cross-references. The dynamic resolution automatically strips references to unavailable tools (disabled via USE_* flags, GITLAB_DENIED_TOOLS_REGEX, read-only mode, or tier/version gating).

Changes:

  • Added resolveRelatedReferences() utility function to dynamically filter Related references based on available tools
  • Integrated dynamic resolution into buildToolLookupCache() and getAllToolDefinitionsTierless() in registry-manager
  • Rewrote 32 tool descriptions to intent-first format with Related cross-references (files, labels, pipelines, MRs, milestones, members, integrations, wiki, webhooks, variables, snippets, search, releases, refs, workitems, context)

Reviewed changes

Copilot reviewed 36 out of 36 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/utils/description-utils.ts New utility for resolving Related references by stripping unavailable tool references
src/registry-manager.ts Integrated dynamic resolution in two-pass approach after tool filtering
src/entities/*/registry.ts Rewrote tool descriptions from UPPERCASE PREFIX to intent-first format with Related sections
tests/unit/utils/description-utils.test.ts Comprehensive unit tests for resolution logic (10 test cases)
tests/unit/RegistryManager.test.ts Integration tests for Related resolution scenarios (5 test cases)
tests/unit/entities/*/registry.test.ts Updated test assertions to match new description format
docs/public/llms.txt Added note about dynamic cross-references feature
docs/advanced/customization.md Added documentation section explaining dynamic cross-reference resolution

@polaz polaz merged commit 065e53b into main Jan 24, 2026
22 checks passed
@polaz polaz deleted the feat/#169-featdescriptions-intent-first-tool-descriptions-wi branch January 24, 2026 10:27
sw-release-bot bot pushed a commit that referenced this pull request Jan 24, 2026
## [6.39.0](v6.38.1...v6.39.0) (2026-01-24)

### Features

* **descriptions:** intent-first tool descriptions with dynamic Related resolution ([#172](#172)) ([065e53b](065e53b)), closes [#169](#169)
@sw-release-bot
Copy link
Copy Markdown

🎉 This PR is included in version 6.39.0 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(descriptions): intent-first tool descriptions with dynamic Related resolution

2 participants