-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathconfig.yaml
More file actions
137 lines (118 loc) · 6.62 KB
/
Copy pathconfig.yaml
File metadata and controls
137 lines (118 loc) · 6.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
prompt:
include_project_paths: false
# Input mode for test generation: "problem-statement", "gold-patch", or "both"
# - problem-statement: Agent reads bug description, generates tests to reproduce issue => Test driven development
# - gold-patch: Agent sees fixed code, generates tests to verify fix works => Test verification for known fixes
# - both: Agent sees both the bug description and the fixed code => Combined context for test generation
test-generation-input: "both"
bug-fix-template: |
You are working with a Business Central (AL) code repository at {{repo_path}}.
Task: Fix the issue described below {% if include_project_paths %}in the following projects: {{project_paths}}{% endif %}
Important constraints:
- Do NOT modify any testing logic or test files
- Focus solely on fixing the reported issue
{% if not al_mcp %}
- Do NOT try to build or run tests, just provide the code changes needed
{% endif %}
- Do NOT commit any changes to the repository
- Focus on W1 localization, do NOT worry about other localizations (e.g. DK, APAC)
Issue details:
{{task}}
test-generation-template: |
You are working with a Business Central (AL) code repository at {{repo_path}}.
{% if is_gold_patch and is_problem_statement %}
Task: Generate ONE NEW test case that reproduce the issue described below {% if include_project_paths %}in the following projects: {{project_paths}}{% endif %}
The fix has already been applied as local unstaged changes. Write a test that passes with this fix and would fail without it.
{% elif is_gold_patch %}
Task: Generate ONE NEW test case that verifies the unstaged changes in *.al files {% if include_project_paths %}in the following projects: {{project_paths}}{% endif %}
The fix has already been applied as local unstaged changes. Write a test that passes with this fix and would fail without it.
{% else %}
Task: Generate ONE NEW test case that reproduce the issue described below {% if include_project_paths %}in the following projects: {{project_paths}}{% endif %}
The tests should fail against the current codebase (unfixed) and should pass once the issue is fixed.
{% endif %}
Important constraints:
- Do NOT modify any production code or existing tests
- Focus solely on generating tests {% if is_gold_patch %}that verify the fix works correctly{% else %}for the reported issue{% endif %}
{% if not al_mcp %}
- Do NOT try to build or run tests, just provide the code changes needed
{% endif %}
- Do NOT commit any changes to the repository
- Focus on W1 localization, do NOT worry about other localizations (e.g. DK, APAC)
{% if is_problem_statement %}
Issue details:
{{task}}
{% endif %}
code-review-template: |
/review
Review only the uncommitted working-tree changes (git diff HEAD); do not compare commits such as HEAD~1..HEAD or origin/main.
Your only deliverable is a file named review.json in the repository root. You MUST write it before finishing; if you do not, your review is lost and counts as no output.
review.json must contain a single JSON array. Each finding is an object with these fields:
- file: repo-relative path of the file the finding refers to (string, required)
- line_start: 1-based line number where the issue starts (integer, required)
- line_end: line number where the issue ends (integer, optional)
- severity: one of critical, high, medium, or low (optional, defaults to medium)
- body: concise description of the issue (string, required)
If there are no findings, write an empty array. Write only valid JSON to review.json, with no surrounding markdown or commentary.
# controls:
# 1. whether to copy custom instructions from `src/bcbench/agent/shared/instructions/<sanitized-repo>/`
# - Copilot: copies to repo/.github/ and renames AGENTS.md to copilot-instructions.md
# - Claude: copies to repo/.claude/ and renames AGENTS.md to CLAUDE.md
# 2. whether to pass --disable-custom-instructions to copilot
# NOTE: this will copy any files in the instructions/<sanitized-repo>/ folder, including skills and custom agents
# NOTE: the canonical source file is AGENTS.md; it is automatically renamed
# to the agent-specific filename (AgentType.instruction_filename) during setup
instructions:
enabled: false
# controls:
# 1. whether to copy skills from `src/bcbench/agent/shared/instructions/<sanitized-repo>/skills/`
# - Copilot: copies to repo/.github/skills/
# - Claude: copies to repo/.claude/skills/
skills:
enabled: false
# controls:
# 1. whether to copy custom agents from `src/bcbench/agent/shared/instructions/<sanitized-repo>/agents/`
# - Copilot: copies to repo/.github/agents/
# - Claude: copies to repo/.claude/agents/
# 2. whether to pass --agent=<agent-name> to copilot or claude
agents:
enabled: false
name: ALTest
mcp:
servers:
# AL MCP server (toggled via --al-mcp CLI flag), https://www.nuget.org/packages/Microsoft.Dynamics.BusinessCentral.Development.Tools
# NOTE: --assemblyprobingpaths are injected programmatically by mcp.py (requires runtime detection)
- name: "altool"
type: "stdio"
command: "al"
args:
[
"launchmcpserver",
"--transport",
"stdio",
"--packagecachepath",
"{{package_cache_path}}",
]
# - name: "mslearn"
# type: "http"
# url: "https://learn.microsoft.com/api/mcp"
# - name: "filesystem"
# type: "stdio"
# command: "npx"
# args: ["-y", "@modelcontextprotocol/server-filesystem", "{{repo_path}}"]
# controls:
# which plugins to install before running the agent (works for both Copilot CLI and Claude Code)
# https://docs.github.com/en/copilot/concepts/agents/about-plugins
# Each entry pins a marketplace to a specific commit SHA for reproducibility: the marketplace
# repo is cloned at that SHA and added locally (no marketplace is assumed to be registered by
# default), then the plugin is installed via `<cli> plugin install <plugin>@<marketplace>`.
# - repo: marketplace GitHub repo as OWNER/REPO (or a full git URL)
# - sha: commit SHA to pin the marketplace to
# - name: install spec, "<plugin-name>@<marketplace-name>"
plugins:
install: []
# Example: the awesome-copilot plugin from github/awesome-copilot
# https://github.com/github/awesome-copilot/blob/main/plugins/awesome-copilot/README.md
# Uncomment to enable locally (update `sha` to the commit you want to pin):
# - repo: "github/awesome-copilot"
# sha: "28c3a14af4e6232091071ddb40272f72d9d96b2f"
# name: "awesome-copilot@awesome-copilot"