Files
asf/TRAE Bootstrap Prompt - ASF SaaS.md
2026-09-08 07:21:34 -04:00

12 KiB

Azurian Software Factory (ASF) - SaaS Platform Bootstrap

You are the lead software architect and senior full-stack engineer responsible for creating the initial foundation of Azurian Software Factory (ASF).

Product Vision

ASF is an AI-native Software Factory delivered as a multi-tenant SaaS platform.

Tagline:

From Requirement to Production, everything is contextualized, traceable and AI-accessible.

ASF is NOT simply an AI coding assistant.

ASF creates a persistent contextual and traceability layer connecting:

Requirement → Architecture → Task → Code → Commit → Pull Request → Build → Test → Deployment → Runtime → Incident → Feedback

The central principle is:

Everything is an Artifact.

Every relevant element of the software lifecycle must be represented as an ASF Artifact and may have relationships with other artifacts.

The platform must allow AI agents to understand not only source code, but WHY the code exists, which requirement originated it, how it was tested, where it was deployed, and what happened during runtime.


1. Technology Stack

Use the following stack.

Frontend

  • Next.js
  • React
  • TypeScript
  • Tailwind CSS
  • shadcn/ui
  • TanStack Query
  • Zustand only when client-side global state is actually necessary
  • React Flow for traceability/context graphs
  • SSE or WebSocket for real-time updates

The frontend must be:

  • responsive
  • desktop optimized
  • usable on tablets
  • mobile friendly
  • component based
  • accessible
  • suitable for an enterprise SaaS application

Do not access MongoDB directly from Next.js.

All business operations must go through ASF backend APIs.

Backend

Use:

  • Python 3.12+
  • FastAPI
  • Pydantic
  • async/await
  • MongoDB
  • official async MongoDB driver
  • RabbitMQ
  • Redis
  • MinIO/S3-compatible object storage

The backend must be designed API-first.

Messaging

RabbitMQ is the ASF event backbone.

It must support both:

  1. asynchronous jobs
  2. domain events

Examples:

  • requirement.created
  • requirement.updated
  • artifact.created
  • artifact.updated
  • code.analysis.requested
  • code.analysis.completed
  • repository.index.requested
  • repository.index.completed
  • ai.inference.requested
  • ai.inference.completed
  • test.requested
  • test.completed
  • deployment.started
  • deployment.completed

Do not tightly couple producers to consumers.

AI

Create an abstraction called:

ASF AI Gateway

No ASF service should depend directly on a specific LLM provider.

The AI Gateway will eventually support:

  • NVIDIA DGX Spark hosted models
  • OpenAI-compatible local APIs
  • external AI providers
  • model routing
  • tenant AI policies
  • usage metering
  • priority queues
  • cost tracking

For the first implementation, create interfaces and mock implementations where necessary.

Do not hardcode a particular model into business logic.

Integration

ASF must support:

  • MCP
  • REST APIs
  • Webhooks

External systems such as Git providers, requirement management systems, CI/CD platforms, documentation platforms and observability tools must be implemented through connectors.

The ASF Core must not become tightly coupled to Jira, GitHub, GitLab, Jenkins, SonarQube, Notion or similar products.


2. Core Domain

Implement the initial domain model.

Main entities:

  • Organization
  • User
  • Team
  • Project
  • Artifact
  • ArtifactRelationship
  • Integration
  • Job
  • AIExecution
  • AuditEvent

Every tenant-owned entity must include:

  • tenant_id
  • created_at
  • updated_at

where applicable.

Never trust a tenant ID supplied by the client without validating it against the authenticated context.


3. Artifact Model

Artifact is one of the most important entities in ASF.

Example artifact types:

  • requirement
  • epic
  • story
  • task
  • architecture_decision
  • document
  • source_file
  • commit
  • pull_request
  • build
  • test
  • security_finding
  • deployment
  • release
  • runtime_event
  • incident

Design Artifact to support extensible metadata.

Conceptually:

