Glossary
Definitions for the platform-specific terminology you'll see in the UI, the proposal blob, and the AI surfaces.
22 of 22 terms
additional_contextHow SubsGPT injects the active proposal into AI answers
A free-form plain-text field (≤ 4000 chars) that SubsGPT ships on every Design Chat turn. The backend's answer writer sanitises it (control chars stripped, length-bounded) and appends it to the prompt under a "Current Layout:" header so answers can reference the active proposal alongside the chosen standards corpus. Built by lib/proposalSummary.js → summarizeProposal() / summarizeLayout(); capped at 3800 chars to leave headroom under the 4000-char Pydantic limit.
Agentic ConfigA named multi-agent pipeline stored in MongoDB
A JSON document that defines a list of agents, each with its own system prompt, tools, and dependencies. The backend executor runs the DAG via /agentic/generate. Two configs SubsGPT depends on: rural-substation-advisor (Design Chat) and verify-layout (Verify Standards). Document-generation widgets in StepGenerate also map to per-widget configs.
Arc Flash CategoryNFPA 70E hazard band for an electrical system
Categories 0 through 4 indicating the incident-energy level workers may be exposed to. SubsGPT calculates this automatically from fault level + protection scheme using simplified NFPA 70E energy bands; fast-clearing schemes (Ring Bus, Breaker-and-a-Half, Double-Bus Double-Breaker) apply a 0.6× multiplier. Override toggle lets you set it manually.
Asset ContextStructured properties of the substation being designed
A typed object — voltage_class, technology (AIS / GIS), environment, jurisdiction, utility — derived from the active proposal and forwarded to the AI surfaces (Design Chat, Verify Standards). Lets the backend filter retrieval to relevant standards and lets the answer writer phrase responses appropriately.
Auto-saveThe 2-second debounced write to MongoDB
Every change to the proposal triggers a 2-second debounced PUT /subsgpt/proposals/{id}. Visible as the "Saving…" / "Saved" / "Save error" chip in the proposal-builder header. Optimistic concurrency via expected_version — a 409 response means another tab updated the same proposal. Local-only state lives in localStorage at subsGPT-proposal so closing the tab doesn't lose work.
BIL (Basic Impulse Level)The lightning-impulse withstand voltage rating
Measured in kV. SubsGPT auto-suggests BIL from HV voltage: 345 kV → 1300, 230 kV → 900, 138 kV → 650, 115 kV → 550, 69 kV → 350, 34.5 kV → 200, < 34.5 kV → 110. You can override the suggestion on Step 1 (Spec).
chatMessages / chatContextGroupIdWhere Design Chat persistence lives on the proposal
Two fields written to the proposal blob by DesignChat. chatMessages is the conversation log: [{ role, content, isError, timestamp }]. chatContextGroupId is the picked standards corpus. Persisted via the onTouch callback so the auto-save sees them; survives page reload and the drawer close/open cycle.
CitationA traceable pointer to a source chunk
Every Design Chat or Verify Standards answer carries citations back to the source documents (doc_id, version, page, section, chunk_id). For Design Chat they're inline in the prose ("[RUS Bulletin 1724E-300, §4.9, p. 154]"); for Verify Standards they appear as structured rows in the report table.
Context GroupA backend corpus boundary
An isolation unit on the SBS_AI backend. Each group has its own SQLite scope, ChromaDB collection, and knowledge graph. The pickers in Design Chat and Verify Standards forward the chosen context_group_id to /ask and /agentic/generate so retrieval scopes consistently across both surfaces.
Design ChatRAG-grounded engineering Q&A drawer
A drawer reachable from the proposal-builder toolbar. Backed by the rural-substation-advisor agentic pipeline (3 agents: searcher → analyst → engineer-formatter). Multi-angle retrieval over the chosen standards corpus, with the active proposal+sites injected as additional_context. ~30–60 s per turn on Ollama; structured markdown output with inline citations. Each turn is independent — prior turns aren't resent.
EMPTY_PROPOSALThe default shape of a new proposal
The constant in lib/proposalConfig.js that defines all wizard fields and their defaults — name, location, station type, voltages, frequency, fault level, etc. Anything in EMPTY_PROPOSAL is part of the proposal blob; chat/verify fields (chatMessages, verifyResult) are added by the drawers as needed.
GLB (Binary glTF)The 3D model format for substation layouts
A self-contained 3D scene file. The Map Designer's Generate Layout call returns an assembled GLB built from the SBIF JSON-LD output of the neural-net layout pipeline. Source equipment models live in baseModels/ on the backend.
Layout (site.result)A generated substation layout for one site
The response from POST /api/neuralnet-services/layout/generate, stored on each site in mapState as site.result. Contains the components[] array (equipment items with x/y/z coordinates, type, rated_voltage), an assembled GLB URL, and station/site dimensions. The Verify Standards drawer reasons over site.result.
ModalityThe strength of a requirement: SHALL / SHOULD / MAY
Borrowed from RFC 2119. Tagged on every extracted requirement during ingestion so the conflict checker can reason about strength. SHALL / MUST are mandatory; SHOULD is strong recommendation; MAY is permissive. The Verify Standards report uses modality to decide PASS / REVIEW / FAIL severity.
Neural Net CheckpointThe .pt model the Map Designer uses for layout generation
Set in Settings → Neural Net (browser-local — pick per workstation). Backed by lib/userPreferences.js (stored under subsgpt_user_prefs_v1.neuralnetCheckpoint). MapDesigner.handleGenerate calls getNeuralnetCheckpointPath() to build the relative path the backend expects under neuralNet_Models/. Default is windfarm_subsGPT_layout_model_v99.pt.
Proposal BlobThe full state of one proposal
The JSON document persisted in MongoDB at /subsgpt/proposals/{id}. Carries the wizard fields (EMPTY_PROPOSAL + edits), chat persistence (chatMessages, chatContextGroupId), verify persistence (verifyResult, verifyContextGroupId), generated documents, and a version integer for optimistic concurrency.
rural-substation-advisorThe agentic config behind Design Chat
A 3-agent linear pipeline: searcher (multi-angle RAG retrieval) → analyst (synthesises) → engineer-formatter (writes structured markdown with inline citations). Materially better answers than single-shot /ask in side-by-side comparisons; trade-off is latency. Seeded from data/rural-substation-advisor.agentic-config.json into MongoDB.
SBIF (Substation Information Format)JSON-LD schema for substation layouts
The interchange format the neural-net layout pipeline emits. POST /api/neuralnet-services/layout/generate returns SBIF JSON-LD; /layout/assemble turns SBIF into a GLB. SBIF carries equipment positions, rated voltages, and station/site dimensions.
Step WizardThe 6-step proposal flow
The proposal-builder UI: Step 0 Setup (project + location), Step 1 Spec (electrical standards), Step 2 Design (voltages + switchgear), Step 3 Map (3D site designer), Step 4 Generate (AI documents), Step 5 Summary (reports + export). Visited steps are tracked in proposal._visitedSteps; each step component lives under components/proposal/.
Tutorial vs Tutorials pageTwo different things — disambiguation
The Tutorials page (/tutorials) is a card-grid catalogue of hands-on walkthroughs grouped by topic. A "tutorial" in the sidebar can sometimes refer to in-app onboarding tours (none today). When in doubt, you want /tutorials.
verify-layoutThe agentic config behind Verify Standards
A 3-agent linear pipeline: clearance-extractor (pulls clearance/spacing rules from the corpus) → geometry-analyser (measures equipment pairs in the layout) → compliance-reporter (emits a structured PASS/REVIEW/FAIL JSON report with citations). Used by both SubsGPT's drawer and SBS_AI_Front's panel; keys off analysis_focus to pick clearance categories.
verifyResult / verifyContextGroupIdWhere Verify Standards persistence lives on the proposal
verifyResult is { report, narrative, verdict, rawText, rawSections, selectedSiteId, ranAt } — the last compliance run. verifyContextGroupId is the picked standards corpus (independent of chatContextGroupId). Restored when the drawer reopens so a verification doesn't need to re-run.