π Delphi AI Spec-Kit
An opinionated ecosystem of rules, skills and steerings to elevate Delphi development to state-of-the-art with Artificial Intelligence.

Sponsorship
Delphi/Lazarus components
<www.inovefast.com.br>
Integrations with payment platforms and services (Asaas, MercadoPago, Cielo, PagSeguro, D4sign, Webstore, MelhorEnvio, Groq)
i9DBTools
<www.inovefast.com.br/i9dbTools/>
Manage MySQL, PostgreSQL, Firebird and SQLite in one place, with AI to generate and explain SQL in natural language, optimize queries and create Brazilian fake data in seconds.
π Index
- What is this project?
- Why use?
- Supported AI-Tools
- Main Guidelines
- Supported Frameworks
- Kit Structure
- Quick Start
- Code Examples
- Contributions
π‘ What is this project?
The Delphi AI Spec-Kit is not a code framework β it's a set of behavior guidelines for your favorite AI. It "teaches" the wizard to write Delphi code:
- β
Clean β no god classes, no business logic in
OnClick
- β
Secure β zero memory leaks with
try..finally and (ARC) interfaces
- β
Testable β TDD with DUnitX, Fakes via interface, without real bench in tests
- β
Architected β SOLID, DDD, Repository/Service Pattern and clean architecture
Say goodbye to AI that mixes database access with the presentation layer, forgets try..finally or ignores Dependency Injection.
π€ Why use it?
| Without Spec-Kit | With the Spec-Kit |
|---|
AI generates code with logic in OnClick | AI isolates layers correctly |
TStringList.Create without try..finally | Memory gold standard always applied |
| Tests coupled to the real bank | Fakes via interface, quick and isolated tests |
| Inconsistent naming | A-params, F-fields, T-types, verbs in methods |
with statement and global variables | Code smells blocked proactively |
π€ Supported AI Tools
| Tool | Configuration File | How It Works |
|---|
| GitHub Copilot | .github/copilot-instructions.md | Pre-prompt injected into Workspace/Chat |
| Cursor | .cursor/rules/*.md | Rules loaded by context |
| Claude Code | .claude/ | Rules by context and skills in the terminal |
| Google Gemini / Antigravity | .gemini/skills/*/SKILL.md | Modular skills by domain |
| Kiro AI | .kiro/steering/*.md | Stack and architectural constraints |
| Any AI | AGENTS.md | Universal rules (project root) |
π Key Guidelines Taught to AI
π§ Memory Management Zero-Leak
The AI ββenforces the pattern: every .Create without Owner requires try..finally on the immediately subsequent line. Also teaches the use of Interfaces (ARC) for native Garbage Collection β without Free manual.
//β
Gold Standard β ALWAYS generated by AI with Spec-Kit
var LList: TStringList;
begin
LList := TStringList.Create;
try
LList.Add('item');
finally
LList.Free;
end;
end;
π§ͺ TDD with DUnitX
Red-Green-Refactor flow with Fakes isolated per interface. No coupling to the database in tests.
[Test]
procedure ProcessOrder_WithoutStock_RaisesException;
begin
Assert.WillRaise(
procedure begin FSut.Process(FEmptyOrder); end,
EInvalidOrderException
);
end;
ποΈ SOLID and DDD
- S β One class, one responsibility.
TCustomerValidator does not save to the bank.
- O β Extension via interfaces, without modifying existing code.
- L β Inheritance only with a clear contract. Preferred interfaces.
- I β Small and specific interfaces. Avoid giant interfaces.
- D β Dependency injection in the constructor, never hardcoded concrete instances.
//β
DIP in practice
constructor TOrderService.Create(
ARepo: IOrderRepository;
ANotifier: INotificationService);
begin
FRepo := ARepo;
FNotifier := ANotifier;
end;
π Clean Code β Pascal Guide
Consistent and mandatory nomenclatures:
| Category | Convention | Example |
|---|
| Parameters | Prefix A | ACustomerName |
| Private fields | Prefix F | FCustomerName |
| Local variables | Prefix L | LCustomer |
| Classes | Prefix T | TCustomerService |
| Interfaces | Prefix I | ICustomerRepository |
| Exceptions | Prefix E | ECustomerNotFound |
π οΈ Supported Frameworks and Libraries
| Framework | Domain | Rules Included |
|---|
| Horse | Minimalist REST APIs | Controller/Service/Repository structure, middleware |
| Dext Framework | .NET-style APIs, ORM, DI, Async | Minimal APIs, Entity ORM, TAsyncTask.Run |
| DelphiMVC (DMVC) | REST APIs with Attributes | [MVCPath], Active Record, JWT, RQL |
| ACBR | Commercial Automation (NFe, CF-e, Boleto) | Tax isolation, without crossing with UI |
| Intraweb | Stateful WebApps in Delphi | UserSession, no global session variables |
| DevExpress | Advanced Enterprise UI | TcxGrid, TdxLayoutControl, skins and export |
| Firebird Database | Corporate Database | FireDAC Connection, PSQL, generators, transactions, migrations |
| PostgreSQL Database | Modern Database | FireDAC Connection, UPSERT, JSONB, Full-Text Search, PL/pgSQL |
| MySQL / MariaDB | Popular Database | FireDAC Connection, AUTO_INCREMENT, UPSERT, JSON, FULLTEXT |
| DUnitX | Unit Tests | Red-Green-Refactor, Fakes via interface |
| Design Patterns GoF | Design Patterns | Creational, Structural and Behavioral with interfaces and ARC |
| Threading | Multi-Threading | TThread, TTask, Synchronize/Queue, TCriticalSection, PPL |
| Code Refactoring | Code Smells and Techniques | Extract Method/Class, Guard Clauses, Strategy, Parameter Object |
π Kit Structure