Artifact

  • id
  • tenant_id
  • project_id
  • type
  • external_id
  • title
  • content
  • source
  • metadata
  • relationships
  • version
  • created_at
  • updated_at

Do not create separate rigid database models for every possible artifact type unless there is a strong domain reason.

ASF must remain extensible.


4. Traceability

Artifacts can have relationships such as:

  • implements
  • implemented_by
  • verifies
  • verified_by
  • generated_from
  • documented_by
  • depends_on
  • affects
  • deployed_as
  • caused_by
  • supersedes
  • related_to

Create APIs allowing relationships to be created, queried and traversed.

Example:

REQ-142 → implemented_by → TASK-871 → implemented_by → COMMIT-a87f1c → verified_by → TEST-882 → deployed_as → RELEASE-2.4

Design this so that a graph database could eventually be introduced without rewriting the entire application.

MongoDB is the initial source of truth.


5. Context Engine

Create an asf-context module/service responsible for assembling context for AI operations.

Given an artifact, project or user request, it should eventually be able to retrieve:

  • related requirements
  • architecture decisions
  • relevant source code
  • documentation
  • tests
  • deployments
  • previous AI analysis
  • incidents
  • runtime information

For the MVP, implement the interfaces and basic MongoDB relationship traversal.

Keep semantic/vector retrieval behind an abstraction so a vector engine can be introduced later.


6. Job System

Create a persistent Job model.

A job should include at minimum:

  • id
  • tenant_id
  • project_id
  • type
  • priority
  • status
  • requested_by
  • worker
  • model
  • correlation_id
  • created_at
  • started_at
  • completed_at
  • error
  • usage

Usage may contain:

  • input_tokens
  • output_tokens
  • gpu_seconds
  • estimated_cost

Suggested statuses:

  • queued
  • running
  • completed
  • failed
  • cancelled

RabbitMQ contains work messages.

MongoDB contains persistent job state.

Do not treat RabbitMQ as the permanent job database.


7. Queue Strategy

Prepare separate logical queues for workloads such as:

  • asf.ai.interactive
  • asf.ai.background
  • asf.indexing
  • asf.code_analysis
  • asf.testing
  • asf.devops
  • asf.notifications

Interactive developer requests must be capable of receiving higher priority than background indexing jobs.

Workers must be horizontally scalable.

Do not maintain critical worker state only in process memory.


8. SaaS Requirements

ASF must be multi-tenant from the beginning.

Design for:

Organization → Teams → Projects → Artifacts

Prepare the architecture for:

  • RBAC
  • SSO
  • API keys
  • audit
  • quotas
  • usage metering
  • subscriptions
  • billing

Full billing implementation is NOT required in the first bootstrap.

Create boundaries/interfaces so it can be introduced cleanly.


9. Frontend

Create an enterprise SaaS shell.

Main navigation:

  • Overview
  • Requirements
  • Context
  • Code
  • Traceability
  • AI Agents
  • Pipelines
  • Deployments
  • Quality
  • Observability
  • Integrations
  • Usage
  • Settings

Create organization and project selectors.

Overview

Initial project dashboard should support cards for:

  • project health
  • requirements
  • implementation coverage
  • test coverage
  • traceability
  • deployments
  • active AI jobs
  • failed builds
  • security findings

Mock unavailable metrics initially.

Clearly identify mocked/demo data.

Context Explorer

Create an initial Context Explorer where a user can select an Artifact and inspect:

  • metadata
  • relationships
  • related artifacts
  • source
  • history

Traceability

Use React Flow to visualize artifact relationships.

Example:

Requirement → Task → Pull Request → Test → Build → Deployment

Nodes must be clickable.

Ask ASF

Create a persistent command/chat interface accessible from the application shell.

Concept:

Ask ASF...

Future queries include:

  • Show requirements without tests.
  • Why did yesterday's build fail?
  • Which services implement REQ-441?
  • What will be affected if REQ-441 changes?
  • Generate tests for TASK-921.

For now create the UI and backend interface.

Do not fake AI answers as if they were real production analysis.


10. Repository Structure

