ara-cli 0.1.9.69__py3-none-any.whl → 0.1.10.8__py3-none-any.whl

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.

Potentially problematic release.


This version of ara-cli might be problematic. Click here for more details.

Files changed (150) hide show
  1. ara_cli/__init__.py +18 -2
  2. ara_cli/__main__.py +248 -62
  3. ara_cli/ara_command_action.py +155 -86
  4. ara_cli/ara_config.py +226 -80
  5. ara_cli/ara_subcommands/__init__.py +0 -0
  6. ara_cli/ara_subcommands/autofix.py +26 -0
  7. ara_cli/ara_subcommands/chat.py +27 -0
  8. ara_cli/ara_subcommands/classifier_directory.py +16 -0
  9. ara_cli/ara_subcommands/common.py +100 -0
  10. ara_cli/ara_subcommands/create.py +75 -0
  11. ara_cli/ara_subcommands/delete.py +22 -0
  12. ara_cli/ara_subcommands/extract.py +22 -0
  13. ara_cli/ara_subcommands/fetch_templates.py +14 -0
  14. ara_cli/ara_subcommands/list.py +65 -0
  15. ara_cli/ara_subcommands/list_tags.py +25 -0
  16. ara_cli/ara_subcommands/load.py +48 -0
  17. ara_cli/ara_subcommands/prompt.py +136 -0
  18. ara_cli/ara_subcommands/read.py +47 -0
  19. ara_cli/ara_subcommands/read_status.py +20 -0
  20. ara_cli/ara_subcommands/read_user.py +20 -0
  21. ara_cli/ara_subcommands/reconnect.py +27 -0
  22. ara_cli/ara_subcommands/rename.py +22 -0
  23. ara_cli/ara_subcommands/scan.py +14 -0
  24. ara_cli/ara_subcommands/set_status.py +22 -0
  25. ara_cli/ara_subcommands/set_user.py +22 -0
  26. ara_cli/ara_subcommands/template.py +16 -0
  27. ara_cli/artefact_autofix.py +649 -68
  28. ara_cli/artefact_creator.py +8 -11
  29. ara_cli/artefact_deleter.py +2 -4
  30. ara_cli/artefact_fuzzy_search.py +22 -10
  31. ara_cli/artefact_link_updater.py +4 -4
  32. ara_cli/artefact_lister.py +29 -55
  33. ara_cli/artefact_models/artefact_data_retrieval.py +23 -0
  34. ara_cli/artefact_models/artefact_load.py +11 -3
  35. ara_cli/artefact_models/artefact_model.py +146 -39
  36. ara_cli/artefact_models/artefact_templates.py +70 -44
  37. ara_cli/artefact_models/businessgoal_artefact_model.py +23 -25
  38. ara_cli/artefact_models/epic_artefact_model.py +34 -26
  39. ara_cli/artefact_models/feature_artefact_model.py +203 -64
  40. ara_cli/artefact_models/keyfeature_artefact_model.py +21 -24
  41. ara_cli/artefact_models/serialize_helper.py +1 -1
  42. ara_cli/artefact_models/task_artefact_model.py +83 -15
  43. ara_cli/artefact_models/userstory_artefact_model.py +37 -27
  44. ara_cli/artefact_models/vision_artefact_model.py +23 -42
  45. ara_cli/artefact_reader.py +92 -91
  46. ara_cli/artefact_renamer.py +8 -4
  47. ara_cli/artefact_scan.py +66 -3
  48. ara_cli/chat.py +622 -162
  49. ara_cli/chat_agent/__init__.py +0 -0
  50. ara_cli/chat_agent/agent_communicator.py +62 -0
  51. ara_cli/chat_agent/agent_process_manager.py +211 -0
  52. ara_cli/chat_agent/agent_status_manager.py +73 -0
  53. ara_cli/chat_agent/agent_workspace_manager.py +76 -0
  54. ara_cli/commands/__init__.py +0 -0
  55. ara_cli/commands/command.py +7 -0
  56. ara_cli/commands/extract_command.py +15 -0
  57. ara_cli/commands/load_command.py +65 -0
  58. ara_cli/commands/load_image_command.py +34 -0
  59. ara_cli/commands/read_command.py +117 -0
  60. ara_cli/completers.py +144 -0
  61. ara_cli/directory_navigator.py +37 -4
  62. ara_cli/error_handler.py +134 -0
  63. ara_cli/file_classifier.py +6 -5
  64. ara_cli/file_lister.py +1 -1
  65. ara_cli/file_loaders/__init__.py +0 -0
  66. ara_cli/file_loaders/binary_file_loader.py +33 -0
  67. ara_cli/file_loaders/document_file_loader.py +34 -0
  68. ara_cli/file_loaders/document_reader.py +245 -0
  69. ara_cli/file_loaders/document_readers.py +233 -0
  70. ara_cli/file_loaders/file_loader.py +50 -0
  71. ara_cli/file_loaders/file_loaders.py +123 -0
  72. ara_cli/file_loaders/image_processor.py +89 -0
  73. ara_cli/file_loaders/markdown_reader.py +75 -0
  74. ara_cli/file_loaders/text_file_loader.py +187 -0
  75. ara_cli/global_file_lister.py +51 -0
  76. ara_cli/list_filter.py +1 -1
  77. ara_cli/output_suppressor.py +1 -1
  78. ara_cli/prompt_extractor.py +215 -88
  79. ara_cli/prompt_handler.py +521 -134
  80. ara_cli/prompt_rag.py +2 -2
  81. ara_cli/tag_extractor.py +83 -38
  82. ara_cli/template_loader.py +245 -0
  83. ara_cli/template_manager.py +18 -13
  84. ara_cli/templates/prompt-modules/commands/empty.commands.md +2 -12
  85. ara_cli/templates/prompt-modules/commands/extract_general.commands.md +12 -0
  86. ara_cli/templates/prompt-modules/commands/extract_markdown.commands.md +11 -0
  87. ara_cli/templates/prompt-modules/commands/extract_python.commands.md +13 -0
  88. ara_cli/templates/prompt-modules/commands/feature_add_or_modifiy_specified_behavior.commands.md +36 -0
  89. ara_cli/templates/prompt-modules/commands/feature_generate_initial_specified_bevahior.commands.md +53 -0
  90. ara_cli/templates/prompt-modules/commands/prompt_template_tech_stack_transformer.commands.md +95 -0
  91. ara_cli/templates/prompt-modules/commands/python_bug_fixing_code.commands.md +34 -0
  92. ara_cli/templates/prompt-modules/commands/python_generate_code.commands.md +27 -0
  93. ara_cli/templates/prompt-modules/commands/python_refactoring_code.commands.md +39 -0
  94. ara_cli/templates/prompt-modules/commands/python_step_definitions_generation_and_fixing.commands.md +40 -0
  95. ara_cli/templates/prompt-modules/commands/python_unittest_generation_and_fixing.commands.md +48 -0
  96. ara_cli/update_config_prompt.py +9 -3
  97. ara_cli/version.py +1 -1
  98. ara_cli-0.1.10.8.dist-info/METADATA +241 -0
  99. ara_cli-0.1.10.8.dist-info/RECORD +193 -0
  100. tests/test_ara_command_action.py +73 -59
  101. tests/test_ara_config.py +341 -36
  102. tests/test_artefact_autofix.py +1060 -0
  103. tests/test_artefact_link_updater.py +3 -3
  104. tests/test_artefact_lister.py +52 -132
  105. tests/test_artefact_renamer.py +2 -2
  106. tests/test_artefact_scan.py +327 -33
  107. tests/test_chat.py +2063 -498
  108. tests/test_file_classifier.py +24 -1
  109. tests/test_file_creator.py +3 -5
  110. tests/test_file_lister.py +1 -1
  111. tests/test_global_file_lister.py +131 -0
  112. tests/test_list_filter.py +2 -2
  113. tests/test_prompt_handler.py +746 -0
  114. tests/test_tag_extractor.py +19 -13
  115. tests/test_template_loader.py +192 -0
  116. tests/test_template_manager.py +5 -4
  117. tests/test_update_config_prompt.py +2 -2
  118. ara_cli/ara_command_parser.py +0 -327
  119. ara_cli/templates/prompt-modules/blueprints/complete_pytest_unittest.blueprint.md +0 -27
  120. ara_cli/templates/prompt-modules/blueprints/task_todo_list_implement_feature_BDD_way.blueprint.md +0 -30
  121. ara_cli/templates/prompt-modules/commands/artefact_classification.commands.md +0 -9
  122. ara_cli/templates/prompt-modules/commands/artefact_extension.commands.md +0 -17
  123. ara_cli/templates/prompt-modules/commands/artefact_formulation.commands.md +0 -14
  124. ara_cli/templates/prompt-modules/commands/behave_step_generation.commands.md +0 -102
  125. ara_cli/templates/prompt-modules/commands/code_generation_complex.commands.md +0 -20
  126. ara_cli/templates/prompt-modules/commands/code_generation_simple.commands.md +0 -13
  127. ara_cli/templates/prompt-modules/commands/error_fixing.commands.md +0 -20
  128. ara_cli/templates/prompt-modules/commands/feature_file_update.commands.md +0 -18
  129. ara_cli/templates/prompt-modules/commands/feature_formulation.commands.md +0 -43
  130. ara_cli/templates/prompt-modules/commands/js_code_generation_simple.commands.md +0 -13
  131. ara_cli/templates/prompt-modules/commands/refactoring.commands.md +0 -15
  132. ara_cli/templates/prompt-modules/commands/refactoring_analysis.commands.md +0 -9
  133. ara_cli/templates/prompt-modules/commands/reverse_engineer_feature_file.commands.md +0 -15
  134. ara_cli/templates/prompt-modules/commands/reverse_engineer_program_flow.commands.md +0 -19
  135. ara_cli/templates/template.businessgoal +0 -10
  136. ara_cli/templates/template.capability +0 -10
  137. ara_cli/templates/template.epic +0 -15
  138. ara_cli/templates/template.example +0 -6
  139. ara_cli/templates/template.feature +0 -26
  140. ara_cli/templates/template.issue +0 -14
  141. ara_cli/templates/template.keyfeature +0 -15
  142. ara_cli/templates/template.task +0 -6
  143. ara_cli/templates/template.userstory +0 -17
  144. ara_cli/templates/template.vision +0 -14
  145. ara_cli-0.1.9.69.dist-info/METADATA +0 -16
  146. ara_cli-0.1.9.69.dist-info/RECORD +0 -158
  147. tests/test_ara_autofix.py +0 -219
  148. {ara_cli-0.1.9.69.dist-info → ara_cli-0.1.10.8.dist-info}/WHEEL +0 -0
  149. {ara_cli-0.1.9.69.dist-info → ara_cli-0.1.10.8.dist-info}/entry_points.txt +0 -0
  150. {ara_cli-0.1.9.69.dist-info → ara_cli-0.1.10.8.dist-info}/top_level.txt +0 -0
