Skip to content

Commit 3517ad3

Browse files
authored
Merge pull request #675 from srtab/feat/skills
Added support to Anthropic skills.
2 parents d6baf0b + 9e77e85 commit 3517ad3

File tree

32 files changed

+886
-46
lines changed

32 files changed

+886
-46
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
99

1010
### Added
1111

12+
- Added Agent Skills system implementing Anthropic's progressive disclosure pattern.
1213
- Added chunked reading capability to `read_tool` with `start_line` and `max_lines` parameters. The tool now supports reading files in segments rather than loading entire file contents, limiting output to a default maximum of 2000 lines. When content is truncated, a message indicates the range shown and total lines available, guiding further reads. This addresses the issue of costly full-file reads for large files.
1314
- Added `SWERepoClient` to support SWE-bench style evaluations with public OSS repositories. This client clones repositories to temporary directories without requiring credentials and is designed for automated testing scenarios.
1415
- Added support to `gpt-5.1`, `gpt-5.1-codex`, `gpt-5.1-codex-mini` models from OpenAI.

Makefile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,6 @@ compilemessages:
4444

4545
evals:
4646
LANGSMITH_TEST_SUITE="DAIV evals" uv run pytest --reuse-db evals --no-cov --log-level=INFO -k test_review_reply_correctness
47+
48+
docs-serve:
49+
uv run --only-group=docs mkdocs serve -o -a localhost:4000 -w docs/
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

daiv/automation/agents/plan_and_execute/agent.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from __future__ import annotations
22

33
import logging
4+
from pathlib import Path
45
from textwrap import dedent
56
from typing import TYPE_CHECKING, Any, Literal
67

@@ -22,6 +23,7 @@
2223

2324
from automation.agents import BaseAgent
2425
from automation.agents.middleware import AgentsMDMiddleware, AnthropicPromptCachingMiddleware, InjectImagesMiddleware
26+
from automation.agents.skills.middleware import SkillsMiddleware
2527
from automation.agents.tools.editing import FileEditingMiddleware
2628
from automation.agents.tools.merge_request import MergeRequestMiddleware
2729
from automation.agents.tools.navigation import FileNavigationMiddleware
@@ -236,14 +238,15 @@ async def plan(
236238
)
237239
),
238240
AgentsMDMiddleware(),
241+
SkillsMiddleware(repo_dir=Path(runtime.context.repo.working_dir), scope=runtime.context.scope),
239242
TodoListMiddleware(),
240243
AnthropicPromptCachingMiddleware(),
241244
]
242245

243246
if self.include_web_search:
244247
middlewares.append(WebSearchMiddleware())
245248

246-
if runtime.context.merge_request_id:
249+
if runtime.context.scope == "merge_request":
247250
middlewares.append(MergeRequestMiddleware())
248251

249252
if runtime.context.config.sandbox.enabled:

0 commit comments

Comments
 (0)