Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,4 +99,23 @@ Generates file: `knowledge_base/history.md`
- Always activate the virtual environment before using the tool: `source venv/bin/activate`
- Never delete a test case — change the state to `Blocked` if no longer applicable
- Update `roadmap.md` whenever a step is completed
- The `venv/` folder should not be shared or pushed to Git
- The `venv/` folder should not be shared or pushed to Git

## Interactive Menu

Instead of typing commands manually, you can use the interactive menu:

```bash
python agent/menu.py
```

Navigate with the arrow keys and press Enter to select an option. Available options:

- 📋 **View Test Cases** — lists all test cases
- ➕ **Create Test Case** — adds a new test case interactively
- 🗺️ **View Roadmap** — shows the team roadmap
- 📜 **View History** — shows the change history
- 📤 **Export History** — exports change history to Markdown
- 📤 **Export Test Cases History** — exports test cases history to Markdown
- 🤖 **Ask AI** — asks a question to the AI agent
- ❌ **Exit** — exits the menu
65 changes: 65 additions & 0 deletions agent/menu.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
import questionary
import subprocess
import sys

def run_command(command):
"""Runs a CLI command."""
subprocess.run([sys.executable, "agent/cli.py"] + command)

def wait_for_menu():
"""Waits for the user to press Enter before returning to the menu."""
input("\nPress Enter to return to the menu...")

def main():
while True:
print("\n🤖 QA Agent\n")

choice = questionary.select(
"What would you like to do?",
choices=[
"📋 View Test Cases",
"➕ Create Test Case",
"🗺️ View Roadmap",
"📜 View History",
"📤 Export History",
"📤 Export Test Cases History",
"🤖 Ask AI",
"❌ Exit"
]
).ask()

if choice == "📋 View Test Cases":
run_command(["list-tests"])
wait_for_menu()

elif choice == "➕ Create Test Case":
run_command(["add-test"])
wait_for_menu()

elif choice == "🗺️ View Roadmap":
run_command(["roadmap"])
wait_for_menu()

elif choice == "📜 View History":
run_command(["history"])
wait_for_menu()

elif choice == "📤 Export History":
run_command(["export-history"])
wait_for_menu()

elif choice == "📤 Export Test Cases History":
run_command(["export-tests-history"])
wait_for_menu()

elif choice == "🤖 Ask AI":
question = questionary.text("What would you like to ask?").ask()
run_command(["ask", question])
wait_for_menu()

elif choice == "❌ Exit":
print("\n👋 Goodbye!\n")
break

if __name__ == "__main__":
main()
6 changes: 6 additions & 0 deletions knowledge_base/history.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@
"type": "state_change",
"test_id": "TC-002",
"details": "Active → Passed"
},
{
"timestamp": "2026-07-06 11:54",
"type": "test_created",
"test_id": "TC-005",
"details": "Test case 'This is a test' created"
}
]
}
15 changes: 15 additions & 0 deletions knowledge_base/test_cases/test_cases.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,21 @@
"expected": "Error message is displayed"
}
]
},
{
"id": "TC-005",
"work_item_type": "Test Case",
"title": "This is a test",
"area_path": "Test area",
"assigned_to": "Diogo",
"state": "Active",
"steps": [
{
"step": 1,
"action": "Just a tes",
"expected": "this works"
}
]
}
]
}