Skip to main content
Tech Packs are the modular knowledge units that make SoftArchitect AI stack-aware. Each pack is a self-contained Technical Encyclopedia entry for a specific technology: a profile describing when and why to use it, plus a set of enforceable governance rules that the AI applies when generating recommendations for your project. When you select a Tech Pack at project creation, the AI knows to ask Flutter-specific questions for a Flutter project, Python FastAPI patterns for a Python backend, and so on — rather than giving generic advice.

What a Tech Pack contains

Every Tech Pack follows the Standard Schema defined in packages/knowledge_base/02-TECH-PACKS/_STANDARD_SCHEMA/ and consists of two files:

00-TECH_PROFILE.md

Suitability analysis, trade-off matrix (learning curve, performance, scalability, ecosystem, LTS), system requirements, and compatible stack combinations.

01-RULES.md

Mandatory governance rules: naming conventions, architectural principles (SOLID), security patterns, testing targets, linting tools, and CI/CD enforcement.
Many packs also include a KNOWLEDGE_BASE/ subdirectory with supplementary reference material — code patterns, anti-patterns, and worked examples — that the RAG engine retrieves during document generation.

Available Tech Packs

The knowledge base ships with 32 Tech Packs across six categories:

Frontend

PackPath
Flutter (mobile/desktop)FRONTEND/mobile-flutter/
Android — KotlinFRONTEND/mobile-android-kotlin/
iOS — SwiftFRONTEND/mobile-ios-swift/
React NativeFRONTEND/mobile-react-native/
ReactFRONTEND/web-react/
VueFRONTEND/web-vue/
AngularFRONTEND/web-angular/
Web (general)FRONTEND/web-general/

Backend

PackPath
Python — FastAPIBACKEND/python-fastapi/
Python — DjangoBACKEND/python-django/
Python — FlaskBACKEND/python-flask/
Node.js — ExpressBACKEND/node-express/
Node.js — NestJSBACKEND/node-nest/
Java — Spring BootBACKEND/java-springboot/
GoBACKEND/go-lang/
C# — .NETBACKEND/csharp-dotnet/
PHP — LaravelBACKEND/php-laravel/

AI engineering

PackPath
LangChainAI_ENGINEERING/llm-langchain/
Semantic KernelAI_ENGINEERING/llm-semantic-kernel/
OllamaAI_ENGINEERING/model-ollama/
ChromaDBAI_ENGINEERING/vector-chromadb/
PineconeAI_ENGINEERING/vector-pinecone/

Data

PackPath
Firebase / FirestoreDATA/nosql-firebase/
PostgreSQLDATA/sql-postgresql/
MySQLDATA/sql-mysql/
RedisDATA/cache-redis/

DevOps & Cloud

PackPath
GitHub ActionsDEVOPS_CLOUD/ci-github-actions/
DockerDEVOPS_CLOUD/container-docker/
KubernetesDEVOPS_CLOUD/orchestration-k8s/
AWSDEVOPS_CLOUD/cloud-aws/
AzureDEVOPS_CLOUD/cloud-azure/

General

PackPath
Git conventionsgeneral/GIT_CONVENTIONS.md
OWASP Top 10general/OWASP_TOP_10.md
TDD methodologygeneral/TDD_METHODOLOGY.md

How a Tech Pack is structured

The Flutter Tech Pack (FRONTEND/mobile-flutter/) is a representative example.

Tech profile (00-TECH_PROFILE.md)

The profile answers the key selection question: “Is this technology the right fit?”
# Tech Profile: Google Flutter

Category:   Cross-Platform UI Framework
License:    BSD-3-Clause
Language:   Dart 3.0+ (Sound Null Safety)
Version:    Flutter 3.19+ (Stable Channel)
It includes a suitability matrix that the AI uses to either recommend or steer away from a technology:
DimensionRatingComment
Development speed5/5Hot Reload changes code in milliseconds without losing state
UI performance5/5Stable 60/120 FPS via AOT compilation
Learning curve3/5~4–6 weeks for productivity (Dart + Riverpod + declarative paradigm)
Ecosystem4/5~80k packages on pub.dev; accelerated growth
LTS & viability5/5Backed by Google; used by Google Ads, Alibaba, BMW
The profile also documents anti-patterns (cases where the technology should not be used) and known stack integration compatibility with backends, auth providers, databases, and state management libraries.

Rules file (01-RULES.md)

The rules file contains the governance layer that the AI injects directly into RULES.md and AGENTS.md when generating your project’s root documents. For Flutter this includes:
  • Dart naming conventions (files: snake_case.dart, classes: PascalCase, private members: _prefix)
  • Riverpod 2.0 state management patterns (and why setState is an anti-pattern for complex logic)
  • SOLID principles mapped to Flutter’s widget and provider architecture
  • Mandatory linting with flutter_lints (strict mode)
  • Test coverage target ≥80% with flutter_test and mockito
  • Security rules: never use deprecated withOpacity(), always use withValues(alpha: x.x)

How the AI uses Tech Packs

During the interview (Phase 1 – Context and Phase 2 – Requirements), the AI queries the vector store for Tech Pack content relevant to the technologies you mention. This drives stack-specific questions:
  • Flutter pack loaded → AI asks about target platforms (iOS/Android/Desktop/Web), offline requirements, and state management preferences
  • FastAPI pack loaded → AI asks about async requirements, dependency injection patterns, and whether you need WebSocket or SSE streaming
  • Firebase pack loaded → AI asks about real-time sync requirements, authentication strategy, and data residency constraints
In Phase 3 (Architecture), the retrieved pack rules are injected into the RAG prompt so that TECH_STACK_DECISION.md and ARCH_DECISION_RECORDS.md cite concrete evidence from the knowledge base rather than generic opinions.

Selecting a Tech Pack

When you create a new project in the Flutter desktop app, the project setup dialog lists all available Tech Packs grouped by category. You can select multiple packs — for example, Flutter + FastAPI + Firebase + GitHub Actions.
You can also mention technologies during the interview conversation and the AI will automatically retrieve the relevant pack content from ChromaDB without requiring an explicit selection.

Adding custom Tech Packs

Custom packs are on the roadmap. The schema is already open: copy _STANDARD_SCHEMA/00-TECH_PROFILE.template.md and _STANDARD_SCHEMA/01-RULES.template.md, fill in the {{PLACEHOLDERS}}, place your files in a new subdirectory under the appropriate category folder, then re-ingest the knowledge base.
packages/knowledge_base/02-TECH-PACKS/
└── BACKEND/
    └── my-custom-framework/       ← new directory
        ├── 00-TECH_PROFILE.md
        ├── 01-RULES.md
        └── KNOWLEDGE_BASE/        ← optional supplementary docs
            └── patterns.md
After ingestion, the AI will use your custom pack exactly like the built-in ones.

Build docs developers (and LLMs) love