You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
refactor(agent): Rename SDLCFlexibleAgent to FlexibleAgent, update docs, workflows, and scripts
- Renamed main agent class from SDLCFlexibleAgent to FlexibleAgent in src/agents/deepagent.py; added alias for backward compatibility
- Updated all documentation, examples, and CI workflows to prefer FlexibleAgent
- Added deprecation note for SDLCFlexibleAgent in doc/deepagent.md
- Harmonized copilot-instructions.md, AGENTS.md, and README.md for venv/test script workflow, coverage, lint/typecheck, and Makefile targets
- Added Makefile targets for lint, lint-fix, typecheck, format, coverage, and unified ci
- Added .pre-commit-config.yaml with ruff, mypy, and coverage hooks; updated requirements-dev.txt
- Hardened provider normalization and made dotenv imports optional in scripts/examples
- Verified all changes with full test suite (78/78 passing)
BREAKING CHANGE: SDLCFlexibleAgent is deprecated; use FlexibleAgent for all new code. Alias remains for compatibility but will be removed in a future release.
Copy file name to clipboardExpand all lines: AGENTS.md
+37-23Lines changed: 37 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,22 +1,33 @@
1
1
# Instructions for AI Agents
2
2
3
-
This document provides instructions and guidelines for AI agents working with the SDLC_core repository.
3
+
This document provides instructions and guidelines for AI agents working with the unstructuredDataHandler repository.
4
4
5
5
## Repository Overview
6
6
7
-
SDLC_core is a Python-based Software Development Life Cycle core project that provides AI/ML capabilities for software development workflows. The repository contains modules for LLM clients, intelligent agents, memory management, prompt engineering, document retrieval, skill execution, and various utilities.
7
+
unstructuredDataHandler is a Python-based Software Development Life Cycle core project that provides AI/ML capabilities for software development workflows. The repository contains modules for LLM clients, intelligent agents, memory management, prompt engineering, document retrieval, skill execution, and various utilities.
-**Project Type**: AI/ML library and tooling for SDLC workflows
12
12
13
13
## Environment Setup
14
14
15
-
### 1. Install Dependencies
15
+
### 1. Preferred: Isolated venv via script
16
16
17
-
**IMPORTANT**: The project's dependencies are split into multiple files. For development and testing, you should install the dependencies from `requirements-dev.txt`.
17
+
Use the reproducible test script. It creates `.venv_ci`and pins pytest for reliable runs.
18
18
19
19
```bash
20
+
./scripts/run-tests.sh
21
+
```
22
+
23
+
### 2. Alternative: Local dev venv
24
+
25
+
Create and activate your own virtual environment, then install dev dependencies.
26
+
27
+
```bash
28
+
python3 -m venv .venv
29
+
source .venv/bin/activate
30
+
pip install -U pip
20
31
pip install -r requirements-dev.txt
21
32
```
22
33
@@ -38,16 +49,18 @@ PYTHONPATH=. python -m pytest
38
49
39
50
### Testing
40
51
41
-
The test infrastructure is set up. Use the following commands to run tests:
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,14 +63,14 @@ If you don't have any additional info/context to add but would like to indicate
63
63
64
64
If you're able & willing to help fix issues and/or implement features, we'd love your contribution!
65
65
66
-
The list of ["good first issue"](https://github.com/SoftwareDevLabs/SDLC_core/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22++label%3A%22good+first+issue%22+)s is another set of issues that might be easier for first-time contributors. Once you're feeling more comfortable in the codebase, feel free to just use the ["Help Wanted"](https://github.com/SoftwareDevLabs/SDLC_core/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22+) label, or just find any issue you're interested in and hop in!
66
+
The list of ["good first issue"](https://github.com/SoftwareDevLabs/unstructuredDataHandler/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22++label%3A%22good+first+issue%22+)s is another set of issues that might be easier for first-time contributors. Once you're feeling more comfortable in the codebase, feel free to just use the ["Help Wanted"](https://github.com/SoftwareDevLabs/unstructuredDataHandler/issues?q=is%3Aopen+is%3Aissue+label%3A%22Help+Wanted%22+) label, or just find any issue you're interested in and hop in!
67
67
68
68
Generally, we categorize issues in the following way:
69
-
*["Bugs"](https://github.com/SoftwareDevLabs/SDLC_core/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Bug%22+) are parts of the SDLC_core that are not quite working the right way. There's code to already support some scenario, but it's not quite working right. Fixing these is generally a matter of debugging the broken functionality and fixing the wrong code.
70
-
*["Tasks"](https://github.com/SoftwareDevLabs/SDLC_core/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Task%22+) are usually new pieces of functionality that aren't yet implemented for the SDLC_core. These are usually smaller features, which we believe
69
+
*["Bugs"](https://github.com/SoftwareDevLabs/unstructuredDataHandler/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Bug%22+) are parts of the unstructuredDataHandler that are not quite working the right way. There's code to already support some scenario, but it's not quite working right. Fixing these is generally a matter of debugging the broken functionality and fixing the wrong code.
70
+
*["Tasks"](https://github.com/SoftwareDevLabs/unstructuredDataHandler/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Task%22+) are usually new pieces of functionality that aren't yet implemented for the unstructuredDataHandler. These are usually smaller features, which we believe
71
71
- could be a single, atomic PR
72
72
- Don't require much design consideration, or we've already written the spec for the larger feature they belong to.
73
-
*["Features"](https://github.com/SoftwareDevLabs/SDLC_core/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Feature%22+) are larger pieces of new functionality. These are usually things we believe would require larger discussion of how they should be implemented, or they'll require some complicated new settings. They might just be features that are composed of many individual tasks. Often times, with features, we like to have a spec written before development work is started, to make sure we're all on the same page (see below).
73
+
*["Features"](https://github.com/SoftwareDevLabs/unstructuredDataHandler/issues?q=is%3Aopen+is%3Aissue+label%3A%22Issue-Feature%22+) are larger pieces of new functionality. These are usually things we believe would require larger discussion of how they should be implemented, or they'll require some complicated new settings. They might just be features that are composed of many individual tasks. Often times, with features, we like to have a spec written before development work is started, to make sure we're all on the same page (see below).
74
74
75
75
Bugs and tasks are obviously the easiest to get started with, but don't feel afraid of features either! We've had some community members contribute some amazing "feature"-level work to our repos (albeit, with lots of discussion 😄).
76
76
@@ -101,7 +101,7 @@ Team members will be happy to help review specs and guide them to completion.
101
101
102
102
### Help Wanted
103
103
104
-
Once the team has approved an issue/spec, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/SoftwareDevLabs/SDLC_core/labels/Help%20Wanted).
104
+
Once the team has approved an issue/spec, development can proceed. If no developers are immediately available, the spec can be parked ready for a developer to get started. Parked specs' issues will be labeled "Help Wanted". To find a list of development opportunities waiting for developer involvement, visit the Issues and filter on [the Help-Wanted label](https://github.com/SoftwareDevLabs/unstructuredDataHandler/labels/Help%20Wanted).
105
105
106
106
---
107
107
@@ -130,7 +130,7 @@ Here are a few things you can do that will increase the likelihood of your pull
130
130
131
131
### Testing
132
132
133
-
Testing is a key component in the development workflow. This SDLC_core should use well defined testing methodology to ensure that SDLC_core and its key components are tested.
133
+
Testing is a key component in the development workflow. This unstructuredDataHandler should use well defined testing methodology to ensure that unstructuredDataHandler and its key components are tested.
134
134
135
135
<!---TAEF (the Test Authoring and Execution Framework) as the main framework for testing.
This repository contains the source code for the SDLC_core project, a Python-based framework for building AI-powered software development life cycle tools.
23
+
This repository contains the source code for the unstructuredDataHandler project, a Python-based framework for building AI-powered software development life cycle tools.
The plan for the SDLC_core[is described here](./doc/roadmap-20xx.md) and
31
+
The plan for the unstructuredDataHandler[is described here](./doc/roadmap-20xx.md) and
32
32
will be updated as the project proceeds.
33
33
34
34
## Installing and running Windows Terminal
35
35
36
36
> [!NOTE]
37
37
> This section is a placeholder and may not be relevant to this project.
38
38
39
-
## SDLC_core Overview
39
+
## unstructuredDataHandler Overview
40
40
41
-
SDLC_core is a Python-based Software Development Life Cycle core project that provides AI/ML capabilities for software development workflows. The repository contains modules for LLM clients, intelligent agents, memory management, prompt engineering, document retrieval, skill execution, and various utilities. It combines a Python core with TypeScript for Azure DevOps pipeline configurations.
41
+
unstructuredDataHandler is a Python-based Software Development Life Cycle core project that provides AI/ML capabilities for software development workflows. The repository contains modules for LLM clients, intelligent agents, memory management, prompt engineering, document retrieval, skill execution, and various utilities. It combines a Python core with TypeScript for Azure DevOps pipeline configurations.
42
42
43
43
## Resources
44
44
@@ -59,8 +59,8 @@ SDLC_core is a Python-based Software Development Life Cycle core project that pr
59
59
## Documentation
60
60
61
61
All project documentation is located at [softwaremodule-docs](./doc/). If you would like
62
-
to contribute to the documentation, please submit a pull request on the [SDLC_core
The `agents` module provides the core components for creating AI agents. It includes a flexible `SDLCFlexibleAgent` that can be configured to use different LLM providers (like OpenAI, Gemini, and Ollama) and a set of tools. The module is designed to be extensible, allowing for the creation of custom agents with specialized skills. Key components include a planner and an executor (currently placeholders for future development) and a `MockAgent` for testing and CI.
85
+
The `agents` module provides the core components for creating AI agents. It includes a flexible `FlexibleAgent` (formerly `SDLCFlexibleAgent`) that can be configured to use different LLM providers (like OpenAI, Gemini, and Ollama) and a set of tools. The module is designed to be extensible, allowing for the creation of custom agents with specialized skills. Key components include a planner and an executor (currently placeholders for future development) and a `MockAgent` for testing and CI.
86
86
87
87
### Parsers
88
88
@@ -159,8 +159,48 @@ You can also use the Makefile targets:
159
159
```bash
160
160
make test
161
161
make lint
162
+
make typecheck
163
+
make format
164
+
make coverage # terminal coverage summary
165
+
make coverage-html # generate HTML report in ./htmlcov/
166
+
make ci # tests with coverage + ruff + mypy + pylint
162
167
```
163
168
169
+
### How to test locally (two options)
170
+
171
+
- Preferred (isolated venv): Use `./scripts/run-tests.sh`. It creates `.venv_ci`, pins pytest, and runs with `PYTHONPATH`set correctly.
172
+
- Alternative (your own venv):
173
+
1. `python3 -m venv .venv`
174
+
2. `source .venv/bin/activate`
175
+
3. `pip install -U pip`
176
+
4. `pip install -r requirements-dev.txt`
177
+
5. `PYTHONPATH=. python -m pytest test/ -v`
178
+
179
+
### Optional: run with coverage
180
+
181
+
- Isolated venv script (add flags after the script path):
The easiest way to communicate with the team is via GitHub issues.
@@ -189,18 +243,18 @@ Please review these brief docs below about our coding practices.
189
243
This is a work in progress as we learn what we'll need to provide people in
190
244
order to be effective contributors to our project.
191
245
192
-
- [Coding Style](./doc/STYLE.md)
193
-
- [Code Organization](./doc/ORGANIZATION.md)
194
-
- [Exceptions in our legacy codebase](./doc/EXCEPTIONS.md)
246
+
- [Coding Style](./doc/STYLE.md)
247
+
- [Code Organization](./doc/ORGANIZATION.md)
248
+
- [Exceptions in our legacy codebase](./doc/EXCEPTIONS.md)
195
249
196
250
---
197
251
198
252
## Code of Conduct
199
253
200
254
This project has adopted the [Code of Conduct][conduct-code]. For more information see the [Code of Conduct][conduct-code] or contact [info@softwaredevlabs.com][conduct-email] with any additional questions or comments.
201
255
202
-
[conduct-code](./CODE_OF_CONDUCT.md)
203
-
204
-
[conduct-email]: mailto:info@softwaredevlabs.com
205
256
[conduct-code]: ./CODE_OF_CONDUCT.md
206
257
[conduct-email]: mailto:info@softwaredevlabs.com
258
+
[docs-repo]: https://github.com/SoftwareDevLabs
259
+
<!-- TODO: update [docs-repo] once the dedicated docs repository is created,
260
+
e.g. https://github.com/SoftwareDevLabs/unstructuredDataHandler-docs -->
0 commit comments