Spensara Spensara Knowledge Base & Documentation Repository

Repository Docs & Knowledge Base

Consolidated Spensara documentation repository (722 Markdown & architecture documents in ../repository)
Built Word Documents (.docx): Spensara Overview (.docx) Capability Assessment (.docx) Brink POS Ingestion Analysis (.docx) The Borg Ingestion Architecture (.docx)

Agent Tooling (71)

Automation workflows, orchestration references, and developer tooling guides.
agent-tooling/.agents/skills/aspireify/references/scan-and-propose.md 6,545 bytes · Updated Oct 23, 2026 10:44 AM EDT
Raw File

Scan & Propose

Heuristics for the scan and propose phases of aspireify.

Scan Checklist

InventoryHow
.NET projectsfind . -name '.csproj' -not -path '/bin/' -not -path '/obj/*'
Top-level Node servicesfind . -maxdepth 4 -name 'package.json' -not -path '/node_modules/'
Python servicesfind . -maxdepth 4 -name 'pyproject.toml' -o -name 'requirements.txt'
Container depscat docker-compose.yml compose.yml 2>/dev/null
Connection stringsgrep -rIE '(Postgres|Redis|Mongo|RabbitMQ|Cosmos|ServiceBus|AMQP)' --include='.json' --include='.env' --include='*.config'
Hardcoded URLsgrep -rIE 'http://localhost:[0-9]+' --include='.ts' --include='.tsx' --include='.js' --include='.cs'
Existing integration packagesdotnet list package per .csproj; jq .dependencies package.json per Node project
Existing endpointslaunchSettings.json, next.config.js, vite.config.ts, apphost.ts modules
Existing AppHost referencesapphost.cs / Program.cs / apphost.ts — what's already wired?

Heuristics

SignalSuggest
.csproj references Microsoft.AspNetCore.AppAPI project → AddProject + WithExternalHttpEndpoints() if user-facing
.csproj references Microsoft.NET.Sdk.WorkerBackground worker → AddProject, no external endpoints
package.json has "next" dependencyAddNextJsApp — confirm next.config.js has output: 'standalone'
package.json has "vite" + SPA bundleAddViteApp + PublishAsStaticWebsite(apiPath, apiTarget)
package.json has "vite" + .output/server/index.mjs (TanStack/SvelteKit)AddViteApp (dev) + PublishAsNodeServer (publish)
package.json has Remix / Astro / Nitro NextPublishAsPackageScript
pyproject.toml with FastAPI/FlaskAddPythonApp (or model under TS AppHost)
Program.cs reads ConnectionStrings:Postgres / DI calls AddNpgsqlAddPostgres('pg').AddDatabase('appdb') + WithReference
Program.cs calls AddStackExchangeRedisCacheAddRedis('cache') + WithReference
MongoClient / MongoDB.DriverAddMongoDB('mongo')
Code refs RabbitMQ.Client / IConnectionAddRabbitMQ('mq') (v7 client — pub/sub tracing)
Code refs Microsoft.Azure.CosmosAddAzureCosmosDB('cosmos')
Code refs Azure.Messaging.ServiceBusAddAzureServiceBus('sb')
Frontend hardcodes http://localhost:5000Replace with service discovery: endpoint.url (TS) or WithReference(api)

Integration Catalog

Datastores

ServiceC# integrationTS integrationNotes
PostgresAddPostgres("pg").AddDatabase("appdb")addPostgres('pg').addDatabase('appdb')Npgsql metrics align to .NET 10
SQL ServerAddSqlServer("sql").AddDatabase("appdb")addSqlServer('sql').addDatabase('appdb')Container-backed locally
MySQLAddMySql("my").AddDatabase("appdb")addMySql('my').addDatabase('appdb')
MongoDBAddMongoDB("mongo").AddDatabase("app")addMongoDB('mongo').addDatabase('app')
RedisAddRedis("cache")addRedis('cache')
Azure Cache for RedisAddAzureRedis("cache")addAzureRedis('cache')Aspire.Microsoft.Azure.StackExchangeRedis is GA
Cosmos DBAddAzureCosmosDB("cosmos")addAzureCosmosDB('cosmos')
Azure SQLAddAzureSqlServer("sql")addAzureSqlServer('sql')
Azure StorageAddAzureStorage("storage")addAzureStorage('storage')

Messaging

ServiceC#TSNotes
RabbitMQAddRabbitMQ("mq")addRabbitMQ('mq')v7 client, OTel pub/sub tracing
Azure Service BusAddAzureServiceBus("sb")addAzureServiceBus('sb')
KafkaAddKafka("kafka")addKafka('kafka')
Azure Event HubsAddAzureEventHubs("eh")addAzureEventHubs('eh')
Durable Task SchedulerAddDurableTaskScheduler(...)n/aExperimental: ASPIREDURABLETASK001

Frontends (JS/TS)

PatternAddPublish
Next.js (SSR or static)AddNextJsApp("web", "./web")Auto — Next.js standalone (set output: 'standalone' in next.config.js)
Vite SPAAddViteApp("web", "./web")PublishAsStaticWebsite(apiPath: "/api", apiTarget: api)
Vite + TanStack/SvelteKit (SSR via Node)AddViteApp("web", "./web")PublishAsNodeServer(entryPoint: ".output/server/index.mjs", outputPath: ".output")
Remix / Astro SSR / NitroAddNodeApp or AddViteAppPublishAsPackageScript(scriptName: "start")
Plain NodeAddNodeApp("api", "server.js")PublishAsNodeServer

Bun, Yarn, and pnpm are first-class in TS AppHosts (npm remains the default).

AI / Foundry

PatternAPI
Azure AI Foundry Prompt AgentAddPromptAgent(...) (replaces non-functional AddAndPublishPromptAgent)
Predefined Foundry models in TS[AspireValue] + catalogs like FoundryModels.OpenAI.Gpt41Mini

Compute environments (binding)

TargetAPI
Azure Container AppsAddAzureContainerAppEnvironment("aca")
Azure App ServiceAddAzureAppServiceEnvironment("appsvc")
Azure Kubernetes ServiceAddAzureKubernetesEnvironment("aks").WithSystemNodePool(...)
Plain KubernetesAddKubernetesEnvironment("k8s") (Helm-based)
Docker ComposeAddDockerComposeEnvironment("compose")

Bind a resource: .WithComputeEnvironment(env). Required when multiple environments are declared.

Proposal Template

When presenting the proposed graph to the user, structure it as:

SCAN RESULTS
  Projects: Api (csproj), Worker (csproj)
  Frontends: web (Next.js)
  External deps: Postgres (compose), Redis (compose)
  Connection strings hardcoded in: Api/appsettings.Development.json

PROPOSED RESOURCE GRAPH
  - pg (Postgres)
    - appdb (database)
  - cache (Redis)
  - api (Project) → references pg, cache; waits for both; external HTTP
  - worker (Project) → references pg
  - web (Next.js) → references api; waits for api; WithBrowserLogs

QUESTIONS BEFORE I EDIT
  1. Replace appsettings Postgres connection string with Aspire service discovery? [Y/n]
  2. Mark Api's /admin endpoint as ExcludeReferenceEndpoint? [Y/n]
  3. Bind everything to a default compute environment, or wait for deploy? [skip/aca/aks]

Wait for confirmation before editing.