sommerfeld-io / .github

Special repository with fallback content for all of repos that don't have an actual .github directory
0 stars 0 forks source link

PoC: Leveraging AI for Active Development #15

Open sebastian-sommerfeld-io opened 6 months ago

sebastian-sommerfeld-io commented 6 months ago

As a maintainer of the Source2adoc application, I want to explore the potential of AI-driven feature requests and development to ensure continuous improvement and innovation within the app. This initiative is aimed at leveraging cutting-edge technologies to enhance user experience and maintain the app's relevance in a rapidly evolving landscape.

As a maintainer, I seek to integrate AI into the development process of source2adoc to streamline feature requests and further advancements. By harnessing the power of AI, I aim to accelerate the pace of development while ensuring that user feedback is promptly addressed and incorporated into the app. Using AI should ensure the App remains under active development while minimizing manual effort.

To achieve this, I envision implementing a Proof of Concept (PoC) that demonstrates the capabilities of AI in analyzing user suggestions, prioritizing feature requests, and generating insights for future development roadmaps. This PoC will serve as a foundation for establishing an AI-driven development pipeline that empowers the source2adoc team to adapt swiftly to evolving user needs and technological trends.

By embracing AI-driven development, we aim to foster a culture of innovation, agility, and responsiveness within the source2adoc community, ensuring that the app remains at the forefront of document conversion technology. This PoC represents the first step towards a future where AI plays a central role in shaping the evolution of source2adoc, empowering us to deliver unparalleled value to our users.

Possible functionalities of the AI-enabled development process include (as suggested by ChatGPT)

  1. Feature Request Analysis: The AI system will analyze incoming feature requests from users, categorize them based on relevance and feasibility, and provide insights into the most requested features.

  2. Prioritization: Leveraging machine learning algorithms, the system will prioritize feature requests based on various factors such as user feedback, market trends, and technical feasibility, ensuring that development efforts are focused on high-impact features.

  3. Trend Identification: By analyzing user interactions and industry trends, the AI system will identify emerging needs and technological advancements, enabling proactive development of features to stay ahead of the curve.

  4. Automated Development Support: The AI system will assist developers by generating code snippets, suggesting design patterns, and providing recommendations for implementation, thereby accelerating the development process and reducing manual effort.

  5. Continuous Learning: Through iterative feedback loops, the AI system will continuously learn from user interactions and development outcomes, refining its algorithms to better serve the evolving needs of Source2adoc users.

My ideas about possible features

See

https://github.com/cli/cli/actions/runs/9086700583/workflow

sebastian-sommerfeld-io commented 3 months ago

Google Gemini Free Tier

https://ai.google.dev/docs

Request

curl \
  -H 'Content-Type: application/json' \
  -d '{"contents":[{"parts":[{"text":"Explain how AI works"}]}]}' \
  -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=<API_TOKEN>'

Response

{
  "error": {
    "code": 400,
    "message": "Gemini API free tier is not available in your country. Please enable billing on your project in Google AI Studio.",
    "status": "FAILED_PRECONDITION"
  }
}
sebastian-sommerfeld-io commented 1 month ago

Relates to

ChatGPT infos

There are several AI tools and techniques you can use to enhance your software development:

  1. Code Review and Quality Analysis: Tools like Codacy or DeepSource use AI to analyze your code for potential issues, ensuring higher code quality and consistency.

  2. Automated Testing: Tools like Testim or Mabl leverage AI to create and run automated tests, making it easier to catch bugs early.

  3. Code Generation: Beyond GitHub Copilot, you can explore tools like TabNine or Kite, which offer AI-driven code completion and suggestions across multiple languages.

  4. Natural Language Processing: You can integrate NLP models (like those provided by Hugging Face) to build features such as chatbots, text analysis, or sentiment analysis within your applications.

  5. AI-powered Debugging: Tools like Sentry can help you identify, diagnose, and fix errors in your code by analyzing patterns and common issues.

  6. Project Management: AI tools like ZenHub or Clubhouse can help in managing your projects more efficiently by predicting timelines, prioritizing tasks, and providing insights based on your project data.

Exploring these tools can help you streamline various aspects of your software development process. Which of these sounds interesting to you?

:zap: The issue with automated Code Reviews (due to available services)

Using ChatGPT with GitHub Actions like code-review-gpt or using the OpenAI API directly consumes credits for ChatGPT. I already pay for GitHub Copilot. I do not want to pay for a second AI solution. Plus (I assume) it is only a matter of time until Copilot is deeply integrated into GitHub and allows working with PRs and Issues and everything.

Additional non-AI logic

:warning: for Backlog refinement, not Code Reviews

:thought_balloon: It might be better to not just prioritize issues based on score but to use an AI solution right from the start where the score is combined with some AI recommendations.

sebastian-sommerfeld-io commented 1 month ago

GitHub Copilot Chat

You can store business value and story points for each user story by using custom fields in GitHub Issues. Here’s how you can do it:

Custom Labels: Use labels to represent business value and story points. For example, you can create labels like business-value: high, story-points: 5.

Issue Templates: Create issue templates that include fields for business value and story points.

Querying: Use GitHub’s search and filtering capabilities to filter issues based on these labels.

For instance, to filter issues with high business value, you can search for label:"business-value: high".

Would you like more detailed steps or help with setting up specific filters?


When you use issue templates in GitHub, the inputs are stored as a single text block in the resulting issue. However, you can still make the fields queryable by using labels or structured text within the issue.

Approaches:

  1. Labels:

    • Use labels to tag issues with specific story points and business values.
    • Example: label:"story-points: 5" and label:"business-value: high".
  2. Structured Text:

    • Include structured text in the issue body and use search queries to filter.
    • Example: Use a consistent format like Story Points: 5 and Business Value: High.

To filter issues based on these fields, you can use GitHub's search functionality with appropriate queries. For example:

Would you like to see an example of an issue template structure for this?


Example Issue Template

---
name: User Story
about: Create a new user story
title: "[User Story] "
labels: user-story
assignees: ''

---

**Story Points:** 

**Business Value:** 

**Description**

Provide a detailed description of the user story.

Querying Example

Using labels to tag issues can make it easier to filter and manage them.


Label Naming

Both are correct, but "needs triage" is more commonly recognized in a broader context.

Marking Story Points and Business Value

Recommendation

Would you like specific examples or further assistance with setting up labels or issue templates?

sebastian-sommerfeld-io commented 1 month ago

needs-triage vs needs-refinement

Yes, that distinction makes sense:

Using both labels can help clarify the stages of issue processing in your workflow.

sebastian-sommerfeld-io commented 1 month ago

Google Gemini Free Tier

https://ai.google.dev/docs

Request

curl \
  -H 'Content-Type: application/json' \
  -d '{"contents":[{"parts":[{"text":"Explain how AI works"}]}]}' \
  -X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash-latest:generateContent?key=<API_TOKEN>'

Response

{
  "error": {
    "code": 400,
    "message": "Gemini API free tier is not available in your country. Please enable billing on your project in Google AI Studio.",
    "status": "FAILED_PRECONDITION"
  }
}