Skip to content
This repository was archived by the owner on Jun 15, 2026. It is now read-only.

Commit 5fec30f

Browse files
authored
feat: add SDD and DDD filer for AI based development and Spec 001 implementation (#60)
* feat: add initial files and spec 1 * feat: add spec for rich text feature * chore: restore file from broken AI session * feat: add project constraints to ai * chore: update spec feature prompt * feat: add multiple tags support - wip * test: fix test cases * chore: move tag list to below the inputs * chore: add ngrok files and updates * fix: session issues and query using HQL * test: fix test cases
1 parent a35c037 commit 5fec30f

72 files changed

Lines changed: 2004 additions & 274 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# Architecture Principles
2+
3+
## Core Principles
4+
5+
- Keep solutions simple and focused on the problem at hand.
6+
- Prefer readability and maintainability over cleverness.
7+
- Small functions and modules that do one thing well.
8+
- Use clear and descriptive names for variables, functions, and classes.
9+
- Avoid premature optimization; optimize only when necessary.
10+
- Avoid over-engineering; build only what is needed for the current problem.
11+
- Clear boundaries between components to promote separation of concerns.
12+
- Prefer to maintainability over perfection
13+
14+
## Delivery Principles
15+
16+
Prefer:
17+
- small specs
18+
- iterative delivery
19+
- vertical slices of functionality
20+
- simple APIs
21+
- clear documentation
22+
- understandable code
23+
24+
Avoid:
25+
- giant upfront architecture
26+
- premature optimization
27+
- speculative abstractions
28+
- over-engineering
29+
- unnecessary complexity
30+
- unnecessary microservices

ai/context/domain_glossary.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# Domain Glossary
2+
3+
This glossary provides definitions for key terms and concepts related to the domain of artificial intelligence (AI). It serves as a reference for understanding the terminology used in AI research, development, and applications.
4+
5+
Use this file to maintain shared terminology.
6+
7+
Consistent terminology significantly improves:
8+
- communication
9+
- AI consistency
10+
- implement quality
11+
12+
## General Terms
13+
14+
- **User**: Final application consumer, typically a human, who interacts with the AI system.
15+
- **Developer**: Individual or team responsible for designing, building, and maintaining the system.
16+
- **Stakeholder**: Any party with an interest in the system, including users, developers, business owners, and regulators.
17+
- **Spec**: Incremental implementation plan for a specific feature or functionality, often documented as a set of requirements and design decisions.

ai/context/project_constraints.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Project constraints
2+
3+
## Backend
4+
5+
Always:
6+
7+
- Use the `SERIAL` type for `id` columns when creating migration SQL files;
8+
- Define a table PRIMARY KEY in the end of the table columns using the table name plus `_pk` and the needed columns;
9+
- Import needed packages one by one;
10+
- Create JavaDoc for public classes and methods;
11+
- Run `./mvnw -Ptests test` to check possible check style issues or failing tests;
12+
- Fix existing test cases, if needed;
13+
- Update docker-compose.yml and github workflow files if a new variable or application.yml has changed;
14+
15+
Never:
16+
- Use `ON DELETE CASCADE` in SQL scripts or migration files;
17+
- Use star to import packages;
18+
19+
## Frontend
20+
21+
Always:
22+
23+
- Type variables according with their data type;
24+
- Create helper functions in the helper directory;
25+
- Update Dockerfile, docker-compose.yml and github workflow files if a new environment variable was added;
26+
27+
Never:
28+
29+
- Use the `any` type;
30+
- Add new dependencies for small helpers or util functions, prefer implementing them;
31+

ai/context/project_vision.md

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# Project Vision
2+
3+
## Project Name
4+
5+
TaskNote
6+
7+
## Problem Statement
8+
9+
In today's fast-paced world, individuals and teams often struggle to keep track of their tasks, deadlines, and project
10+
progress. Traditional task management tools can be overwhelming and lack the flexibility needed to adapt to different
11+
workflows. This leads to decreased productivity, missed deadlines, and increased stress.
12+
13+
As for notes, people often take notes in various formats and locations, such as notebooks, sticky notes, or digital
14+
documents. This scattered approach can make it difficult to find and organize information, leading to inefficiency and
15+
frustration.
16+
17+
## Users
18+
19+
The primary users of TaskNote are:
20+
21+
- **Individuals**: People who want to manage their personal tasks and notes efficiently.
22+
- **Casual**: Users who need a simple and intuitive tool for managing their tasks and notes without the complexity of traditional task management software.
23+
- **Developers**: Individuals who want to manage their coding tasks and notes in a streamlined manner.
24+
25+
## Core Features
26+
27+
- **Authentication**: Allow users to create accounts and securely log in to access their tasks and notes.
28+
- **Task Management**: Create, organize, and prioritize tasks with deadlines and reminders.
29+
- **Note-Taking**: Capture and organize notes in a flexible format, allowing for easy retrieval and organization.
30+
- **Collaboration**: Enable users to share notes with others for better collaboration and teamwork.
31+
- **Search and Organization**: Provide powerful search capabilities and organizational tools to help users find and manage their tasks and notes efficiently.
32+
- **Multi-Language Support**: Support multiple languages to cater to a global user base.
33+
34+
## General Constraints
35+
36+
- **GraalVM Compatibility**: The application must be compatible with GraalVM to leverage its performance benefits and support for multiple languages.
37+
- **Mobile-first UI**: The user interface should be designed with a mobile-first approach to ensure a seamless experience across devices.
38+
39+
## Success Criteria
40+
41+
- Users can manage their tasks and notes efficiently, leading to increased productivity and reduced stress.
42+
- Positive user feedback and high engagement with the application.
43+
- Specs remain under control, with a clear roadmap for future features and improvements.
44+
- Codebase remains maintainable and scalable, allowing for easy addition of new features and improvements over time.

ai/context/tech_stack.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Tech Stack
2+
3+
## Frontend
4+
5+
- **React**: A popular JavaScript library for building user interfaces, particularly single-page applications.
6+
- **TypeScript**: A superset of JavaScript that adds static typing, improving code quality and maintainability.
7+
- **Bootstrap**: A widely used CSS framework for building responsive and mobile-first websites.
8+
- **Fetch API**: A modern interface for making HTTP requests from the browser, used for communicating with the backend.
9+
- **Vite**: A build tool that provides a fast development environment and optimized production builds for modern web applications.
10+
11+
## Backend
12+
13+
- **Java**: A widely used programming language known for its portability, performance, and extensive ecosystem.
14+
- **Spring Boot**: A framework for building production-ready applications with Java, providing features like dependency injection, security, and data access.
15+
- **Spring Security**: A framework for securing Java applications, providing authentication and authorization features to protect resources and manage user access.
16+
- **GraalVM**: A high-performance runtime that supports multiple programming languages, allowing for efficient execution of Java applications and interoperability with other languages.
17+
- **JPA (Java Persistence API)**: A specification for managing relational data in Java applications, providing a standard way to interact with databases using object-relational mapping (ORM).
18+
19+
## Database
20+
- **PostgreSQL**: A powerful, open-source relational database management system known for its reliability and performance.
21+
22+
## Infrastructure
23+
24+
- **Docker**: A platform for developing, shipping, and running applications in containers, providing consistency across different environments.
25+
- **Kubernetes**: An open-source container orchestration system for automating the deployment, scaling, and management of containerized applications.
26+
- **Terraform**: An infrastructure as code tool that allows for the provisioning and management of cloud resources in a declarative manner.
27+
- **VPS**: Virtual Private Server, a virtualized server that provides dedicated resources and control over the hosting environment for deploying applications.
28+
29+
## AI Tools
30+
31+
- **Crusher**: An AI tool for code generation and assistance, helping developers write code more efficiently and accurately.
32+
- **GitHub Copilot**: An AI-powered code completion tool that provides suggestions and helps developers write code faster by leveraging machine learning models trained on a vast amount of code from GitHub repositories.
33+
- **Gemini**: An AI tool for natural language processing and understanding, enabling developers to build applications that can process and generate human-like text.
34+
- **Groq**: An AI tool for optimizing and accelerating machine learning models, providing efficient execution and improved performance for AI applications.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# Feedback Contract
2+
3+
This contract is used for:
4+
- reviews
5+
- implementation feedback
6+
- architecture feedback
7+
- iterative improvement
8+
9+
---
10+
11+
## 1. What Worked Well
12+
13+
Highlight:
14+
15+
- Good implementation choices
16+
- Maintainability improvements
17+
- Strong architectural decisions
18+
19+
## 2. Areas For Improvement
20+
21+
Identify:
22+
23+
- Unclear implementation
24+
- Maintainability concerns
25+
- Architectural inconsistencies
26+
27+
## 3. Risks
28+
29+
Surface:
30+
31+
- Technical debt
32+
- Scalability concerns
33+
- Workflow fragility
34+
35+
## 4. Recommendations
36+
37+
Provide:
38+
39+
- Practical improvements
40+
- Simplification opportunities
41+
- Next iteration suggestions
42+
43+
## Philosophy
44+
45+
Feedback should:
46+
47+
- Improve clarity
48+
- Support maintainability
49+
- Remain constructive
50+
- Avoid unnecessary perfectionism
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# Handoff Contract
2+
3+
This contract is used whenever work moves between roles.
4+
5+
Example:
6+
- PM → Architect
7+
- Architect → Developer
8+
- Developer → Reviewer
9+
10+
---
11+
12+
## 1. Summary
13+
14+
Concise explanation of:
15+
16+
- Completed work
17+
- Important decisions
18+
- Implementation status
19+
20+
## 2. Completed Work
21+
22+
Explicitly list:
23+
24+
- Implemented features
25+
- Completed tasks
26+
- Validated decisions
27+
28+
## 3. Pending Work
29+
30+
List:
31+
32+
- Unfinished work
33+
- Blockers
34+
- Remaining implementation
35+
36+
## 4. Important Decisions
37+
38+
Document:
39+
40+
- Tradeoffs
41+
- Architectural decisions
42+
- Assumptions
43+
- Simplifications
44+
45+
## 5. Risks
46+
47+
Identify:
48+
49+
- Technical concerns
50+
- Unclear requirements
51+
- Scalability limitations
52+
- Possible regressions
53+
54+
## 6. Questions
55+
56+
List:
57+
58+
- Unresolved ambiguity
59+
- Missing requirements
60+
- Pending decisions
61+
62+
## 7. Recommended Next Step
63+
64+
Clearly explain:
65+
66+
- What should happen next
67+
- Which role should act next
68+
- What should be prioritized
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# Question Contract
2+
3+
## Description
4+
5+
This contract is used when:
6+
7+
- Requirements are not clear
8+
- Assumptions must be validated
9+
- More information is needed to proceed
10+
- Implementation direction is uncertain
11+
12+
## 1. Context
13+
14+
Explain:
15+
16+
- The background of the problem or task
17+
- Why it is important to clarify the requirements or assumptions
18+
- Related specs or documentation
19+
- Implementation area
20+
21+
## 2. Questions
22+
23+
Clearly state:
24+
25+
- The specific questions that need to be answered
26+
- What is unclear
27+
- What assumptions are being made
28+
- What decision needs to be made
29+
30+
## 3. Why It Matters
31+
32+
Explain:
33+
34+
- The potential impact of not clarifying the questions
35+
- How it affects the implementation
36+
- Architectural implications
37+
- Performance implications
38+
- User experience implications
39+
- Workflow consequences
40+
41+
## 4. Suggested Options
42+
43+
Provide:
44+
45+
- Possible answers to the questions
46+
- Pros and cons of each option
47+
- Any relevant data or evidence to support the options
48+
49+
## 5. Philosophy
50+
51+
Good questions reduce:
52+
53+
- Hallucinations
54+
- Unnecessary work
55+
- Rework
56+
- Implementation drift
57+
- Misalignment with requirements
58+
- Hidden assumptions

0 commit comments

Comments
 (0)