x_aeon_agents 2.7.0 → 2.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +17 -0
- data/lib/x_aeon_agents/agent_defaults.rb +14 -2
- data/lib/x_aeon_agents/agents/coder_agent.rb +6 -1
- data/lib/x_aeon_agents/agents/developer_agent.rb +17 -11
- data/lib/x_aeon_agents/agents/documenter_agent.rb +13 -3
- data/lib/x_aeon_agents/agents/feedback_analyst_agent.rb +8 -7
- data/lib/x_aeon_agents/agents/plan_generator_agent.rb +14 -10
- data/lib/x_aeon_agents/agents/planner_agent.rb +5 -5
- data/lib/x_aeon_agents/agents/readme/about_analyzer_agent.rb +10 -9
- data/lib/x_aeon_agents/agents/readme/contributing_agent.rb +11 -10
- data/lib/x_aeon_agents/agents/readme/development_agent.rb +11 -10
- data/lib/x_aeon_agents/agents/readme/documentation_agent.rb +9 -8
- data/lib/x_aeon_agents/agents/readme/features_agent.rb +9 -8
- data/lib/x_aeon_agents/agents/readme/how_it_works_agent.rb +10 -9
- data/lib/x_aeon_agents/agents/readme/license_agent.rb +9 -8
- data/lib/x_aeon_agents/agents/readme/public_api_agent.rb +10 -9
- data/lib/x_aeon_agents/agents/readme/quick_start_agent.rb +10 -9
- data/lib/x_aeon_agents/agents/readme/requirements_agent.rb +9 -8
- data/lib/x_aeon_agents/agents/readme_generator_agent.rb +12 -12
- data/lib/x_aeon_agents/agents/review_resolver_agent.rb +12 -12
- data/lib/x_aeon_agents/agents/review_responder_agent.rb +24 -7
- data/lib/x_aeon_agents/agents/tester_agent.rb +26 -11
- data/lib/x_aeon_agents/helpers.rb +13 -0
- data/lib/x_aeon_agents/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c02e664b325a3265a1397697d4730f7e95901db60483db4b3961851d7f92085d
|
|
4
|
+
data.tar.gz: 9ab1c4fbd0deb3313b55f82cd08dcf66f1bab8ff7c89f0f03a0c93e4d595fe0d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 724e0edba6d234a943beb21d3be41f4407582d4f43efd97a1fceb096c353b8f52f34801facf88257872592bd7f23bd540c078d08745eee6d3b6066fe9ab5c934
|
|
7
|
+
data.tar.gz: 753db34710e6a78dd2f6c53fadd14fbc1086b684a1a451b8b2326375173008cafe5743d778d7ce36432f71d1c3ef726f53b2a3e16b5b7b643187982a704631a7
|
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
# [v2.7.1](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.7.0...v2.7.1) (2026-11-12 15:59:52)
|
|
2
|
+
|
|
3
|
+
## Global changes
|
|
4
|
+
### Patches
|
|
5
|
+
|
|
6
|
+
* [fix(agents): improve prompts, isolate artifacts per run and declare plan type](https://github.com/Muriel-Salvan/x_aeon_agents/commit/b7f9dab265b908514b646b61c6ebc5f74fd1d4b6)
|
|
7
|
+
|
|
8
|
+
## Changes for agent_defaults
|
|
9
|
+
### Patches
|
|
10
|
+
|
|
11
|
+
* [fix(agents): improve prompts, isolate artifacts per run and declare plan type](https://github.com/Muriel-Salvan/x_aeon_agents/commit/b7f9dab265b908514b646b61c6ebc5f74fd1d4b6)
|
|
12
|
+
|
|
13
|
+
## Changes for agents
|
|
14
|
+
### Patches
|
|
15
|
+
|
|
16
|
+
* [fix(agents): improve prompts, isolate artifacts per run and declare plan type](https://github.com/Muriel-Salvan/x_aeon_agents/commit/b7f9dab265b908514b646b61c6ebc5f74fd1d4b6)
|
|
17
|
+
|
|
1
18
|
# [v2.7.0](https://github.com/Muriel-Salvan/x_aeon_agents/compare/v2.6.2...v2.7.0) (2026-11-12 13:45:26)
|
|
2
19
|
|
|
3
20
|
## Global changes
|
|
@@ -86,12 +86,24 @@ module XAeonAgents
|
|
|
86
86
|
end
|
|
87
87
|
@session_id = session_id || AgentDefaults.singleton_session_id
|
|
88
88
|
@session_dir = "#{Config.data_dir}/sessions/#{@session_id}"
|
|
89
|
+
run_id = "#{@session_id}-#{kwargs[:name] || self.class.name.split('::').last}"
|
|
90
|
+
agent_kwargs = kwargs_from_config.merge(kwargs)
|
|
91
|
+
# TODO: Redesign how prompt rendering strategies are initialized with regard to the constructors and remove
|
|
92
|
+
# this code smell.
|
|
93
|
+
# The prompt rendering strategy is included in the agent's singleton class by PromptDrivenAgent's
|
|
94
|
+
# constructor, which runs after the agent's own constructor: include it here first so that the agent's
|
|
95
|
+
# constructor and mixins can use the strategy's accessors (e.g. #artifact_ref) while being initialized.
|
|
96
|
+
singleton_class.include(agent_kwargs[:strategy]) if agent_kwargs[:strategy]
|
|
97
|
+
# File-based artifact strategies persist artifacts as files: give each agent run its own artifacts
|
|
98
|
+
# directory so that agents of the same session don't share artifact files.
|
|
99
|
+
self.artifacts_directory = "#{@session_dir}/composable_agents/runs/#{run_id}/artifacts" \
|
|
100
|
+
if respond_to?(:artifacts_directory=)
|
|
89
101
|
super(
|
|
90
102
|
*args,
|
|
91
103
|
composable_agents_dir: "#{@session_dir}/composable_agents",
|
|
92
|
-
run_id
|
|
104
|
+
run_id:,
|
|
93
105
|
logger: Config.logger,
|
|
94
|
-
**
|
|
106
|
+
**agent_kwargs
|
|
95
107
|
)
|
|
96
108
|
end
|
|
97
109
|
|
|
@@ -9,7 +9,12 @@ module XAeonAgents
|
|
|
9
9
|
#
|
|
10
10
|
# @return [Hash{Symbol => Object}] Set of input artifacts description, per artifact name
|
|
11
11
|
def input_artifacts_contracts
|
|
12
|
-
super.merge(
|
|
12
|
+
super.merge(
|
|
13
|
+
plan: {
|
|
14
|
+
description: 'The implementation plan that you must follow',
|
|
15
|
+
type: :markdown
|
|
16
|
+
}
|
|
17
|
+
)
|
|
13
18
|
end
|
|
14
19
|
|
|
15
20
|
# Constructor
|
|
@@ -48,7 +48,7 @@ module XAeonAgents
|
|
|
48
48
|
task(
|
|
49
49
|
coder_agent,
|
|
50
50
|
intent: 'Implement the requirements following the implementation plan',
|
|
51
|
-
user_instructions: "
|
|
51
|
+
user_instructions: "Read the implementation plan file `#{coder_agent.artifact_ref(:plan)}` and follow all its steps."
|
|
52
52
|
)
|
|
53
53
|
logger.info "Coder changes: #{Helpers.git.status_info.changed.keys.join(', ')}"
|
|
54
54
|
|
|
@@ -81,32 +81,38 @@ module XAeonAgents
|
|
|
81
81
|
user_instructions: {
|
|
82
82
|
ordered_list: [
|
|
83
83
|
<<~EO_STEP,
|
|
84
|
-
Understand the initial requirements from the
|
|
84
|
+
Understand the initial requirements from the file `#{tester_agent.artifact_ref(:requirements)}`
|
|
85
85
|
|
|
86
86
|
- Understand those requirements and their intent.
|
|
87
87
|
EO_STEP
|
|
88
88
|
<<~EO_STEP,
|
|
89
|
-
Understand the implementation plan from the
|
|
89
|
+
Understand the implementation plan from the file `#{tester_agent.artifact_ref(:plan)}`
|
|
90
90
|
|
|
91
91
|
- Understand all the steps of the implementation plan.
|
|
92
92
|
EO_STEP
|
|
93
93
|
<<~EO_STEP,
|
|
94
|
-
Understand the file changes from the
|
|
94
|
+
Understand the file changes from the file `#{tester_agent.artifact_ref(:files_diffs)}`
|
|
95
95
|
|
|
96
96
|
- Understand what was the intent of the developer implementing the requirements.
|
|
97
97
|
EO_STEP
|
|
98
98
|
<<~EO_STEP,
|
|
99
|
-
|
|
99
|
+
Read and analyze the full output of unit tests from the file `#{tester_agent.artifact_ref(:tests_output)}`
|
|
100
100
|
|
|
101
101
|
- Check every error reported in the output.
|
|
102
102
|
EO_STEP
|
|
103
103
|
'Fix any issue that unit tests are surfacing, while keeping the original intent of the requirements',
|
|
104
104
|
'Remember any inconsistency and modification you need to make to the implementation plan ' \
|
|
105
105
|
'so that your fixes are in-line with a better implementation plan',
|
|
106
|
-
<<~EO_STEP
|
|
106
|
+
<<~EO_STEP,
|
|
107
107
|
Make sure all tests are running without issue after your fixes
|
|
108
108
|
|
|
109
|
-
- You can run tests again using the
|
|
109
|
+
- You can run tests again using the tests command given in the file `#{tester_agent.artifact_ref(:tests_cmd)}` to test your own fixes.
|
|
110
|
+
EO_STEP
|
|
111
|
+
<<~EO_STEP
|
|
112
|
+
Write your modifications of the implementation plan, if any, to the file `#{tester_agent.artifact_ref(:plan_modifications)}`
|
|
113
|
+
|
|
114
|
+
- Only write this file if your fixes required diverging from the implementation plan.
|
|
115
|
+
- Do not write this file if the implementation plan did not change.
|
|
110
116
|
EO_STEP
|
|
111
117
|
]
|
|
112
118
|
}
|
|
@@ -141,17 +147,17 @@ module XAeonAgents
|
|
|
141
147
|
user_instructions: {
|
|
142
148
|
ordered_list: [
|
|
143
149
|
<<~EO_STEP,
|
|
144
|
-
|
|
150
|
+
Read and analyze the initial requirements from the file `#{documenter_agent.artifact_ref(:requirements)}`
|
|
145
151
|
|
|
146
152
|
- Those give you information about the requirements you should be documenting.
|
|
147
153
|
EO_STEP
|
|
148
154
|
<<~EO_STEP,
|
|
149
|
-
|
|
155
|
+
Read and analyze all the steps of the implementation plan from the file `#{documenter_agent.artifact_ref(:plan)}`
|
|
150
156
|
|
|
151
157
|
- Those give you every step that should have been followed for this new development.
|
|
152
158
|
EO_STEP
|
|
153
159
|
<<~EO_STEP,
|
|
154
|
-
|
|
160
|
+
Read and analyze the concrete changes from the file `#{documenter_agent.artifact_ref(:files_diffs)}`
|
|
155
161
|
|
|
156
162
|
- Understand what was the intent of the developer implementing those requirements.
|
|
157
163
|
EO_STEP
|
|
@@ -194,7 +200,7 @@ module XAeonAgents
|
|
|
194
200
|
Update the relevant documentation files
|
|
195
201
|
|
|
196
202
|
- Only perform this step if you think documentation is required.
|
|
197
|
-
- Use
|
|
203
|
+
- Use the artifact files as the source of truth for understanding the changes to be documented.
|
|
198
204
|
- Use the filesystem to locate where documentation should be updated.
|
|
199
205
|
- After exploring the filesystem, if relevant documentation files are found: update them.
|
|
200
206
|
|
|
@@ -9,9 +9,19 @@ module XAeonAgents
|
|
|
9
9
|
# @return [Hash{Symbol => Object}] Set of input artifacts description, per artifact name
|
|
10
10
|
def input_artifacts_contracts
|
|
11
11
|
super.merge(
|
|
12
|
-
requirements:
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
requirements: {
|
|
13
|
+
description: 'The initial requirements',
|
|
14
|
+
type: :markdown
|
|
15
|
+
},
|
|
16
|
+
plan: {
|
|
17
|
+
description: 'Implementation plan that introduced features and fixes to be documented',
|
|
18
|
+
type: :markdown
|
|
19
|
+
},
|
|
20
|
+
files_diffs: {
|
|
21
|
+
description: 'Full list of files changes and differences that have been done to implement the initial ' \
|
|
22
|
+
'requirements following the implementation plan',
|
|
23
|
+
type: :text
|
|
24
|
+
}
|
|
15
25
|
)
|
|
16
26
|
end
|
|
17
27
|
|
|
@@ -58,15 +58,16 @@ module XAeonAgents
|
|
|
58
58
|
If you need more information, use one of the available tools or ask for clarification instead of making assumptions or lies.
|
|
59
59
|
Do not indicate that you will perform an action without actually doing it.
|
|
60
60
|
EO_INSTRUCTIONS
|
|
61
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
62
|
-
- You are in read-only mode.
|
|
63
|
-
- Do NOT modify or write any file.
|
|
64
|
-
- Focus only on agent-directed comments (/agent) for requirement extraction.
|
|
65
|
-
- Output clear, actionable requirements or "No requirements" if none exist.
|
|
66
|
-
- #{Helpers.repository_access_constraint}
|
|
67
|
-
EO_CONSTRAINTS
|
|
68
61
|
**agent_params
|
|
69
62
|
)
|
|
63
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
64
|
+
- You are in read-only mode for the repository: do NOT modify any file of it.
|
|
65
|
+
- Focus only on agent-directed comments (/agent) for requirement extraction.
|
|
66
|
+
- Write the extracted requirements to the output artifact file given in this prompt.
|
|
67
|
+
- If no implementation is required, write exactly `No requirements` in this file.
|
|
68
|
+
- #{Helpers.repository_access_constraint}
|
|
69
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:requirements))}
|
|
70
|
+
EO_CONSTRAINTS
|
|
70
71
|
end
|
|
71
72
|
end
|
|
72
73
|
end
|
|
@@ -8,7 +8,12 @@ module XAeonAgents
|
|
|
8
8
|
#
|
|
9
9
|
# @return [Hash{Symbol => Object}] Set of input artifacts description, per artifact name
|
|
10
10
|
def input_artifacts_contracts
|
|
11
|
-
super.merge(
|
|
11
|
+
super.merge(
|
|
12
|
+
requirements: {
|
|
13
|
+
description: 'The initial requirements for which you need to devise an implementation plan',
|
|
14
|
+
type: :markdown
|
|
15
|
+
}
|
|
16
|
+
)
|
|
12
17
|
end
|
|
13
18
|
|
|
14
19
|
# Define output artifacts contracts
|
|
@@ -18,7 +23,7 @@ module XAeonAgents
|
|
|
18
23
|
super.merge(
|
|
19
24
|
plan: {
|
|
20
25
|
description: 'The full and detailed implementation plan in Markdown format, ' \
|
|
21
|
-
"that should implement the requirements given
|
|
26
|
+
"that should implement the requirements given in the file `#{artifact_ref(:requirements)}`",
|
|
22
27
|
type: :markdown
|
|
23
28
|
}
|
|
24
29
|
)
|
|
@@ -41,16 +46,15 @@ module XAeonAgents
|
|
|
41
46
|
If you need more information, use one of the available tools or ask for clarification instead of making assumptions or lies.
|
|
42
47
|
Do not indicate that you will perform an action without actually doing it.
|
|
43
48
|
EO_INSTRUCTIONS
|
|
44
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
45
|
-
- You are in read-only mode.
|
|
46
|
-
- Do NOT modify or write any file.
|
|
47
|
-
- You may only analyze and propose plans.
|
|
48
|
-
- Do NOT execute the plan yourself.
|
|
49
|
-
- #{Helpers.repository_access_constraint}
|
|
50
|
-
- Never create files (`ARTIFACT_*`, `/tmp/*`) to hold artifacts. Put the fenced ` ```json output_artifact=… ` block in your final message and end the turn with __no tool call__.
|
|
51
|
-
EO_CONSTRAINTS
|
|
52
49
|
**agent_params
|
|
53
50
|
)
|
|
51
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
52
|
+
- You are in read-only mode for the repository: do NOT modify any file of it.
|
|
53
|
+
- You may only analyze and propose plans.
|
|
54
|
+
- Do NOT execute the plan yourself.
|
|
55
|
+
- #{Helpers.repository_access_constraint}
|
|
56
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:plan))}
|
|
57
|
+
EO_CONSTRAINTS
|
|
54
58
|
end
|
|
55
59
|
end
|
|
56
60
|
end
|
|
@@ -18,7 +18,7 @@ module XAeonAgents
|
|
|
18
18
|
{
|
|
19
19
|
plan: {
|
|
20
20
|
description: 'The full and detailed implementation plan in Markdown format, ' \
|
|
21
|
-
"that should implement the requirements given
|
|
21
|
+
"that should implement the requirements given in the file `#{plan_generator_agent.artifact_ref(:requirements)}`",
|
|
22
22
|
type: :markdown
|
|
23
23
|
}
|
|
24
24
|
}
|
|
@@ -39,10 +39,10 @@ module XAeonAgents
|
|
|
39
39
|
super
|
|
40
40
|
user_instructions = {
|
|
41
41
|
ordered_list: [
|
|
42
|
-
"Read the initial requirements from the
|
|
42
|
+
"Read the initial requirements from the file `#{plan_generator_agent.artifact_ref(:requirements)}`",
|
|
43
43
|
'Analyze the project files',
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
'Write a complete and detailed step-by-step implementation plan in Markdown format to the file ' \
|
|
45
|
+
"`#{plan_generator_agent.artifact_ref(:plan)}`"
|
|
46
46
|
]
|
|
47
47
|
}
|
|
48
48
|
loop.with_index do |plan_idx|
|
|
@@ -75,7 +75,7 @@ module XAeonAgents
|
|
|
75
75
|
user_instructions = <<~EO_INSTRUCTIONS
|
|
76
76
|
#{@artifacts[:user_prompt]}
|
|
77
77
|
|
|
78
|
-
|
|
78
|
+
Rewrite the file `#{plan_generator_agent.artifact_ref(:plan)}` with a revised implementation plan, taking the above user guidance into account.
|
|
79
79
|
EO_INSTRUCTIONS
|
|
80
80
|
user_instructions << <<~EO_INSTRUCTIONS if @artifacts[:diffs]
|
|
81
81
|
|
|
@@ -34,7 +34,7 @@ module XAeonAgents
|
|
|
34
34
|
name: 'About section generator',
|
|
35
35
|
objective: <<~EO_OBJECTIVE,
|
|
36
36
|
Analyze the project's code, features and layout to understand its purpose and interface.
|
|
37
|
-
|
|
37
|
+
Write the following information to the corresponding output artifact files:
|
|
38
38
|
- The project's name (for example Rubygem's name, released package name, repository's name...).
|
|
39
39
|
- The 1-line description of the project, using Markdown.
|
|
40
40
|
- A high-level overview (about section) of the project in Markdown format, compatible with Github flavor.
|
|
@@ -46,16 +46,17 @@ module XAeonAgents
|
|
|
46
46
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
47
47
|
Do not indicate that you will perform an action without actually doing it.
|
|
48
48
|
EO_INSTRUCTIONS
|
|
49
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
50
|
-
- The required output artifacts content should only contain the required content, without additional header or title.
|
|
51
|
-
- Do not explain or describe the artifact contents: only provide the content as required.
|
|
52
|
-
- Only focus on the specific scope of the required documentation required.
|
|
53
|
-
Other agents will generate other sections of the README.
|
|
54
|
-
Do not try to document other parts.
|
|
55
|
-
- #{Helpers.repository_access_constraint}
|
|
56
|
-
EO_CONSTRAINTS
|
|
57
49
|
**agent_params
|
|
58
50
|
)
|
|
51
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
52
|
+
- Write only the required content to the output artifact files, without any additional header or title.
|
|
53
|
+
- Do NOT write any explanation or description in the artifact files: write only the required content.
|
|
54
|
+
- Only focus on the specific scope of the required documentation required.
|
|
55
|
+
Other agents will generate other sections of the README.
|
|
56
|
+
Do not try to document other parts.
|
|
57
|
+
- #{Helpers.repository_access_constraint}
|
|
58
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:about), artifact_ref(:name), artifact_ref(:description))}
|
|
59
|
+
EO_CONSTRAINTS
|
|
59
60
|
end
|
|
60
61
|
end
|
|
61
62
|
end
|
|
@@ -36,18 +36,19 @@ module XAeonAgents
|
|
|
36
36
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
37
37
|
Do not indicate that you will perform an action without actually doing it.
|
|
38
38
|
EO_INSTRUCTIONS
|
|
39
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
40
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
41
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
42
|
-
- Only focus on the specific scope of the required documentation required.
|
|
43
|
-
Other agents will generate other sections of the README.
|
|
44
|
-
Do not try to document other parts.
|
|
45
|
-
- Do not describe the technical setup or prequisites, as they are already covered by other sections.
|
|
46
|
-
- Do not cover how to develop in this project: it is already covered in other sections.
|
|
47
|
-
- #{Helpers.repository_access_constraint}
|
|
48
|
-
EO_CONSTRAINTS
|
|
49
39
|
**agent_params
|
|
50
40
|
)
|
|
41
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
42
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
43
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
44
|
+
- Only focus on the specific scope of the required documentation required.
|
|
45
|
+
Other agents will generate other sections of the README.
|
|
46
|
+
Do not try to document other parts.
|
|
47
|
+
- Do not describe the technical setup or prequisites, as they are already covered by other sections.
|
|
48
|
+
- Do not cover how to develop in this project: it is already covered in other sections.
|
|
49
|
+
- #{Helpers.repository_access_constraint}
|
|
50
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:contributing))}
|
|
51
|
+
EO_CONSTRAINTS
|
|
51
52
|
end
|
|
52
53
|
end
|
|
53
54
|
end
|
|
@@ -43,18 +43,19 @@ module XAeonAgents
|
|
|
43
43
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
44
44
|
Do not indicate that you will perform an action without actually doing it.
|
|
45
45
|
EO_INSTRUCTIONS
|
|
46
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
47
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
48
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
49
|
-
- Only focus on the specific scope of the required documentation required.
|
|
50
|
-
Other agents will generate other sections of the README.
|
|
51
|
-
Do not try to document other parts.
|
|
52
|
-
- Do not cover the end-user main requirements and prerequisites: they are already covered in other sections.
|
|
53
|
-
- Do not cover the contribution workflow (pull requests, CI, issues...): this is already covered in other sections.
|
|
54
|
-
- #{Helpers.repository_access_constraint}
|
|
55
|
-
EO_CONSTRAINTS
|
|
56
46
|
**agent_params
|
|
57
47
|
)
|
|
48
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
49
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
50
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
51
|
+
- Only focus on the specific scope of the required documentation required.
|
|
52
|
+
Other agents will generate other sections of the README.
|
|
53
|
+
Do not try to document other parts.
|
|
54
|
+
- Do not cover the end-user main requirements and prerequisites: they are already covered in other sections.
|
|
55
|
+
- Do not cover the contribution workflow (pull requests, CI, issues...): this is already covered in other sections.
|
|
56
|
+
- #{Helpers.repository_access_constraint}
|
|
57
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:development))}
|
|
58
|
+
EO_CONSTRAINTS
|
|
58
59
|
end
|
|
59
60
|
end
|
|
60
61
|
end
|
|
@@ -34,16 +34,17 @@ module XAeonAgents
|
|
|
34
34
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
35
35
|
Do not indicate that you will perform an action without actually doing it.
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
38
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
39
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
40
|
-
- Only focus on the specific scope of the required documentation required.
|
|
41
|
-
Other agents will generate other sections of the README.
|
|
42
|
-
Do not try to document other parts.
|
|
43
|
-
- #{Helpers.repository_access_constraint}
|
|
44
|
-
EO_CONSTRAINTS
|
|
45
37
|
**agent_params
|
|
46
38
|
)
|
|
39
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
40
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
+
- Only focus on the specific scope of the required documentation required.
|
|
43
|
+
Other agents will generate other sections of the README.
|
|
44
|
+
Do not try to document other parts.
|
|
45
|
+
- #{Helpers.repository_access_constraint}
|
|
46
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:documentation))}
|
|
47
|
+
EO_CONSTRAINTS
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
end
|
|
@@ -36,16 +36,17 @@ module XAeonAgents
|
|
|
36
36
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
37
37
|
Do not indicate that you will perform an action without actually doing it.
|
|
38
38
|
EO_INSTRUCTIONS
|
|
39
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
40
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
41
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
42
|
-
- Only focus on the specific scope of the required documentation required.
|
|
43
|
-
Other agents will generate other sections of the README.
|
|
44
|
-
Do not try to document other parts.
|
|
45
|
-
- #{Helpers.repository_access_constraint}
|
|
46
|
-
EO_CONSTRAINTS
|
|
47
39
|
**agent_params
|
|
48
40
|
)
|
|
41
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
42
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
43
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
44
|
+
- Only focus on the specific scope of the required documentation required.
|
|
45
|
+
Other agents will generate other sections of the README.
|
|
46
|
+
Do not try to document other parts.
|
|
47
|
+
- #{Helpers.repository_access_constraint}
|
|
48
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:features))}
|
|
49
|
+
EO_CONSTRAINTS
|
|
49
50
|
end
|
|
50
51
|
end
|
|
51
52
|
end
|
|
@@ -37,17 +37,18 @@ module XAeonAgents
|
|
|
37
37
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
38
38
|
Do not indicate that you will perform an action without actually doing it.
|
|
39
39
|
EO_INSTRUCTIONS
|
|
40
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
41
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
42
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
43
|
-
- Only focus on the specific scope of the required documentation required.
|
|
44
|
-
Other agents will generate other sections of the README.
|
|
45
|
-
Do not try to document other parts.
|
|
46
|
-
- Do not provide long paragraphs: focus on readability by splitting long paragraphs into several short ones.
|
|
47
|
-
- #{Helpers.repository_access_constraint}
|
|
48
|
-
EO_CONSTRAINTS
|
|
49
40
|
**agent_params
|
|
50
41
|
)
|
|
42
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
43
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
44
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
45
|
+
- Only focus on the specific scope of the required documentation required.
|
|
46
|
+
Other agents will generate other sections of the README.
|
|
47
|
+
Do not try to document other parts.
|
|
48
|
+
- Do not provide long paragraphs: focus on readability by splitting long paragraphs into several short ones.
|
|
49
|
+
- #{Helpers.repository_access_constraint}
|
|
50
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:how_it_works))}
|
|
51
|
+
EO_CONSTRAINTS
|
|
51
52
|
end
|
|
52
53
|
end
|
|
53
54
|
end
|
|
@@ -34,16 +34,17 @@ module XAeonAgents
|
|
|
34
34
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
35
35
|
Do not indicate that you will perform an action without actually doing it.
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
38
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
39
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
40
|
-
- Only focus on the specific scope of the required documentation required.
|
|
41
|
-
Other agents will generate other sections of the README.
|
|
42
|
-
Do not try to document other parts.
|
|
43
|
-
- #{Helpers.repository_access_constraint}
|
|
44
|
-
EO_CONSTRAINTS
|
|
45
37
|
**agent_params
|
|
46
38
|
)
|
|
39
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
40
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
+
- Only focus on the specific scope of the required documentation required.
|
|
43
|
+
Other agents will generate other sections of the README.
|
|
44
|
+
Do not try to document other parts.
|
|
45
|
+
- #{Helpers.repository_access_constraint}
|
|
46
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:license))}
|
|
47
|
+
EO_CONSTRAINTS
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
end
|
|
@@ -34,17 +34,18 @@ module XAeonAgents
|
|
|
34
34
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
35
35
|
Do not indicate that you will perform an action without actually doing it.
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
38
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
39
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
40
|
-
- Only focus on the specific scope of the required documentation required.
|
|
41
|
-
Other agents will generate other sections of the README.
|
|
42
|
-
Do not try to document other parts.
|
|
43
|
-
- Only document public API entry points: executables and library public methods belonging to yarn `Public API` group.
|
|
44
|
-
- #{Helpers.repository_access_constraint}
|
|
45
|
-
EO_CONSTRAINTS
|
|
46
37
|
**agent_params
|
|
47
38
|
)
|
|
39
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
40
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
+
- Only focus on the specific scope of the required documentation required.
|
|
43
|
+
Other agents will generate other sections of the README.
|
|
44
|
+
Do not try to document other parts.
|
|
45
|
+
- Only document public API entry points: executables and library public methods belonging to yarn `Public API` group.
|
|
46
|
+
- #{Helpers.repository_access_constraint}
|
|
47
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:public_api))}
|
|
48
|
+
EO_CONSTRAINTS
|
|
48
49
|
end
|
|
49
50
|
end
|
|
50
51
|
end
|
|
@@ -40,17 +40,18 @@ module XAeonAgents
|
|
|
40
40
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
41
41
|
Do not indicate that you will perform an action without actually doing it.
|
|
42
42
|
EO_INSTRUCTIONS
|
|
43
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
44
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
45
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
46
|
-
- Only focus on the specific scope of the required documentation required.
|
|
47
|
-
Other agents will generate other sections of the README.
|
|
48
|
-
Do not try to document other parts.
|
|
49
|
-
- This section is not meant for developers: don't describe how to develop, test, document, package or contribute to this project.
|
|
50
|
-
- #{Helpers.repository_access_constraint}
|
|
51
|
-
EO_CONSTRAINTS
|
|
52
43
|
**agent_params
|
|
53
44
|
)
|
|
45
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
46
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
47
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
48
|
+
- Only focus on the specific scope of the required documentation required.
|
|
49
|
+
Other agents will generate other sections of the README.
|
|
50
|
+
Do not try to document other parts.
|
|
51
|
+
- This section is not meant for developers: don't describe how to develop, test, document, package or contribute to this project.
|
|
52
|
+
- #{Helpers.repository_access_constraint}
|
|
53
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:quick_start))}
|
|
54
|
+
EO_CONSTRAINTS
|
|
54
55
|
end
|
|
55
56
|
end
|
|
56
57
|
end
|
|
@@ -34,16 +34,17 @@ module XAeonAgents
|
|
|
34
34
|
If you need more information, use one of the available tools instead of making assumptions.
|
|
35
35
|
Do not indicate that you will perform an action without actually doing it.
|
|
36
36
|
EO_INSTRUCTIONS
|
|
37
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
38
|
-
- The required output artifact content should only contain the required content, without additional header or title.
|
|
39
|
-
- Do not explain or describe the artifact content: only provide the content as required.
|
|
40
|
-
- Only focus on the specific scope of the required documentation required.
|
|
41
|
-
Other agents will generate other sections of the README.
|
|
42
|
-
Do not try to document other parts.
|
|
43
|
-
- #{Helpers.repository_access_constraint}
|
|
44
|
-
EO_CONSTRAINTS
|
|
45
37
|
**agent_params
|
|
46
38
|
)
|
|
39
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
40
|
+
- Write only the required content to the output artifact file, without any additional header or title.
|
|
41
|
+
- Do NOT write any explanation or description in the artifact file: write only the required content.
|
|
42
|
+
- Only focus on the specific scope of the required documentation required.
|
|
43
|
+
Other agents will generate other sections of the README.
|
|
44
|
+
Do not try to document other parts.
|
|
45
|
+
- #{Helpers.repository_access_constraint}
|
|
46
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:requirements))}
|
|
47
|
+
EO_CONSTRAINTS
|
|
47
48
|
end
|
|
48
49
|
end
|
|
49
50
|
end
|
|
@@ -75,10 +75,10 @@ module XAeonAgents
|
|
|
75
75
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
76
76
|
Analyze this project's code, features and layout.
|
|
77
77
|
Devise the goal of this project, what problem it solves, and using which interface (CLI, library, web app...).
|
|
78
|
-
|
|
79
|
-
|
|
78
|
+
Write the name of this project to the file `#{about_analyzer_agent.artifact_ref(:name)}`.
|
|
79
|
+
Write a 1-line high-level description of this project to the file `#{about_analyzer_agent.artifact_ref(:description)}`
|
|
80
80
|
using Markdown format, compatible with Github flavor.
|
|
81
|
-
|
|
81
|
+
Write an engaging high-level description/overview of this project to the file `#{about_analyzer_agent.artifact_ref(:about)}`
|
|
82
82
|
using Markdown format, compatible with Github flavor.
|
|
83
83
|
The description should be concise, in 1 small section and will serve as a the first paragraph of a README file.
|
|
84
84
|
The description is intended to be for end-users and should be simple and easy to understand.
|
|
@@ -94,7 +94,7 @@ module XAeonAgents
|
|
|
94
94
|
intent: 'Generate README Quick Start section',
|
|
95
95
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
96
96
|
Analyze this project's installation and usage patterns.
|
|
97
|
-
|
|
97
|
+
Write quick installation and usage instructions to the file `#{quick_start_agent.artifact_ref(:quick_start)}`
|
|
98
98
|
using Markdown format, compatible with Github flavor.
|
|
99
99
|
These instructions should cover the installation and basic usage of this project, with simple examples.
|
|
100
100
|
EO_INSTRUCTIONS
|
|
@@ -108,7 +108,7 @@ module XAeonAgents
|
|
|
108
108
|
intent: 'Generate README Requirements section',
|
|
109
109
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
110
110
|
Analyze this project's dependencies, runtime environment, and prerequisites.
|
|
111
|
-
|
|
111
|
+
Write the list of all prerequisites needed to use or run the project to the file `#{requirements_agent.artifact_ref(:requirements)}`
|
|
112
112
|
using Markdown format, compatible with Github flavor.
|
|
113
113
|
Those prerequisites should be given as a short list of technical points (for example OS, languages and versions, needed libraries...).
|
|
114
114
|
Only list prerequisites that are needed by the users of the project, and not provided by the installation steps.
|
|
@@ -123,7 +123,7 @@ module XAeonAgents
|
|
|
123
123
|
intent: 'Generate README Features section',
|
|
124
124
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
125
125
|
Analyze this project's codebase and capabilities to identify all key features.
|
|
126
|
-
|
|
126
|
+
Write the list of the main features of the project to the file `#{features_agent.artifact_ref(:features)}`
|
|
127
127
|
using Markdown format, compatible with Github flavor.
|
|
128
128
|
Those features should be summarized in a simple paragraph.
|
|
129
129
|
EO_INSTRUCTIONS
|
|
@@ -137,7 +137,7 @@ module XAeonAgents
|
|
|
137
137
|
intent: 'Generate README Public API section',
|
|
138
138
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
139
139
|
Analyze this project's codebase to identify all public APIs, classes, methods, and interfaces exposed to users.
|
|
140
|
-
|
|
140
|
+
Write the documentation of the public API surface to the file `#{public_api_agent.artifact_ref(:public_api)}`
|
|
141
141
|
using Markdown format, compatible with Github flavor.
|
|
142
142
|
The public API description should only contain public entry points of the project. Those entry points can be:
|
|
143
143
|
- Executables from the `bin` directory, if any.
|
|
@@ -158,7 +158,7 @@ module XAeonAgents
|
|
|
158
158
|
intent: 'Generate README Documentation section',
|
|
159
159
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
160
160
|
Explore this project's documentation files and resources to identify all available documentation.
|
|
161
|
-
|
|
161
|
+
Write links to documentation resources to the file `#{documentation_agent.artifact_ref(:documentation)}`
|
|
162
162
|
using Markdown format, compatible with Github flavor.
|
|
163
163
|
Links can be:
|
|
164
164
|
- Link to the RubyDoc.info documentation for a Ruby public method (for example `https://www.rubydoc.info/gems/x_aeon_agents`).
|
|
@@ -174,7 +174,7 @@ module XAeonAgents
|
|
|
174
174
|
intent: 'Generate README "How does it work" section',
|
|
175
175
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
176
176
|
Analyze this project's architecture, design patterns, and internal workings.
|
|
177
|
-
|
|
177
|
+
Write an explanation of the internal architecture and working principles to the file `#{how_it_works_agent.artifact_ref(:how_it_works)}`
|
|
178
178
|
using Markdown format, compatible with Github flavor.
|
|
179
179
|
This should be summarized as a small section, not an architecture document.
|
|
180
180
|
EO_INSTRUCTIONS
|
|
@@ -188,7 +188,7 @@ module XAeonAgents
|
|
|
188
188
|
intent: 'Generate README Development section',
|
|
189
189
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
190
190
|
Analyze this project's development setup, build system, testing framework, and development workflows.
|
|
191
|
-
|
|
191
|
+
Write how to set up a development environment for this project to the file `#{development_agent.artifact_ref(:development)}`
|
|
192
192
|
using Markdown format, compatible with Github flavor.
|
|
193
193
|
EO_INSTRUCTIONS
|
|
194
194
|
)
|
|
@@ -201,7 +201,7 @@ module XAeonAgents
|
|
|
201
201
|
intent: 'Generate README Contributing section',
|
|
202
202
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
203
203
|
Analyze this project's CONTRIBUTING guidelines, issue templates, pull request templates, and any community guidelines.
|
|
204
|
-
|
|
204
|
+
Write how users can contribute to the project to the file `#{contributing_agent.artifact_ref(:contributing)}`
|
|
205
205
|
using Markdown format, compatible with Github flavor.
|
|
206
206
|
This should be done in 1 paragraph showing how to install or setup test dependencies and how to run tests, as a whole or individually.
|
|
207
207
|
Use simple examples to illustrate it.
|
|
@@ -216,7 +216,7 @@ module XAeonAgents
|
|
|
216
216
|
intent: 'Generate README License section',
|
|
217
217
|
user_instructions: <<~EO_INSTRUCTIONS
|
|
218
218
|
Analyze this project's LICENSE file to identify the license type and terms.
|
|
219
|
-
|
|
219
|
+
Write the description of the project license to the file `#{license_agent.artifact_ref(:license)}`
|
|
220
220
|
using Markdown format, compatible with Github flavor.
|
|
221
221
|
If there is already a LICENSE file in this project, just provide a link to this license file.
|
|
222
222
|
EO_INSTRUCTIONS
|
|
@@ -63,22 +63,22 @@ module XAeonAgents
|
|
|
63
63
|
user_instructions: {
|
|
64
64
|
ordered_list: [
|
|
65
65
|
<<~EO_INSTRUCTION,
|
|
66
|
-
Read the `#{feedback_analyst_agent.artifact_ref(:pr_description)}`
|
|
66
|
+
Read the file `#{feedback_analyst_agent.artifact_ref(:pr_description)}` to understand the purpose of this Pull Request
|
|
67
67
|
|
|
68
68
|
- This gives you context on what is the purpose of this Pull Request.
|
|
69
69
|
EO_INSTRUCTION
|
|
70
70
|
<<~EO_INSTRUCTION,
|
|
71
|
-
Read the `#{feedback_analyst_agent.artifact_ref(:pr_files_diffs)}`
|
|
71
|
+
Read the file `#{feedback_analyst_agent.artifact_ref(:pr_files_diffs)}` to understand all changes made by this Pull Request
|
|
72
72
|
|
|
73
73
|
- This gives you context on how has this Pull Request been implemented.
|
|
74
74
|
EO_INSTRUCTION
|
|
75
75
|
<<~EO_INSTRUCTION,
|
|
76
|
-
Read the `#{feedback_analyst_agent.artifact_ref(:conversations)}`
|
|
76
|
+
Read the file `#{feedback_analyst_agent.artifact_ref(:conversations)}` to understand the full context of the PR conversations
|
|
77
77
|
|
|
78
78
|
- This gives you context on the discussions around this Pull Request.
|
|
79
79
|
EO_INSTRUCTION
|
|
80
80
|
<<~EO_INSTRUCTION,
|
|
81
|
-
Read the `#{feedback_analyst_agent.artifact_ref(:open_comments_to_agents)}`
|
|
81
|
+
Read the file `#{feedback_analyst_agent.artifact_ref(:open_comments_to_agents)}` to focus on agent-directed comments
|
|
82
82
|
|
|
83
83
|
- You must devise requirements that will address those exact comments.
|
|
84
84
|
EO_INSTRUCTION
|
|
@@ -86,9 +86,9 @@ module XAeonAgents
|
|
|
86
86
|
Analyze agent-directed comments to identify specific requirements or tasks that need implementation
|
|
87
87
|
EO_INSTRUCTION
|
|
88
88
|
<<~EO_INSTRUCTION
|
|
89
|
-
|
|
89
|
+
Write clear, actionable requirements extracted from the comments to the file `#{feedback_analyst_agent.artifact_ref(:requirements)}`
|
|
90
90
|
|
|
91
|
-
- If no implementation is required (e.g., comments are just questions),
|
|
91
|
+
- If no implementation is required (e.g., comments are just questions), write exactly `No requirements` in this file
|
|
92
92
|
EO_INSTRUCTION
|
|
93
93
|
]
|
|
94
94
|
}
|
|
@@ -120,32 +120,32 @@ module XAeonAgents
|
|
|
120
120
|
user_instructions: {
|
|
121
121
|
ordered_list: [
|
|
122
122
|
<<~EO_INSTRUCTION,
|
|
123
|
-
Read the `#{review_responder_agent.artifact_ref(:conversations)}`
|
|
123
|
+
Read the file `#{review_responder_agent.artifact_ref(:conversations)}` to understand the full context of the PR conversations
|
|
124
124
|
|
|
125
125
|
- This gives you context on the discussions around this Pull Request.
|
|
126
126
|
EO_INSTRUCTION
|
|
127
127
|
<<~EO_INSTRUCTION,
|
|
128
|
-
Read the `#{review_responder_agent.artifact_ref(:requirements)}`
|
|
128
|
+
Read the file `#{review_responder_agent.artifact_ref(:requirements)}` to understand what was implemented
|
|
129
129
|
|
|
130
130
|
- This gives you context on what has been implemented by other agents.
|
|
131
131
|
EO_INSTRUCTION
|
|
132
132
|
<<~EO_INSTRUCTION,
|
|
133
|
-
Read the `#{review_responder_agent.artifact_ref(:plan)}`
|
|
133
|
+
Read the file `#{review_responder_agent.artifact_ref(:plan)}` to understand the implementation approach
|
|
134
134
|
|
|
135
135
|
- This gives you context on how other agents implemented the requirements.
|
|
136
136
|
EO_INSTRUCTION
|
|
137
137
|
<<~EO_INSTRUCTION,
|
|
138
|
-
Read the `#{review_responder_agent.artifact_ref(:files_diffs)}`
|
|
138
|
+
Read the file `#{review_responder_agent.artifact_ref(:files_diffs)}` to understand the specific code changes made
|
|
139
139
|
|
|
140
140
|
- This gives you context on what files have been modified.
|
|
141
141
|
EO_INSTRUCTION
|
|
142
142
|
<<~EO_INSTRUCTION,
|
|
143
|
-
Read the `#{review_responder_agent.artifact_ref(:open_comment_for_reply)}`
|
|
143
|
+
Read the file `#{review_responder_agent.artifact_ref(:open_comment_for_reply)}` to understand the specific comment to respond to
|
|
144
144
|
|
|
145
145
|
- This is the EXACT comment that you should reply to.
|
|
146
146
|
EO_INSTRUCTION
|
|
147
147
|
<<~EO_INSTRUCTION
|
|
148
|
-
|
|
148
|
+
Write a professional, helpful reply that addresses the comment appropriately to the file `#{review_responder_agent.artifact_ref(:reply)}`
|
|
149
149
|
|
|
150
150
|
- If requirements were implemented, explain what was done and how it addresses the comment.
|
|
151
151
|
- If no requirements existed, provide a helpful response explaining the situation.
|
|
@@ -18,9 +18,18 @@ module XAeonAgents
|
|
|
18
18
|
description: 'The exact comment to be replied to',
|
|
19
19
|
type: :json
|
|
20
20
|
},
|
|
21
|
-
requirements:
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
requirements: {
|
|
22
|
+
description: 'The requirements that have been implemented (or "No requirements")',
|
|
23
|
+
type: :markdown
|
|
24
|
+
},
|
|
25
|
+
plan: {
|
|
26
|
+
description: 'The implementation plan that was used to implement those requirements (or "No implementation plan")',
|
|
27
|
+
type: :markdown
|
|
28
|
+
},
|
|
29
|
+
files_diffs: {
|
|
30
|
+
description: 'The code changes from implement_requirements workflow (or "No changes")',
|
|
31
|
+
type: :text
|
|
32
|
+
}
|
|
24
33
|
}
|
|
25
34
|
)
|
|
26
35
|
end
|
|
@@ -46,17 +55,25 @@ module XAeonAgents
|
|
|
46
55
|
role: 'You are a review responder agent. Your role is to reply to feedback, ' \
|
|
47
56
|
'taking into account the feedback itself, and the work that has been done because of this feedback.',
|
|
48
57
|
objective: 'Generate a reply to a review comment',
|
|
58
|
+
system_instructions: <<~EO_INSTRUCTIONS,
|
|
59
|
+
#{Helpers.repository_access_system_instructions}
|
|
60
|
+
|
|
61
|
+
Always base your reply on the input artifacts given to you: they contain the full context of the Pull Request.
|
|
62
|
+
Do not indicate that you will perform an action without actually doing it.
|
|
63
|
+
EO_INSTRUCTIONS
|
|
49
64
|
**agent_params
|
|
50
65
|
)
|
|
51
66
|
self.constraints = <<~EO_CONSTRAINTS
|
|
52
|
-
- You are in read-only mode.
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
- ONLY focus on addressing the specific comment of the `#{artifact_ref(:open_comment_for_reply)}` artifact appropriately.
|
|
67
|
+
- You are in read-only mode for the repository: do NOT modify any file of it.
|
|
68
|
+
- The implementation work is already complete (captured in the input artifacts).
|
|
69
|
+
- ONLY focus on addressing the specific comment described in the file `#{artifact_ref(:open_comment_for_reply)}`.
|
|
56
70
|
- Do NOT answer or reply to any other comment.
|
|
57
71
|
- You already have ALL the information required.
|
|
58
72
|
- You MUST NOT ask follow-up questions.
|
|
59
73
|
- You MUST NOT ask for user confirmation.
|
|
74
|
+
- Write the reply text to the output artifact file `#{artifact_ref(:reply)}`.
|
|
75
|
+
- #{Helpers.repository_access_constraint}
|
|
76
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:reply))}
|
|
60
77
|
EO_CONSTRAINTS
|
|
61
78
|
end
|
|
62
79
|
end
|
|
@@ -10,12 +10,27 @@ module XAeonAgents
|
|
|
10
10
|
# @return [Hash{Symbol => Object}] Set of input artifacts description, per artifact name
|
|
11
11
|
def input_artifacts_contracts
|
|
12
12
|
super.merge(
|
|
13
|
-
requirements:
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
requirements: {
|
|
14
|
+
description: 'The initial requirements',
|
|
15
|
+
type: :markdown
|
|
16
|
+
},
|
|
17
|
+
plan: {
|
|
18
|
+
description: 'The implementation plan devised from the requirements',
|
|
19
|
+
type: :markdown
|
|
20
|
+
},
|
|
21
|
+
files_diffs: {
|
|
22
|
+
description: 'The full list of files changes and differences that have been done to implement the initial ' \
|
|
23
|
+
'requirements following the implementation plan',
|
|
24
|
+
type: :text
|
|
25
|
+
},
|
|
26
|
+
tests_output: {
|
|
27
|
+
description: 'The output of running the whole tests suite',
|
|
28
|
+
type: :text
|
|
29
|
+
},
|
|
30
|
+
tests_cmd: {
|
|
31
|
+
description: 'The command line to be used to run the whole tests suite',
|
|
32
|
+
type: :text
|
|
33
|
+
}
|
|
19
34
|
)
|
|
20
35
|
end
|
|
21
36
|
|
|
@@ -42,12 +57,12 @@ module XAeonAgents
|
|
|
42
57
|
Fix any regression that has been induced by new features or fixes, while keeping the initial requirements and implementation plan in mind.
|
|
43
58
|
If the decisions taken in the implementation plan prevent you from fixing regressions, modify the implementation plan and report those modifications to the user.
|
|
44
59
|
EO_OBJECTIVE
|
|
45
|
-
constraints: <<~EO_CONSTRAINTS,
|
|
46
|
-
- #{Helpers.repository_access_constraint(writable: true)}
|
|
47
|
-
- Never create files (`ARTIFACT_*`, `/tmp/*`) to hold artifacts. Put the fenced ` ```json output_artifact=… ` block in your final message and end the turn with __no tool call__.
|
|
48
|
-
EO_CONSTRAINTS
|
|
49
60
|
**agent_params
|
|
50
61
|
)
|
|
62
|
+
self.constraints = <<~EO_CONSTRAINTS
|
|
63
|
+
- #{Helpers.repository_access_constraint(writable: true)}
|
|
64
|
+
- #{Helpers.artifacts_access_constraint(artifact_ref(:plan_modifications))}
|
|
65
|
+
EO_CONSTRAINTS
|
|
51
66
|
self.system_instructions = <<~EO_INSTRUCTIONS
|
|
52
67
|
#{Helpers.repository_access_system_instructions}
|
|
53
68
|
|
|
@@ -62,7 +77,7 @@ module XAeonAgents
|
|
|
62
77
|
|
|
63
78
|
If you need more information, use one of the available tools or ask for clarification instead of making assumptions or lies.
|
|
64
79
|
|
|
65
|
-
Fix __all__ issues reported in the `#{artifact_ref(:tests_output)}`
|
|
80
|
+
Fix __all__ issues reported in the tests output file `#{artifact_ref(:tests_output)}` in this iteration (not a subset).
|
|
66
81
|
Identify the exact failing spec file(s) and run __those__, then a final full run. __Never__ conclude success from a partial run.
|
|
67
82
|
Quote the final summary line of your verification run in your answer.
|
|
68
83
|
|
|
@@ -168,6 +168,19 @@ module XAeonAgents
|
|
|
168
168
|
"You should only #{writable ? 'read and write' : 'read'} files that are part of the current repository: `#{Dir.pwd}`"
|
|
169
169
|
end
|
|
170
170
|
|
|
171
|
+
# Get the constraint allowing agents to access their artifact files, which can be located outside of the
|
|
172
|
+
# current repository.
|
|
173
|
+
# This constraint is format-agnostic: it does not include any formatting (bullet, header...) so that it can be
|
|
174
|
+
# included in any constraints section.
|
|
175
|
+
#
|
|
176
|
+
# @param artifact_paths [Array<String>] Absolute paths of the artifact files the agent is allowed to access
|
|
177
|
+
# @return [String] The constraint about artifact files access
|
|
178
|
+
def artifacts_access_constraint(*artifact_paths)
|
|
179
|
+
'You are allowed to read and write the artifact files at ' \
|
|
180
|
+
"#{artifact_paths.map { |artifact_path| "`#{artifact_path}`" }.join(', ')}, " \
|
|
181
|
+
'even if they are not part of the current repository'
|
|
182
|
+
end
|
|
183
|
+
|
|
171
184
|
# Allow user to review and edit content before using it
|
|
172
185
|
#
|
|
173
186
|
# When the interactive mode is disabled (Config.interactive), no review file
|