From 7d62fe18a44c886b7fecd7759932624ea67d75e0 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Fri, 9 Jan 2026 13:40:10 +0000 Subject: [PATCH] Add ROADMAP.md to outline project phases and upcoming features --- ROADMAP.md | 19 +++++++++++++++++++ prompt.yml | 26 ++++++++++++++++---------- src/autometabuilder/main.py | 11 ++++++++++- src/autometabuilder/messages_en.json | 4 +++- 4 files changed, 48 insertions(+), 12 deletions(-) create mode 100644 ROADMAP.md diff --git a/ROADMAP.md b/ROADMAP.md new file mode 100644 index 0000000..37c90b2 --- /dev/null +++ b/ROADMAP.md @@ -0,0 +1,19 @@ +# Roadmap + +## Phase 1: Foundation +- [x] Basic GitHub Integration (fetching issues/PRs) +- [x] Local YAML prompt loading +- [x] Tool-based SDLC operations (branch/PR creation) +- [x] Multi-language support for messages + +## Phase 2: Enhanced Context & Reasoning +- [ ] **Roadmap Awareness**: Bot should explicitly read and update `ROADMAP.md`. +- [ ] **Repository Indexing**: Implement a way to index the codebase for better context. +- [ ] **Declarative Task Processing**: Move more logic into JSON/YAML specifications. +- [ ] **Feedback Loop**: Support for the AI to read comments on PRs it created. + +## Phase 3: Advanced Automation +- [ ] **Automated Testing**: Integration with test runners to verify changes before PR. +- [ ] **Linting Integration**: Automatically run and fix linting issues. +- [ ] **Multi-Model Support**: Easily switch between different LLM providers. +- [ ] **CI/CD Integration**: Github Actions to run AutoMetabuilder on schedule or trigger. diff --git a/prompt.yml b/prompt.yml index cb92ac5..6eb7144 100644 --- a/prompt.yml +++ b/prompt.yml @@ -1,16 +1,22 @@ messages: - role: system content: >- - Use software architecture best practices, unit testing, e2e testing, - linting. + You are an expert software engineer following SDLC best practices. + Ensure high code quality through: + 1. Requirement analysis and clear design. + 2. Writing modular, maintainable, and well-documented code. + 3. Preferring declarative design (e.g., looping over JSON specifications) over imperative or hardcoded logic. + 4. Implementing comprehensive unit and integration tests. + 5. Following security best practices and performance optimization. + 6. Adhering to project-specific coding standards and linting rules. + 7. Keeping documentation (README, ROADMAP, etc.) up to date. - role: user content: >- - Implement features found in ROADMAP.md and README.md, keep both files up - to date. Write playwright and unit tests. Follow code style. Use JSON - schema but its mostly correct so leave the schema alone. Index repository - and make notes. Align styling with old/ folder while sticking with plain - SASS files. Work towards MVP. Run linter and fix lint issues. Ensure - development DBAL is aligned with C++ production DBAL. Tables, Prisma - schemas and types should be generated using DBAL. C++ CLI frontend can - interface with DBAL and make life a bit easier. Implement any stub code. + Analyze the current state of the repository, including open issues, + pull requests, and ROADMAP.md (if it exists). Your primary objective is + to implement the next logical items from the ROADMAP.md while addressing + any urgent issues. If ROADMAP.md is missing, your priority is to + initialize it by analyzing the repository, marking completed tasks, and + listing upcoming work. Ensure all changes are tested, linted, and + properly documented. Update ROADMAP.md as you complete tasks. model: openai/gpt-4o diff --git a/src/autometabuilder/main.py b/src/autometabuilder/main.py index 7897e61..009625d 100644 --- a/src/autometabuilder/main.py +++ b/src/autometabuilder/main.py @@ -26,8 +26,17 @@ def load_prompt_yaml() -> dict: def get_sdlc_context(gh: GitHubIntegration, msgs: dict) -> str: - """Retrieve SDLC context (issues and PRs) from GitHub.""" + """Retrieve SDLC context (issues, PRs, and Roadmap) from GitHub/Local.""" sdlc_context = "" + + # Load ROADMAP.md if it exists, otherwise add instruction to create it + if os.path.exists("ROADMAP.md"): + with open("ROADMAP.md", "r", encoding="utf-8") as f: + roadmap_content = f.read() + sdlc_context += f"\n{msgs.get('roadmap_label', 'ROADMAP.md Content:')}\n{roadmap_content}\n" + else: + sdlc_context += f"\n{msgs.get('missing_roadmap_msg', 'ROADMAP.md is missing. Please analyze the repository and create it.')}\n" + if gh: try: issues = gh.get_open_issues() diff --git a/src/autometabuilder/messages_en.json b/src/autometabuilder/messages_en.json index 912ed6a..85ca11e 100644 --- a/src/autometabuilder/messages_en.json +++ b/src/autometabuilder/messages_en.json @@ -10,6 +10,8 @@ "error_github_not_available": "Error: GitHub integration not available for tool call.", "error_github_repo_missing": "GITHUB_REPOSITORY environment variable not set", "sdlc_context_label": "SDLC Context:", + "roadmap_label": "ROADMAP.md Content:", "open_issues_label": "Open Issues:", - "open_prs_label": "Open Pull Requests:" + "open_prs_label": "Open Pull Requests:", + "missing_roadmap_msg": "ROADMAP.md is missing. Please analyze the repository, create ROADMAP.md with tickboxes for completed items, and list tasks that need to be done." }