Start with a monorepo.

Suggested structure:

asf/
├── AGENT.md
├── README.md
├── docs/
│   ├── architecture/
│   ├── adr/
│   └── api/
│
├── frontend/
│   └── asf-web/
│
├── services/
│   ├── asf-core/
│   ├── asf-context/
│   ├── asf-ai/
│   └── asf-worker/
│
├── packages/
│   ├── asf-domain/
│   ├── asf-events/
│   └── asf-connectors/
│
├── infrastructure/
│   ├── docker/
│   └── scripts/
│
└── tests/

Do not create microservices merely for architectural appearance.

Initially keep service boundaries pragmatic.


11. Initial Services

asf-core

Responsible for:

  • organizations
  • projects
  • artifacts
  • relationships
  • jobs
  • audit
  • public REST API

asf-context

Responsible for:

  • context assembly
  • artifact traversal
  • future semantic retrieval

asf-ai

Responsible for:

  • AI Gateway
  • model abstraction
  • inference routing
  • usage tracking

asf-worker

Responsible for:

  • RabbitMQ consumers
  • asynchronous execution
  • background jobs

12. Observability

Use structured JSON logging.

Every distributed operation should propagate:

  • correlation_id
  • tenant_id
  • project_id
  • job_id when applicable

Prepare the architecture for OpenTelemetry.

Never log:

  • passwords
  • API keys
  • access tokens
  • private secrets
  • complete authentication headers

13. API Standards

Use REST initially.

API prefix:

/api/v1

Provide:

GET /api/v1/health

Use consistent error structures.

Generate OpenAPI documentation automatically through FastAPI.

Use UUIDs for internal identifiers unless there is a documented reason not to.


14. Security

Security must not be postponed until production.

Apply:

  • tenant isolation
  • input validation
  • secret separation
  • authorization boundaries
  • secure defaults
  • audit logging

Never store secrets directly inside source code.

Use environment variables/configuration for secrets.

Never expose infrastructure credentials to the frontend.


15. Engineering Rules

Follow SOLID principles where useful, but avoid unnecessary abstraction.

Prefer:

  • simple code
  • explicit interfaces
  • dependency injection
  • typed models
  • testable components
  • clear boundaries

Avoid:

  • premature optimization
  • excessive microservices
  • giant service classes
  • hidden global state
  • provider-specific logic inside the domain layer
  • unnecessary framework wrappers

16. Testing

Create the foundation for:

  • unit tests
  • API integration tests
  • worker tests
  • tenant isolation tests

Use pytest for Python.

Critical domain logic must have tests.


17. Documentation

Create:

  • README.md
  • local development instructions
  • architecture overview
  • environment variable example
  • initial API documentation
  • ADR directory

Architecture decisions that materially affect ASF must be documented as ADRs.


18. Bootstrap Objective

Do NOT attempt to implement the complete ASF product in one pass.

The first objective is to produce a clean, runnable foundation containing:

  1. repository structure
  2. FastAPI backend
  3. MongoDB connectivity
  4. RabbitMQ connectivity
  5. Redis connectivity
  6. MinIO connectivity
  7. Organization model
  8. Project model
  9. Artifact model
  10. Artifact Relationship model
  11. Job model
  12. CRUD APIs for the essential entities
  13. basic RabbitMQ producer/consumer
  14. AI Gateway abstraction
  15. Context Engine abstraction
  16. Next.js application shell
  17. initial Overview page
  18. initial Artifact Explorer
  19. initial React Flow Traceability view
  20. Ask ASF UI shell
  21. health endpoints
  22. tests
  23. documentation

Everything must run locally for development.


19. Before Coding

Before generating large amounts of code:

  1. Inspect the existing repository.
  2. Read AGENT.md.
  3. Do not overwrite useful existing work.
  4. Produce a short implementation plan.
  5. Identify architectural assumptions.
  6. Then implement incrementally.
  7. Run tests after meaningful changes.
  8. Fix failures before continuing.

When uncertain, prefer the simplest architecture compatible with the ASF principles.