Yes. For that project, I would not start by asking DC Agentiqs to "build me a Kanji website." I'd treat it like a small software project and use Agentiqs as an AI development team with controlled responsibilities.
Your project is actually a very good candidate because it has several relatively independent domains:
Kanji database
readings / meanings
SRS algorithm
study sessions
user accounts
progress tracking
ranking/leaderboard
web UI
database
testing
deployment
The key is to make the AI work incrementally, with each stage producing an artifact that becomes input to the next stage.
1. Start with the architecture, not the code
I'd first create a project workspace something like:
KanjiLearning/
│
├── 00_Project/
│ ├── project_goal.md
│ ├── scope.md
│ ├── glossary.md
│ └── decisions.md
│
├── 01_Requirements/
│ ├── functional_requirements.md
│ ├── nonfunctional_requirements.md
│ └── acceptance_criteria.md
│
├── 02_Architecture/
│ ├── system_architecture.md
│ ├── database_design.md
│ ├── api_design.md
│ └── security_design.md
│
├── 03_Design/
│ ├── user_flows.md
│ ├── ui_requirements.md
│ └── srs_design.md
│
├── 04_Development/
│ └── source_code/
│
├── 05_Test/
│ ├── test_strategy.md
│ ├── test_cases.xlsx
│ └── test_results/
│
└── 06_Documentation/
This organization is important because you don't want the LLM's conversation history to become your project's source of truth.
Your files should be the source of truth.
2. First Agent: Product/Requirements Analyst
Give Agentiqs a very small initial instruction:
Build an educational web application for learning Japanese kanji. Users register, study kanji through an SRS system, track progress, and participate in rankings.
Then have the Requirements Agent turn that into structured requirements.
For example:
User management
FR-USER-001
The system shall allow a user to register using an email address and password.
FR-USER-002
The system shall authenticate registered users.
FR-USER-003
The system shall allow users to reset their password.
Kanji
FR-KANJI-001
The system shall display a kanji character.
FR-KANJI-002
The system shall display its readings.
FR-KANJI-003
The system shall display meanings.
FR-KANJI-004
The system shall allow kanji to be associated with an SRS learning state.
SRS
FR-SRS-001
The system shall schedule kanji reviews according to the user's SRS state.
FR-SRS-002
The system shall update the SRS state based on the user's answer.
FR-SRS-003
The system shall prioritize due cards.
And so on.
Don't let the AI start coding yet.
3. Second Agent: Architecture
Once requirements are stable, give the architecture agent only:
Project requirements
+
constraints
For your first version, I'd keep the architecture boring.
Something like:
Browser
│
▼
Flask
│
├── Authentication
├── Kanji service
├── SRS service
├── Ranking service
└── User/progress service
│
▼
PostgreSQL
Potential stack:
Python
Flask
SQLAlchemy
PostgreSQL
Flask-Login
Alembic / Flask-Migrate
Jinja2
HTML/CSS
JavaScript
pytest
Gunicorn
Nginx
Docker
You don't need React for V1 unless you have a particular reason for it.
For this application, Flask + Jinja + relatively small amounts of JavaScript can keep the architecture considerably simpler.
4. Have the AI design the database BEFORE writing application code
This is particularly important for your application.
You could have something like:
users
-----
id
email
password_hash
display_name
created_at
kanji
-----
id
character
grade
jlpt_level
stroke_count
meanings
...
kanji_readings
--------------
id
kanji_id
reading
type
user_kanji
----------
user_id
kanji_id
srs_state
due_at
interval
ease_factor
repetitions
last_reviewed_at
reviews
-------
id
user_id
kanji_id
rating
reviewed_at
user_stats
----------
user_id
total_reviews
correct_reviews
streak
xp
leaderboard
-----------
...
But don't blindly accept whatever schema the AI generates.
Ask the Architecture Agent to explain:
normalization
indexes
foreign keys
uniqueness constraints
deletion behavior
transaction boundaries
leaderboard query performance
SRS state representation
Then you approve it.
This is one place where your QA background is useful: the AI proposes; you review.
5. Separate the SRS algorithm from the rest of the website
This is extremely important.
Don't bury your SRS logic inside Flask routes.
Bad:
/routes/study.py
if answer == "good":
interval = ...
Better:
app/
├── routes/
│ ├── auth.py
│ ├── kanji.py
│ ├── study.py
│ └── leaderboard.py
│
├── services/
│ ├── srs_service.py
│ ├── ranking_service.py
│ └── user_service.py
│
├── models/
│
└── repositories/
Then the SRS algorithm becomes independently testable:
answer_card(card, rating)
↓
new SRS state
You can feed it thousands of test cases without running the website.
6. Make the AI create the SRS specification first
For example:
SRS-001
Given a new kanji, its initial state shall be "new".
SRS-002
When the user answers a review, the system shall calculate the next review interval.
SRS-003
The system shall never schedule a review earlier than the minimum allowed interval.
SRS-004
A failed review shall reduce the appropriate SRS state according to the selected algorithm.
Then define exact behavior.
If you're using an existing algorithm such as FSRS, don't ask the LLM to invent one.
Tell it:
"Implement FSRS according to the authoritative algorithm specification. Do not modify the algorithm."
That avoids one of the biggest problems with AI-generated educational software: plausible-looking but subtly incorrect algorithms.
7. Then let an Agent implement one vertical slice
Don't say:
"Build the whole website."
Instead:
Sprint 1
Implement user registration and login.
Agent gets:
FR-USER-001
FR-USER-002
Database schema
Architecture rules
Coding conventions
and produces:
models
routes
templates
tests
migration
Then another agent reviews it.
8. Your workflow should look like this
This is where DC Agentiqs becomes much more powerful.
REQUIREMENT
│
▼
┌─────────────────┐
│ Requirements │
│ Agent │
└────────┬────────┘
│
▼
Approved requirement
│
▼
┌─────────────────┐
│ Design Agent │
└────────┬────────┘
│
▼
Design artifact
│
▼
┌─────────────────┐
│ Coding Agent │
└────────┬────────┘
│
▼
Code
│
▼
┌─────────────────┐
│ Test Agent │
└────────┬────────┘
│
▼
pytest results
│
┌─────┴─────┐
│ │
PASS FAIL
│ │
▼ ▼
Complete Debug Agent
│
└──→ Coding Agent
That's far better than one enormous conversation with one LLM.
9. Give different Agents different jobs
I'd probably start with something like this:
Agent | Responsibility |
|---|---|
Product Agent | Requirements and scope |
Architect Agent | Architecture/database/API |
Backend Agent | Flask/Python |
Frontend Agent | HTML/CSS/JS/Jinja |
SRS Agent | SRS algorithm |
Test Agent | pytest/test design |
Security Agent | Auth/security review |
Code Reviewer | General code review |
Documentation Agent | Documentation |
You don't necessarily need nine separate agents immediately.
Start with four:
Requirements
Architecture
Developer
Tester
Then add specialized agents when you encounter a real need.
10. Use the LLM's context intelligently
This is where you can dramatically reduce token usage.
Suppose you're fixing:
"Leaderboard doesn't update after a review."
Don't give the AI:
Entire project
+
all requirements
+
all documentation
+
entire database
+
every source file
Give it:
Relevant requirement
+
leaderboard service
+
review service
+
relevant models
+
failing test
+
error log
Maybe that's only:
15K tokens instead of 200K.
And because the agent has access to the project knowledge, it can retrieve the broader information if necessary.
11. Use a "context budget"
I would actually make this one of your development rules.
For every task:
Small task
Target:
<10K tokens context
Example:
Fix CSS alignment.
Medium task
Target:
10–30K
Example:
Add leaderboard pagination.
Large task
Target:
30–80K
Example:
Refactor the SRS architecture.
Very large task
Stop and split it.
Instead of:
"Rewrite the whole authentication system."
Do:
1. Analyze current authentication
2. Design replacement
3. Review design
4. Implement database changes
5. Implement backend
6. Implement frontend
7. Write tests
8. Security review
9. Migration
This is both better engineering and cheaper AI usage.
12. Make tests part of the AI's definition of "done"
This is probably the most important rule I'd establish.
Don't let an Agent say:
"Feature implemented."
unless:
Code implemented
↓
Unit tests
↓
Integration tests
↓
Tests PASS
↓
Code review
↓
Requirement traceability
For example:
FR-SRS-003
│
├── test_srs_due_date()
├── test_failed_review()
├── test_new_card()
└── test_interval_boundary()
Now you have traceability similar to the V-model you're already familiar with.
13. Your Kanji database needs special treatment
This is another place I'd not let the LLM become the source of truth.
You should use a reputable Japanese/Kanji dataset and establish its license.
Your database might contain:
漢
│
├── readings
│ ├── カン
│ └── あや
│
├── meanings
│ ├── China
│ └── Chinese
│
├── JLPT
├── Jōyō status
├── grade
├── stroke count
└── related vocabulary
The AI can transform/import/validate the data.
But:
LLM-generated kanji readings should not be treated as authoritative database data.
That's exactly the sort of thing that looks correct while occasionally being wrong.
14. Ranking needs security consideration
A leaderboard is deceptively simple.
You need to prevent:
POST /add_xp
xp = 999999999
So your architecture should establish:
Client
↓
request
↓
server validates event
↓
server calculates XP
↓
database transaction
↓
leaderboard
Never:
Browser says:
"I earned 500 XP."
Server:
"Okay!"
Your Security Agent should specifically attack the application looking for:
privilege escalation
SQL injection
XSS
CSRF
authentication bypass
session issues
rate-limit abuse
leaderboard manipulation
password handling
IDOR
API abuse
15. A very important DC Agentiqs principle
Don't put everything in the Agent prompt.
Think of four different things:
Knowledge
What does the AI need to know?
Your specifications, architecture documents, requirements, coding standards.
Agent instructions
How should this AI behave?
Role, constraints, methodology.
Workflow
What sequence should it follow?
Analyze → design → implement → test → review.
User prompt
What am I asking it to do right now?
"Implement FR-SRS-003."
That's an extremely clean separation.
16. Your eventual project could look like this
DC AGENTIQS
│
┌────────────────┼────────────────┐
│ │ │
Knowledge Agents Workflows
│ │ │
│ │ │
Requirements Architect Feature Development
Architecture Developer Bug Fix
SRS specification Tester Release
Coding standards Security
Kanji data Reviewer
│
▼
Git Repository
│
▼
Flask Application
│
▼
PostgreSQL
│
▼
Docker / Linux Server
Then your normal development loop becomes:
Requirement → Design → Code → Test → Review → Commit
rather than:
ChatGPT → paste code → hope it works
17. I'd build your MVP in this order
Don't start with ranking.
Phase 0 — Foundation
Project definition
Architecture
Database schema
Development environment
Git repository
Coding standards
Test framework
Phase 1 — Kanji
Kanji database
Kanji detail page
Search
Filtering
Reading/meaning display
Phase 2 — Accounts
Registration
Login
Logout
Password security
User profile
Phase 3 — SRS
Card state
Review session
Answer evaluation
Scheduling
Progress tracking
Phase 4 — Gamification
XP
Streak
Daily goal
Leaderboard
Phase 5 — Hardening
Security review
Performance
Database optimization
Error handling
Automated testing
Deployment
Phase 6 — Nice-to-have
JLPT levels
Vocabulary
Example sentences
Audio
Kanji writing
Statistics
Achievements
Friends
Competitive events
Mobile/PWA
And I'd make one thing your "AI development constitution"
Put this in your project knowledge:
The AI must never silently invent requirements, modify approved architecture without justification, invent authoritative Japanese-language data, or mark a feature complete without passing its associated tests.
That single principle will save you from a lot of the classic "AI-built software" problems.
For your particular background, I'd actually go one step further: use your knowledge of V-model/automotive QA as the foundation of the AI workflow. Your Kanji app can become a miniature demonstration of requirements → design → implementation → verification → traceability, while DC Agentiqs handles much of the repetitive work.
And because you're self-hosting, we can also design the eventual deployment so the website itself is completely independent of DC Agentiqs/OpenAI—the AI is your development machinery, not a runtime dependency of the finished Kanji application.