@@ -1,30 +0,0 @@
1
- ### INTENTION and CONTEXT
2
- My intention is to setup a todo list in my given task that helps me to implement a feature in a BDD way
3
-
4
- Now do the following:
5
- Search for a line starting with `Task: ` defined in the `### GIVENS` section. Just repeat the task_name you have found as confirmation
6
- * Do not proceed if no task is defined. Return immediatly with the message: "No task defined as prompt control"
7
-
8
- * Focus on the description in the `Description` section of the defined task. Ignore all other sections.
9
- * Analyze the content of the task description section and adapt your default recipe accordingly. You can add new "[@to-do]s ...", you can delete "[@to-do]s" that are not necessary anymore according to the existing task description content
10
-
11
- * the format and formulation of your default recipe implementing a feature in BDD style is
12
- ```
13
- [@to-do] analyze and understand the given `user story`
14
- [@to-do] generate an example contributing to the rule `rule of userstory to implement` which should be turned into a scenario or feature description
15
- [@to-do] use the example and aditional relevant context `{context list}` to formulate the feature file
16
- [@to-do] use the formulated feature file, relevant existing step implementations and relevant existing production code to implement the new step implementations that will fail
17
- [@to-do] use the created step definitions, the relevant existing production code to modify existing code and to create new code implementing the requested behavior so that the step implementations will pass
18
- ```
19
-
20
- * append your recipe at the end of task
21
- * return the extended task in the following format
22
- ```artefact
23
- # [ ] extract
24
- # filename: ara/tasks/{task_name}.task
25
- {initial task content}
26
- {recipe}
27
- ```
28
- * the extract and filename statements are only allowed once per code block
29
-
30
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new artefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,9 +0,0 @@
1
- ### COMMANDS FOR THE CORRECT CONTEXTUAL CLASSIFICATION OF ARTIFACTS
2
- Your job is now:
3
- * analyze the given files with respect to content and relationship
4
- * analyze the new artefact with respect to content and the relationship to the given files
5
- * give me a list of the top 5 artefacts to which the new artefact contributes the most
6
- * the output format must be a table with the columns
7
- | artefact name | contribution rating from 0 (very low) - 1 (very high) | arguments for rating | path to artefact |
8
-
9
- * in case you think the relationship of the new artefact is to weak to any given files, return a warning "WARNING: new artefact is not directly related to already existing aretefacts" and then make a proposal with regard of the ara "work orchestration contribution hierarchy" and/or the "specification contribution hierarchy"
@@ -1,17 +0,0 @@
1
- ### COMMANDS FOR EXTENDING EXISTING AGILE REQUIREMENTS ARTIFACTS
2
- Your job is now:
3
- * analyze the given files with respect to content and relationship
4
- * analyze the new or changed behavior with respect to content and the relationship to the existing artefacts
5
- * Develop formulation strategies that minimize formulation changes of existing changes.
6
- * generate a formulation proposal that adds the new context and or behavior for the specified documents
7
- * wrap and return the formulated in the following format
8
- ```artefact
9
- # [ ] extract
10
- # filename: {path/filename.filextension}
11
- {formulation}
12
- ```
13
- * the extract and filename statements are only allowed once per code block
14
-
15
- * Adhere strictly to established rules for AGILE PRODUCT OWNERS for high-quality specification artefacts.
16
-
17
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new aretefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,14 +0,0 @@
1
- ### COMMANDS FOR FORMULATING AGILE REQUIREMENTS ARTIFACTS
2
- Your job is now:
3
- * analyze the given files with respect to content and relationship
4
- * analyze the new artefact with respect to content and the relationship to the given files
5
- * generate a formulation proposal for the specified documents
6
- * wrap and return the formulated in the following format
7
- ```artefact
8
- # [ ] extract
9
- # filename: {path/filename.filextension}
10
- {formulation}
11
- ```
12
- * the extract and filename statements are only allowed once per code block
13
-
14
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new artefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,102 +0,0 @@
1
- ### COMMANDS FOR IMPLEMENTING A STEP IMPLEMENTATION FROM A GIVEN FEATURE FILE
2
- Your job is now:
3
- * Silently analyze the given feature file to understand the required step implementations.
4
- * Silently review any additionally provided source files to check if any reusable step implementations already exist or if the necessary support methods are available.
5
- * Develop implementation strategies that minimize code changes, prefer reusing existing methods and step definitions over new implementations.
6
- * Use this example of a simple feature file, the corresponding step definitions and the production code as best practice to get your job done
7
- """
8
- Feature file:
9
- **features/arithmetic.feature**
10
- ```gherkin
11
- Feature: Arithmetic Operations
12
-
13
- Contributes to: <Any artefact name to which this feature contributes value> <Classifier of this artefact>
14
-
15
- Scenario: Addition of two numbers
16
- Given the CLI is initialized
17
- When the user runs the addition command with "2" and "3"
18
- Then the result should be "5"
19
-
20
- Scenario Outline: Subtraction of two numbers
21
- Given the CLI is initialized
22
- When the user runs the subtraction command with "<num1>" and "<num2>"
23
- Then the result should be "<result>"
24
-
25
- Examples:
26
- | num1 | num2 | result |
27
- | 5 | 3 | 2 |
28
- | 10 | 4 | 6 |
29
- | 0 | 0 | 0 |
30
- ```
31
-
32
- Step Definitions in Python with behave as BDD test framework:
33
- **features/steps/arithmetic_steps.py**
34
- ```python
35
- import subprocess
36
- from behave import given, when, then
37
-
38
- @given('the CLI is initialized')
39
- def step_given_cli_initialized(context):
40
- context.cli_command = 'python path/to/your_arithmetic_script.py'
41
-
42
- @when('the user runs the addition command with "{num1}" and "{num2}"')
43
- def step_when_user_runs_addition_command(context, num1, num2):
44
- context.result = subprocess.run(
45
- [context.cli_command, 'add', num1, num2],
46
- capture_output=True,
47
- text=True
48
- ).stdout.strip()
49
-
50
- @when('the user runs the subtraction command with "{num1}" and "{num2}"')
51
- def step_when_user_runs_subtraction_command(context, num1, num2):
52
- context.result = subprocess.run(
53
- [context.cli_command, 'subtract', num1, num2],
54
- capture_output=True,
55
- text=True
56
- ).stdout.strip()
57
-
58
- @then('the result should be "{expected_result}"')
59
- def step_then_result_should_be(context, expected_result):
60
- assert context.result == expected_result, f"Expected {expected_result} but got {context.result}"
61
- ```
62
-
63
- CLI Script as example production code to satisfiy the interfaces defined in the step definitions (DO NOT GENERATE ANY PRODUCTION CODE NOW):
64
- **your_arithmetic_script.py**
65
- ```python
66
- import sys
67
-
68
- def add(a, b):
69
- return int(a) + int(b)
70
-
71
- def subtract(a, b):
72
- return int(a) - int(b)
73
-
74
- if __name__ == "__main__":
75
- if len(sys.argv) != 4:
76
- print("Usage: python your_arithmetic_script.py <operation> <num1> <num2>")
77
- sys.exit(1)
78
-
79
- operation = sys.argv[1]
80
- num1 = sys.argv[2]
81
- num2 = sys.argv[3]
82
-
83
- if operation == 'add':
84
- print(add(num1, num2))
85
- elif operation == 'subtract':
86
- print(subtract(num1, num2))
87
- else:
88
- print(f"Unknown operation: {operation}")
89
- sys.exit(1)
90
- ```
91
- """
92
- * Systematically search and check if any of the new step definitions is already existing in any given step file. It must then be omitted in the new step definitions generation. Otherwise it will create an ambiguous steps error in the behave registry.
93
- * return the generated step definitions in this format:
94
- ```python
95
- # [ ] extract
96
- # filename: {path/filename}.py
97
- {python code}
98
- ```
99
-
100
- * The extract and filename statements are only allowed once per code block.
101
- * Adhere strictly to established rules for high-quality Python code and architecture.
102
- * If essential information is missing for code generation, issue a warning: "WARNING: Information is missing to do a correct step implementation." Specify what information is lacking and suggest how it might be retrieved.
@@ -1,20 +0,0 @@
1
- ### COMMANDS FOR IMPLEMENTING THE INTENDED GOAL
2
- Your job is now:
3
- * Silently analyze the intended behavior and draft potential new implementations in pseudo code.
4
- * Silently review the provided source files to understand both the current behavior and the intended new implementation.
5
- * Develop implementation strategies that minimize code changes, prefer reusing existing methods over new implementations.
6
- * Output a "change table" listing all necessary changes. Include an example line for reference:
7
- | filename | method | short description of intended changes |
8
- | {filename}.py | {method name of existing or new method} | {detailed explanation of the changes serving as code generation prompt} |
9
-
10
- * Implement the changes as specified in the change table, ensuring your generated code blocks are not just code snippets but at complete method levels. Use for every single generated code block this format:
11
- ```python
12
- # [ ] extract
13
- # filename: {path/filename}.py
14
- {python code}
15
- ```
16
- * the extract and filename statements are only allowed once per code block
17
-
18
- * Adhere strictly to established rules for high-quality Python code and architecture.
19
-
20
- * If essential information is missing for code generation, issue a warning: "WARNING: Information is missing to do a correct implementation." Specify what information is lacking and suggest how it might be retrieved.
@@ -1,13 +0,0 @@
1
- ### COMMANDS FOR AN OBVIOUS IMPLEMENTATION THE INTENDED GOAL
2
- Your job is now:
3
- * remember you are strictly following your given RULES AS EXPERT PYTHON DEVELOPER for code and architectural code quality
4
- * change only code that must changed
5
- * Implement the code ensuring your generated code blocks are not just code snippets but at complete method levels. Use for every single generated code block this format:
6
- ```python
7
- # [ ] extract
8
- # filename: {path/filename}.py
9
- {python code}
10
- ```
11
- * the extract and filename statements are only allowed once per code block
12
-
13
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new aretefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,20 +0,0 @@
1
- ### COMMANDS FOR ERROR FIXING
2
- Your job is now to fix the error:
3
- * Silently analyze the described error and draft a potential solution to the fix the error
4
- * Silently review the provided source files to understand both the current faulty implementation and the intended changes to fix the error.
5
- * Develop implementation strategies that minimize code changes, prefer reusing existing methods over new implementations.
6
- * Output a "change table" listing all necessary changes. Include an example line for reference:
7
- | filename | method | short description of intended changes |
8
- | {filename}.py | {method name of existing or new method} | {detailed explanation of the changes serving as code generation prompt} |
9
-
10
- * Implement the changes as specified in the change table, ensuring your generated code blocks are not just code snippets but at complete method levels. Use for every single generated code block this format:
11
- ```python
12
- # [ ] extract
13
- # filename: {path/filename}.py
14
- {python code}
15
- ```
16
- * the extract and filename statements are only allowed once per code block
17
-
18
- * Adhere strictly to established rules for high-quality Python code and architecture.
19
-
20
- * If essential information is missing for code generation, issue a warning: "WARNING: Information is missing to do a correct implementation." Specify what information is lacking and suggest how it might be retrieved.
@@ -1,18 +0,0 @@
1
- ### COMMANDS FOR UPDATING THE FORMULATION OF FEATURE FILES
2
- Your job is now:
3
- * Examine the designated feature file, ensuring it aligns with the content and its relationships within the context files.
4
- * If there is a discrepancy between the feature's specifications and the system behavior described in the context files, defer to the behavior outlined in the context files. This also applies to behaviors not yet described in the existing feature file.
5
- * return a table of your five top rated proposed enhancements sorted by the "Formulation enhancement rating" and formatted in the following way (one example line is given as reference):
6
- | Number | filename | Scenario name | Line of feature file (from - to) | Formulation enhancement rating (0 - 1) | explanation of enhancement |
7
- | 1 | file.feature | some_scenario | 30-65 | 0.9 | {here comes an explanation and reasoning of the updated formulation and a reference to the context source} |
8
-
9
- * Propose a revised formulation for the feature file based on the analysis.
10
- * wrap and return the revised formulation in the following format
11
- ```artefact
12
- # [ ] extract
13
- # filename: {path/artefac_filename.feature}
14
- {formulation}
15
- ```
16
- * the extract and filename statements are only allowed once per code block
17
-
18
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to update the formulation of the designated feature file" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,43 +0,0 @@
1
- ### COMMANDS FOR FORMULATING AGILE REQUIREMENTS ARTIFACTS
2
- Your job is now:
3
- * remember your RULES
4
- * analyze the given files with respect to content and relationship
5
- * analyze the new artefact with respect to content and the relationship to the given files
6
- * generate a formulation proposal for the specified documents
7
-
8
- * Use this example of a simple feature file, the corresponding step definitions and the production code as best practice to get your job done
9
- """
10
- Feature file:
11
- **features/arithmetic.feature**
12
- ```gherkin
13
- Feature: Arithmetic Operations
14
-
15
- Contributes to: <Any artefact name to which this feature contributes value> <Classifier of this artefact>
16
-
17
- Scenario: Addition of two numbers
18
- Given the CLI is initialized
19
- When the user runs the addition command with "2" and "3"
20
- Then the result should be "5"
21
-
22
- Scenario Outline: Subtraction of two numbers
23
- Given the CLI is initialized
24
- When the user runs the subtraction command with "<num1>" and "<num2>"
25
- Then the result should be "<result>"
26
-
27
- Examples:
28
- | num1 | num2 | result |
29
- | 5 | 3 | 2 |
30
- | 10 | 4 | 6 |
31
- | 0 | 0 | 0 |
32
- ```
33
-
34
- * wrap and return the formulated feature in the following format
35
- ```artefact
36
- # [ ] extract
37
- # filename: {path/filename.filextension}
38
- {formulation}
39
- ```
40
- * the extract and filename statements are only allowed once per code block
41
-
42
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new artefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
43
-
@@ -1,13 +0,0 @@
1
- ### COMMANDS FOR AN OBVIOUS IMPLEMENTATION THE INTENDED GOAL
2
- Your job is now:
3
- * remember you are strictly following your given RULES AS EXPERT JAVASCRIPT DEVELOPER for code and architectural code quality
4
- * change only code that must changed
5
- * Implement the code ensuring your generated code blocks are not just code snippets but at complete method levels. Use for every single generated code block this format:
6
- ```js
7
- # [ ] extract
8
- # filename: {path/filename}.js
9
- {js code}
10
- ```
11
- * the extract and filename statements are only allowed once per code block
12
-
13
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new aretefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,15 +0,0 @@
1
- ### COMMANDS FOR REFACTORING
2
- Your job is now
3
- * remember you are strictly following your given RULES AS EXPERT PYTHON DEVELOPER
4
- * analyze again the given files with regard to the intended refactoring
5
- * refactor to enhance the code as indended
6
- * return code as fully refactored methods and not as code snippets
7
- * return the code in the following format, ensuring your generated code blocks are not just code snippets but at complete method levels. Use for every single generated code block this format:
8
- ```python
9
- # [ ] extract
10
- # filename: {path/filename}.py
11
- {python code}
12
- ```
13
- * the extract and filename statements are only allowed once per code block
14
-
15
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new aretefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,9 +0,0 @@
1
- ### COMMANDS FOR REFACTORING ANALYSIS
2
- Your job is now:
3
- * remember you are strictly following your given RULES AS EXPERT PYTHON DEVELOPER
4
- * analyze the intended refactoring and make a list of potential code enhancements with regard to the given files
5
- * return a table of your five top rated proposed enhancements sorted by the "Code enhancement rating" and formatted in the following way (one example line is given as reference):
6
- | Number | filename | method name | Line of code (from - to) | Code enhancement rating (0 - 1) | explanation of enhancement |
7
- | 1 | file.py | some_method | 30-65 | 0.9 | {here comes an explanation that on the level of a precise and detailed refactoring prompt} |
8
-
9
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to formulate the new aretefacts" and then explain what kind of information you think is missing and how I could easily retrieve it
@@ -1,15 +0,0 @@
1
- ### COMMANDS FOR REVERSE ENGINEER A FEATURE FILE FROM EXISTING CODE
2
- Your job is now:
3
- * remember you are strictly following your given RULES AS GHERKIN EXPERT
4
- * Silently analyze the intended behavior of the given code and if given any other description of the program flow like pseudo code
5
- * do not add any additional behavior in the feature file, describe strictly the behavior that is defined by code or pseudo code
6
- * if any existing feature files are provided maximize reusage of formulated steps so that later step implementation effort can be reduces
7
-
8
- * return your results in the following format
9
- ```gherkin
10
- # [ ] extract
11
- # filename: {path/filename}.feature
12
- {feature file}
13
- ```
14
-
15
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to correctly fullfill the job!" and then explain what kind of information you think is missing and how I could easily retrieve it.
@@ -1,19 +0,0 @@
1
- ### COMMANDS FOR REVERSE ENGINEER PROGRAM FLOW FROM EXISTING CODE
2
- Your job is now:
3
- * remember you are strictly following your given RULES AS CODE ANAYLST
4
- * Silently analyze the intended behavior of the given code
5
- * create as result of your silent analysis this analysis table
6
- | filename | method | short description of logical contribution to the logical program flow |
7
- | {filename}.py | {method name, descriptive name of code block} | {detailed explanation of the value to the program flow} |
8
-
9
- * then generate based on your analysis and by using your generated analysis table the pseudo code that summarizes the logical flow for the whole process to generate the listing from start to end. Here is an example how the pseude code could look like:
10
- ```pseudo code
11
- Initialize the system to prepare for use
12
- Verify if the user is authenticated
13
- IF the user is authenticated:
14
- Retrieve and process user information
15
- ELSE:
16
- Display an error message if authentication fails
17
- ```
18
-
19
- * in case you think information is missing in order to generate a suffiently precise formulation, return a warning "WARNING: information is missing to correctly fullfill the job!" and then explain what kind of information you think is missing and how I could easily retrieve it.
@@ -1,10 +0,0 @@
1
- @sample_tag
2
- Businessgoal: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- In order to <reach primarily a monetary business goal>
7
- As a <business related role>
8
- I want <something that helps me to reach my monetary goal>
9
-
10
- Description: <further optional description to understand the business goal, markdown capable text formatting>
@@ -1,10 +0,0 @@
1
- @sample_tag
2
- Capability: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- To be able to <needed capability for stakeholders that are the
7
- enablers/relevant for reaching the business goal>
8
-
9
- Description: <further optional description to understand
10
- the capability, markdown capable text formatting>
@@ -1,15 +0,0 @@
1
- @sample_tag
2
- Epic: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- In order to <achieve a benefit>
7
- As a <(user) role>
8
- I want <a certain product behavior>
9
-
10
- Rule: <rule needed to fulfill the wanted product behavior>
11
- Rule: <rule needed to fulfill the wanted product behavior>
12
- Rule: <rule needed to fulfill the wanted product behavior>
13
-
14
- Description: <further optional description to understand
15
- the epic, markdown capable text formatting>
@@ -1,6 +0,0 @@
1
- @sample_tag
2
- Example: <descriptive title>
3
-
4
- Illustrates <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- Description: <further optional description to understand the rule, no format defined, the example artefact is only a placeholder>
@@ -1,26 +0,0 @@
1
- @sample_tag
2
- Feature: <descriptive title>
3
-
4
- As a <user>
5
- I want to <do something | need something>
6
- So that <I can achieve something>
7
-
8
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
9
-
10
- Description: <further optional description to understand
11
- the rule, no format defined, the example artefact is only a placeholder>
12
-
13
- Scenario: <descriptive scenario title>
14
- Given <precondition>
15
- When <action>
16
- Then <expected result>
17
-
18
- Scenario Outline: <descriptive scenario title>
19
- Given <precondition>
20
- When <action>
21
- Then <expected result>
22
-
23
- Examples:
24
- | descriptive scenario title | precondition | action | expected result |
25
- | <example title 1> | <example precond. 1> | <example action 1> | <example result 1> |
26
- | <example title 2> | <example precond. 2> | <example action 2> | <example result 2> |
@@ -1,14 +0,0 @@
1
- @sample_tag
2
- Issue: <descriptive issue>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated> | blank | filled with text that does not refer to an artefact or rule (then this a free issue)
5
-
6
- *Optional descriptions of the issue in Gherkin style*
7
-
8
- Given <descriptive text of the starting conditions where the issue occurs>
9
- When <action under which the issues occurs>
10
- Then <resulting behavior in contrast to the expected behavior>
11
-
12
- *or optional free text description*
13
-
14
- Description: <further free text description to understand the issue, no format defined>
@@ -1,15 +0,0 @@
1
- @sample_tag
2
- Keyfeature: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- In order to <support a capability or business goal>
7
- As a <main stakeholder who will benefit>
8
- I want <a product feature that helps me doing something so that I can achieve my named goal>
9
-
10
- Description: <further optional description to understand the capability, markdown capable text formatting, best practice is using
11
- GIVEN any precondition
12
- AND another precondition
13
- WHEN some action takes place
14
- THEN some result is to be expected
15
- AND some other result is to be expected>
@@ -1,6 +0,0 @@
1
- @to-do
2
- Task: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated> | blank | filled with text that does not refer to an artefact or rule (then this is a free task)
5
-
6
- Description: <further optional description to understand the task, no format defined>
@@ -1,17 +0,0 @@
1
- @sample_tag
2
- Userstory: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- Estimate: <story points, scale?>
7
-
8
- In order to <achieve a benefit>
9
- As a <(user) role>
10
- I want <a certain product behavior>
11
-
12
- Rule: <rule needed to fulfill the wanted product behavior>
13
- Rule: <rule needed to fulfill the wanted product behavior>
14
- Rule: <rule needed to fulfill the wanted product behavior>
15
-
16
- Description: <further optional description to understand
17
- the user story, markdown capable text formatting>
@@ -1,14 +0,0 @@
1
- @sample_tag
2
- Vision: <descriptive title>
3
-
4
- Contributes to <filename or title of the artefact> <agile requirement artefact category> <(optional in case the contribution is to an artefact that is detailed with rules) using rule <rule as it is formulated>
5
-
6
- For <target customer>
7
- Who <needs something>
8
- The <product name> is a <product category>
9
- That <key benefit, compelling reason to buy>
10
- Unlike <primary competitive alternative>
11
- Our product <statement of primary differentiation>
12
-
13
- Description: <further optional description to understand
14
- the vision, markdown capable text formatting>
@@ -1,16 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: ara_cli
3
- Version: 0.1.9.69
4
- Requires-Dist: litellm
5
- Requires-Dist: llama-index
6
- Requires-Dist: llama-index-llms-openai
7
- Requires-Dist: llama-index-retrievers-bm25
8
- Requires-Dist: openai
9
- Requires-Dist: markdown-it-py
10
- Requires-Dist: json-repair
11
- Requires-Dist: argparse
12
- Requires-Dist: argcomplete
13
- Requires-Dist: cmd2>=2.5
14
- Requires-Dist: pydantic
15
- Requires-Dist: pydantic_ai
16
- Dynamic: requires-dist