forked from Kirachon/context-engine
-
Notifications
You must be signed in to change notification settings - Fork 1
feat: Complete MCP Implementation with 70+ Tools, Agent Skills & Workflow Improvements #1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 35 commits
Commits
Show all changes
39 commits
Select commit
Hold shift + click to select a range
49e7f33
feat: workflow improvements and MCP enhancements
rishitank 494e0c0
fix: use Europe/London timezone in dependabot config
rishitank f0e1666
feat: implement full MCP spec support
rishitank 49b2d03
feat: add automatic version bumping to release workflow
rishitank b962a01
feat: add comprehensive tests and logging/setLevel handler
rishitank 5daf33d
feat: add workspace analysis tools with comprehensive tests
rishitank b1518b5
fix: address all PR review comments
rishitank 662828f
📝 Add docstrings to `feature/workflow-improvements`
coderabbitai[bot] dc69227
Merge pull request #2 from rishitank/coderabbitai/docstrings/b1518b5
rishitank 46f2d7e
feat: add 4 new workspace/git tools with tests
rishitank d28e3fc
Merge remote-tracking branch 'origin/feature/workflow-improvements' i…
rishitank 4f001f4
fix: Remove empty lines in doc comments to fix Clippy errors
rishitank 9101c12
docs: Update tool count to 59, add depth limit to discover_files
rishitank b661366
docs: Add future enhancements from code review comments
rishitank 07e9094
security: Fix path traversal vulnerability in DependencyGraphTool
rishitank 923e687
security: Fix path traversal in complete_file_path
rishitank 7e65250
feat: Address known limitations from code review
rishitank da360e7
fix: Address remaining CodeRabbit nitpick comments
rishitank 51ebf78
feat: Add AI-powered changelog generation to release workflow
rishitank 3c96591
feat: Fix enhance_prompt and add bundle_prompt for proper context inj…
rishitank f653fdc
feat: Add comprehensive multi-language support for symbol detection
rishitank 782dd75
feat: Add integration tests and TypeScript/Rust gap analysis
rishitank 3f76bc1
docs: Update documentation with new tools and testing guide
rishitank 39eeb6e
fix: Address remaining CodeRabbit review comments
rishitank 2aa8e37
test: Fix integration tests to accept valid JSON-RPC responses
rishitank 146c597
feat: Add m1rl0k/Context-Engine compatible tools
rishitank 62889a3
docs: Update documentation with new m1rl0k-compatible tools
rishitank 3ce0a00
fix: address CodeRabbit review comments
rishitank 3805e76
docs: fix documentation discrepancies flagged by CodeRabbit
rishitank 39d2f9c
docs: fix README tool count from 73 to 69
rishitank f67a6c2
feat: implement Agent Skills architecture for progressive disclosure
rishitank 98df399
feat: add 4 more skills and expose skills as MCP prompts
rishitank 48351aa
test: add comprehensive unit and integration tests for skills
rishitank dea0d2c
add augment commands
rishitank aa64cef
fix: address code review feedback
rishitank 1cde7d5
fix: address remaining code review nitpicks
rishitank 776dbd8
fix: use assert! instead of assert_eq! with literal bool
rishitank e38ce36
fix: wire include_related flag in ContextSearchTool
rishitank a64e759
fix: propagate regex compilation errors in search_with_pattern
rishitank File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,167 @@ | ||
| # Command: Check PR Build Status | ||
|
|
||
| **Automatically checks CI/CD build status for a pull request and retrieves detailed logs for any failures.** | ||
|
|
||
| ## Description | ||
|
|
||
| This command comprehensively investigates CI build status for a PR by: | ||
|
|
||
| 1. Determining the PR number (from parameter or current branch) | ||
| 2. Getting the latest commit SHA for the PR | ||
| 3. Fetching all check runs and workflow runs for the commit | ||
| 4. Identifying failed jobs and retrieving their logs | ||
| 5. Parsing logs to extract error messages and failure details | ||
| 6. Providing a structured report with actionable information | ||
|
|
||
| This command follows GitHub API best practices from AGENTS.md for complete CI status retrieval. | ||
|
|
||
| ## Usage | ||
|
|
||
| `@.augment/commands/check-pr-build.md [PR_NUMBER]` | ||
|
|
||
| ### Parameters | ||
|
|
||
| - `PR_NUMBER` (optional): The pull request number to check. If not provided, uses the current branch's PR. | ||
|
|
||
| ### Examples | ||
|
|
||
| ```bash | ||
| # Check build status for PR #100 | ||
| @.augment/commands/check-pr-build.md 100 | ||
|
|
||
| # Check build status for current branch's PR | ||
| @.augment/commands/check-pr-build.md | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Task | ||
|
|
||
| When this command is executed, perform the following steps: | ||
|
|
||
| ## 1. Determine PR Number and Commit SHA | ||
|
|
||
| - If `PR_NUMBER` is provided, use it | ||
| - Otherwise, get current branch name and search GitHub for open PRs from that branch | ||
| - Use: `GET /repos/rishitank/context-engine/pulls?head=rishitank:{branch_name}&state=open` | ||
| - Get the latest commit SHA: | ||
| - From local git: `git rev-parse HEAD` | ||
| - Or from PR details: `head.sha` | ||
|
|
||
| ## 2. Fetch Check Runs | ||
|
|
||
| Use: `GET /repos/rishitank/context-engine/commits/{commit_sha}/check-runs` | ||
|
|
||
| - Set `per_page: 100` and handle pagination if needed | ||
| - For each check run, extract: | ||
| - `id`: Check run ID | ||
| - `name`: Check run name (e.g., "build-test") | ||
| - `status`: `queued`, `in_progress`, `completed` | ||
| - `conclusion`: `success`, `failure`, `cancelled`, `skipped`, etc. | ||
| - `html_url`: Link to the check run on GitHub | ||
|
|
||
| ## 3. Fetch Workflow Runs | ||
|
|
||
| Use: `GET /repos/rishitank/context-engine/actions/runs?head_sha={commit_sha}` | ||
|
|
||
| - Set `per_page: 100` | ||
| - For each workflow run, extract: | ||
| - `id`: Workflow run ID | ||
| - `name`: Workflow name (e.g., "CI") | ||
| - `status`: `queued`, `in_progress`, `completed` | ||
| - `conclusion`: `success`, `failure`, `cancelled`, etc. | ||
| - `html_url`: Link to the workflow run on GitHub | ||
| - `run_number`: Run number for reference | ||
|
|
||
| ## 4. Get Jobs for Failed Workflow Runs | ||
|
|
||
| For each failed workflow run, use: `GET /repos/rishitank/context-engine/actions/runs/{run_id}/jobs` | ||
|
|
||
| - Set `per_page: 100` and `details: true` | ||
coderabbitai[bot] marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - For each job, extract: | ||
| - `id`: Job ID | ||
| - `name`: Job name (e.g., "build-test") | ||
| - `status`: Job status | ||
| - `conclusion`: Job conclusion | ||
| - `steps`: Array of steps with their status and conclusion | ||
| - Identify which step(s) failed | ||
|
|
||
| ## 5. Retrieve Logs for Failed Jobs | ||
|
|
||
| For each failed job, use: `GET /repos/rishitank/context-engine/actions/jobs/{job_id}/logs` | ||
|
|
||
| - Logs are returned as plain text | ||
| - Parse logs to extract: | ||
| - Error messages (lines containing "Error:", "FAIL", "✕", "✖") | ||
| - Test failures (snapshot mismatches, assertion failures) | ||
| - Build errors (TypeScript errors, linting issues) | ||
| - Stack traces | ||
| - File paths and line numbers | ||
|
|
||
| ## 6. Parse and Categorize Errors | ||
|
|
||
| Categorize errors by type: | ||
|
|
||
| - **Test Failures**: Snapshot mismatches, failed assertions, test timeouts | ||
| - **Build Errors**: TypeScript compilation errors, module resolution failures | ||
| - **Linting Issues**: ESLint/Prettier violations | ||
| - **Dependency Issues**: Missing packages, version conflicts | ||
| - **Other**: Uncategorized errors | ||
|
|
||
| ## 7. Generate Report | ||
|
|
||
| Output format: | ||
|
|
||
| ```markdown | ||
| ## CI Build Status for PR #{PR_NUMBER} | ||
|
|
||
| **PR**: #{number} - {title} | ||
| **Branch**: {head_ref} | ||
| **Commit**: {commit_sha} | ||
|
|
||
| ### Summary | ||
| - Total Check Runs: {count} | ||
| - Total Workflow Runs: {count} | ||
| - Failed Jobs: {count} | ||
|
|
||
| ### Check Runs Status | ||
| - ✅ {check_run_name}: {conclusion} | ||
| - ❌ {check_run_name}: {conclusion} | ||
|
|
||
| ### Failed Jobs | ||
|
|
||
| #### Job: {job_name} | ||
| **Workflow**: {workflow_name} | ||
| **Run**: #{run_number} | ||
| **Failed Step**: {step_name} | ||
|
|
||
| [View Job]({job_url}) | ||
| [View Logs]({logs_url}) | ||
|
|
||
| **Error Summary**: | ||
|
|
||
| ```text | ||
| {extracted_error_messages} | ||
| ``` | ||
|
|
||
| **Suggested Fix**: | ||
|
|
||
| {analysis_and_suggestions} | ||
coderabbitai[bot] marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
|
||
| --- | ||
|
|
||
| ### Next Steps | ||
|
|
||
| 1. {actionable_step_1} | ||
| 2. {actionable_step_2} | ||
|
|
||
| ```markdown | ||
coderabbitai[bot] marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Notes | ||
|
|
||
| - Follow GitHub API best practices from AGENTS.md | ||
| - Use pagination for all list endpoints | ||
| - Parse logs efficiently - focus on error patterns | ||
| - Provide actionable suggestions based on error types | ||
| - Include direct links to GitHub UI for easy navigation | ||
|
|
||
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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,194 @@ | ||
| # Command: Check PR Review Comments | ||
|
|
||
| **Automatically fetches and analyzes all unresolved code review comments for a pull request.** | ||
|
|
||
| ## Description | ||
|
|
||
| This command comprehensively retrieves all code review feedback for a PR by: | ||
|
|
||
| 1. Fetching the PR details from GitHub | ||
| 2. Getting all reviews submitted on the PR | ||
| 3. Fetching all review comments (line-level comments) | ||
| 4. Fetching all issue comments (general PR comments) | ||
| 5. Analyzing which comments are unresolved and still relevant | ||
| 6. Providing a structured report of actionable feedback | ||
|
|
||
| This command follows GitHub API best practices from AGENTS.md for complete comment retrieval. | ||
|
|
||
| ## Usage | ||
|
|
||
| `@.augment/commands/check-pr-review-comments.md [PR_NUMBER]` | ||
|
|
||
| ### Parameters | ||
|
|
||
| - `PR_NUMBER` (optional): The pull request number to check. If not provided, uses the current branch's PR. | ||
|
|
||
| ### Examples | ||
|
|
||
| ```bash | ||
| # Check review comments for PR #6291 | ||
| @.augment/commands/check-pr-review-comments.md 6291 | ||
|
|
||
| # Check review comments for current branch's PR | ||
| @.augment/commands/check-pr-review-comments.md | ||
| ``` | ||
|
|
||
| --- | ||
|
|
||
| ## Task | ||
|
|
||
| When this command is executed, perform the following steps: | ||
|
|
||
| ## 1. Determine PR Number | ||
|
|
||
| - If `PR_NUMBER` is provided, use it | ||
| - Otherwise, get current branch name and search GitHub for open PRs from that branch | ||
| - Use: `GET /repos/rishitank/context-engine/pulls?head=rishitank:{branch_name}&state=open` | ||
|
|
||
| ## 2. Fetch PR Details | ||
|
|
||
| - Use: `GET /repos/rishitank/context-engine/pulls/{PR_NUMBER}` | ||
| - Extract: | ||
| - `head.sha`: Latest commit SHA | ||
| - `head.ref`: Branch name | ||
| - `title`: PR title | ||
| - `state`: PR state | ||
| - `created_at`: When PR was created | ||
|
|
||
| ## 3. Fetch All Reviews | ||
|
|
||
| - Use: `GET /repos/rishitank/context-engine/pulls/{PR_NUMBER}/reviews` | ||
| - Set `per_page: 100` and handle pagination via Link headers | ||
| - For each review, extract: | ||
| - `id`: Review ID | ||
| - `user.login`: Reviewer username | ||
| - `state`: APPROVED, CHANGES_REQUESTED, COMMENTED, DISMISSED | ||
| - `body`: Review-level comment | ||
| - `submitted_at`: When review was submitted | ||
|
|
||
| ## 4. Fetch All Review Comments (Line-Level) | ||
|
|
||
| - Use: `GET /repos/rishitank/context-engine/pulls/{PR_NUMBER}/comments` | ||
| - Set `per_page: 100`, `sort: created`, `direction: desc` | ||
| - Handle pagination - ALWAYS fetch all pages using Link headers | ||
| - For each comment, extract: | ||
| - `id`: Comment ID | ||
| - `user.login`: Commenter username | ||
| - `body`: Comment text | ||
| - `path`: File path | ||
| - `line` or `original_line`: Line number | ||
| - `created_at`: When comment was created | ||
| - `updated_at`: When comment was last updated | ||
| - `in_reply_to_id`: Parent comment ID (for threads) | ||
| - `pull_request_review_id`: Associated review ID | ||
|
|
||
| ## 5. Fetch All Issue Comments (General PR Comments) | ||
|
|
||
| - Use: `GET /repos/rishitank/context-engine/issues/{PR_NUMBER}/comments` | ||
| - Set `per_page: 100`, `sort: created`, `direction: desc` | ||
| - Handle pagination using Link headers | ||
| - For each comment, extract: | ||
| - `id`: Comment ID | ||
| - `user.login`: Commenter username | ||
| - `body`: Comment text | ||
| - `created_at`: When comment was created | ||
| - `updated_at`: When comment was last updated | ||
|
|
||
| ## 6. Analyze Comment Status | ||
|
|
||
| For each comment, determine if it's: | ||
|
|
||
| - **Resolved**: Look for indicators in comment body like "✅ Addressed", "Fixed in commit", etc. | ||
| - **Acknowledged**: User has responded but not necessarily fixed | ||
| - **Unresolved**: No response or fix | ||
| - **Still Relevant**: Check if the file/line still exists in latest commit | ||
|
|
||
| Filter out: | ||
|
|
||
| - Bot comments (username contains `[bot]`) | ||
| - Comments marked as resolved | ||
| - Comments on code that no longer exists | ||
|
|
||
| ## 7. Categorize Comments | ||
|
|
||
| Group unresolved comments by: | ||
|
|
||
| - **Critical**: From CHANGES_REQUESTED reviews, blocking issues | ||
| - **Major**: Significant refactoring suggestions, potential bugs | ||
| - **Minor**: Code style, nitpicks, suggestions | ||
| - **Questions**: Requests for clarification | ||
|
|
||
| ## 8. Generate Report | ||
|
|
||
| Output format: | ||
|
|
||
| ```markdown | ||
| ## Code Review Comments for PR #{PR_NUMBER} | ||
|
|
||
| **PR**: #{number} - {title} | ||
| **Branch**: {head_ref} | ||
| **Status**: {state} | ||
|
|
||
| ### Summary | ||
| - Total Reviews: {count} | ||
| - Total Comments: {count} | ||
| - Unresolved Comments: {count} | ||
| - Critical: {count} | ||
| - Major: {count} | ||
| - Minor: {count} | ||
| - Questions: {count} | ||
|
|
||
| ### Unresolved Comments | ||
|
|
||
| #### Critical Issues ({count}) | ||
|
|
||
| **{file_path}:{line}** - by @{reviewer} | ||
| > {comment_body} | ||
|
|
||
| [View Comment]({comment_url}) | ||
|
|
||
| --- | ||
|
|
||
| #### Major Issues ({count}) | ||
|
|
||
| **{file_path}:{line}** - by @{reviewer} | ||
| > {comment_body} | ||
|
|
||
| [View Comment]({comment_url}) | ||
|
|
||
| --- | ||
|
|
||
| #### Minor Issues ({count}) | ||
|
|
||
| **{file_path}:{line}** - by @{reviewer} | ||
| > {comment_body} | ||
|
|
||
| [View Comment]({comment_url}) | ||
|
|
||
| --- | ||
|
|
||
| #### Questions ({count}) | ||
|
|
||
| **{file_path}:{line}** - by @{reviewer} | ||
| > {comment_body} | ||
|
|
||
| [View Comment]({comment_url}) | ||
|
|
||
| --- | ||
|
|
||
| ### Review Status by Reviewer | ||
|
|
||
| - @{reviewer1}: {APPROVED|CHANGES_REQUESTED|COMMENTED} on {date} | ||
| - @{reviewer2}: {APPROVED|CHANGES_REQUESTED|COMMENTED} on {date} | ||
|
|
||
| ``` | ||
|
|
||
| ## Notes | ||
|
|
||
| - Follow GitHub API best practices from AGENTS.md | ||
| - ALWAYS use pagination with Link headers - don't assume all comments fit in one page | ||
| - Sort comments by `created` date descending to see newest first | ||
| - Check for new comments that may have been added after initial fetch | ||
| - Filter out bot comments (coderabbitai[bot], linear[bot], etc.) | ||
| - Look for resolution markers in comment bodies | ||
| - Provide direct links to each comment for easy navigation |
Oops, something went wrong.
Oops, something went wrong.
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.
Uh oh!
There was an error while loading. Please reload this page.