My Personal AI-Driven Development
I started investigating areas such as RAG (Retrieval-Augmented Generation), MCP, and knowledge graphs around mid-November, and although less than two months have passed and the work has been done alongside my regular job, I feel that I have been able to catch up with these technologies and carry them through to implementation at a remarkably fast pace.
This is largely thanks to generative AI.
Through this development process, a reasonably coherent workflow for AI-assisted development has taken shape, so I decided to organize and document it. I am not sure how broadly applicable it is, so I present it as “my own style.”
Characters
-
Chappie-kun: the ChatGPT app (Mac, Android)
-
Ko-chan: Codex (ChatGPT) running inside VS Code Codex
Chappie-kun excels at high-level thinking, such as exploring requirements and reasoning about overall design direction.
On the other hand, limitations such as the inability to handle multiple external files at once or perform direct file operations make it less effective during the implementation phase.
Its ability to share conversations across environments is extremely convenient, making it well suited for thinking during travel or short breaks.
Ko-chan is strong at referencing and updating multiple files across a codebase, making it indispensable for implementation and refactoring.
However, its ability to construct specifications from scratch is not as strong as Chappie-kun’s.
How these two are combined has a major impact on the productivity of AI-driven development.
Development Environment
-
Emacs: my primary daily editor
-
VS Code: for AI integration
-
IntelliJ IDEA (Community): debugger
I use Emacs not only as an editor but also as a kind of IDE, similar to a programmer’s workbench. In addition to editing files, it handles multiple consoles, file operations, and Git workflows.
For features that Emacs does not provide, or provides in an inconvenient way, I rely on external tools.
I use IntelliJ IDEA as a debugger, and VS Code for AI integration.
OpenAI was integrated into VS Code’s Codex feature around late October 2025, and this dramatically improved the efficiency of AI-driven development.
Before that, I used Chappie-kun only as a supporting tool, but the combination of Chappie-kun and Ko-chan made a truly AI-first development style viable.
Another welcome aspect is that the Plus subscription keeps costs relatively low.
On the Train
When I’m traveling by train and a thought suddenly comes to mind, I casually throw it to Chappie-kun on Android.
I want to incorporate the SELinux security model into the framework.
I start conversations from something as simple as this. Sometimes it ends there, but if the discussion gains momentum, enough information naturally accumulates to write a specification.
Boring travel time turns into time for exploring specifications.
At Home
After returning home, I review the earlier conversation in the desktop version of ChatGPT and begin the development work.
The development produces the following three artifacts.
-
Source code
-
Documentation
-
Executable specifications
Source Code
In the SIE project, the amount of code I write by hand has decreased significantly.
However, both Chappie-kun and Ko-chan often struggle with the true core of the system and the architectural keystones.
The most stable division of roles is for humans to design the architectural baseline and structural backbone, while delegating the implementation built on top of it to AI.
Documentation
The following documents are created.
-
README.md ::Project overview (for humans)
-
AGENTS.md ::Entry-point document for AI agents
-
RULE.md ::Coding rules and conventions
-
TODO.md :TODO list
-
docs/spec/*.md :Specifications
-
docs/design/*.md :Design documents
-
docs/notes/*.md :Design notes
-
docs/idioms/*.md :Coding idioms
-
docs/rules/*.md :Design and coding rules
-
docs/ai/*.md :Rules governing AI behavior
Because documentation is shared knowledge between humans and AI, it is written primarily in English.
Chappie-kun appears to think internally in English, so writing only in Japanese tends to introduce translation costs and semantic drift.
In addition to notation variants such as “control flow,” “control-flow,” and their Japanese equivalents, translation drift—where “quality attribute” becomes “quality characteristic,” “quality attribute,” or “quality requirement,” and both “safety” and “security” are rendered as the same Japanese term—introduces ambiguity; writing in English avoids this and yields higher precision.
This is not merely a matter of translation preference, but an inevitability rooted in the internal structure of LLMs.
Large language models learn relationships among terms as a high-dimensional vector space based on vast, primarily English corpora.
Within this space, terms such as “quality attribute,” “safety,” “security,” and “reliability” occupy distinct positions with specific semantic distances.
When translated into Japanese, multiple English terms may be collapsed into a single word, or a single English term may be split into different Japanese expressions depending on context, flattening meaning vectors that were originally distinct.
As a result, the LLM must rely more heavily on contextual inference to determine which concept is intended, reducing the stability of reasoning and code generation.
Writing in English is the lowest-cost and most effective way to stabilize the semantic space for LLMs, preserving correct distances between concepts while enabling reliable reasoning and generation.
Executable Specification
In SimpleModeling, we emphasize that an Executable Specification is a verifiable specification.
It is a test program written in a BDD style,
-
Readable as a specification
-
Whose execution results serve to verify the specification
-
And which also functions as usage examples
thus combining these characteristics in a single artifact.
By executing the Executable Specification, you can mechanically confirm that the system behaves according to the specification. It is also critically important as a regression test.
Workflow
The workflow is flexible and not always followed exactly, but for development of a certain scale, it often takes the form described below.
Organize Specifications
Specification exploration is carried out together with Chappie-kun. However, due to limitations in handling multiple files simultaneously, fact-finding and cross-cutting checks are delegated to Ko-chan.
Chappie-kun consolidates the specification proposal, a human performs a light review, and if nothing feels off, the work proceeds to implementation.
Try Coding
Coding is basically delegated to AI. When it works well, it can produce code that is usable as-is.
However, failures do occur, so it is important to build in small increments and evaluate frequently.
Document the Specifications
As coding progresses and feedback cycles repeat, the specifications gradually solidify. These specifications are then documented.
Because Chappie-kun often forgets specifications when sessions change, or relies on vague and uncertain memories, it is important to document specifications frequently.
By leaving well-structured documentation at this stage, the amount of information AI can leverage for design and coding increases, enabling more accurate work.
Although creating documentation is a demanding task, it is one of AI’s strengths, and delegating it to AI often requires surprisingly little effort.
The specifications consolidated here are not documented verbatim; instead, they are selectively reflected into multiple existing documents where appropriate. New documents are created only when the specifications are better documented as standalone artifacts.
Create Executable Specifications
Executable Specifications can be created either in parallel with coding and documentation, or after the specifications have stabilized. In other words, you create test programs that verify the specifications.
By writing test programs, you can detect gaps or excesses in the specifications. They also allow you to confirm that the program behaves exactly as specified.
Because there is always a risk that AI may inadvertently break the program, it is extremely important to continuously verify via regression tests that the program maintains its intended behavior. At the same time, it is also important to use Git to ensure that the system can be restored even if something is broken.
Accumulate Knowledge
Specifications that are nurtured through conversations with Chappie-kun and refined through coding and Executable Specifications are accumulated not only in programs but also formalized as documentation.
By accumulating documentation and Executable Specifications, a knowledge base that AI can reference gradually grows.
Why This Style
As it has been less than two months, this is not a final form but rather a snapshot of the current point reached.
I took some time to reflect on why I ended up with this particular style.
Do Not Let Chappie-kun Run Free
When you ask Chappie-kun to program, it chooses what it considers the most efficient approach within the given constraints. If no constraints are provided, it often freely modifies or even breaks stable code without distinguishing it from code still under development.
Conversely, if you precisely specify which parts must not be changed and what considerations must be taken into account during modification, it tends to follow those instructions closely and produce more satisfactory results.
For this reason, I believe that a key point of AI-driven development lies in how well documentation is prepared to impose effective constraints on coding.
However, since it is impossible to pack all information into a single prompt, it is important to create purpose-specific documents and organize them so that AI can easily make use of them.
References
Articles
These are articles about developing tools that leverage knowledge graph–based knowledge representation for modeling. After realizing the importance of connecting knowledge graphs to generative AI around mid-November, I consolidated the results of subsequent research and development.
Summary
The most challenging part of developing SIE was wiring everything together with Docker Compose, but from specification to programming, the process moved with astonishing efficiency.
I have the strong impression that development which would previously have taken one to two years was completed in less than two months.
Boring travel time turned into thinking time, and I was able to step into the once unfamiliar domain of knowledge processing.
The speed of software development will likely accelerate even more dramatically in the future.
By throwing small ideas to generative AI, you can expand them through conversation and grow them into specifications and designs by fusing the AI’s knowledge with your own thinking.
More than simply becoming faster, I felt that the quality of software development—and ultimately of intellectual activity itself—had fundamentally changed.
References
In Site
Glossary
- Retrieval-Augmented Generation (RAG)
-
A generation technique that supplements a language model’s internal (parametric) knowledge by retrieving relevant external information before generation. RAG systems first search knowledge sources such as databases or knowledge graphs and then use the retrieved context as input for text generation.
- knowledge graph
-
A semantic graph-based knowledge base where nodes represent entities or concepts and edges represent their relationships.
- Semantic Integration Engine (SIE)
-
An integration engine that unifies structured knowledge (RDF) and document knowledge (SmartDox) derived from the BoK, making them directly accessible to AI.
- BDD (Behavior-Driven Development)
-
Behavior Driven Development (BDD) is a development approach that focuses on specifying system behavior through scenarios written in a shared language.
- Prompt
-
A structured instruction or contextual representation that bridges retrieved knowledge (RAG) and the AI model’s reasoning process. It transforms the structured knowledge from the BoK into a narrative or directive form that the model can interpret, act upon, and internalize.