Smarter Documentation

Table of Contents

  • Platform Administration Guide
    • Installation
      • Quick Start Guide
        • 1. Install Docker Desktop.
        • 2. Clone the Repository.
        • 3. Prepare Your Environment File.
        • 4. Initialize the Application.
        • 5. Start the Application.
        • 6. Log In.
        • 7. Download the Smarter Command-Line Interface.
      • Production Deployment
        • I. Infrastructure
        • II. ReactJS Component
        • III. Smarter Platform Application
        • Trouble Shooting
      • Developer Setup Guide
        • Prerequisites
        • Launch the Smarter Platform
        • Work With Source Code
        • Good Coding Best Practices
        • Repository Setup
        • Docker Setup
        • Python Setup
        • Keen Bootstrap Theme Setup
        • AWS Cloud Infrastructure
    • Smarter Web Console
      • AI Resource Authors
        • Console Dashboard
        • AI Resource Lists
        • LLM Prompt Workbench
        • Manifest Drop Zone
        • LLM Provider API Passthrough Tool
        • Live Server Logs
        • Complete REST API Reference
      • Administrators
        • Django Admin Console
    • Django Admin
    • Prerequisites
    • Trouble Shooting & FAQ
    • Cloud Infrastructure
      • Usage
      • Resources Created
    • URL Patterns
      • Example URL Patterns
    • Account Management
      • Creating Accounts
    • User Management
    • Smarter CLI
    • API Keys
      • Creating API Keys
      • Managing API Keys
      • Configuration Options
      • Using API Keys
        • Smarter Chat React Component
        • Smarter Command-line Interface
    • How-To: Adding an LLM Provider to Smarter
      • Goal
      • Supported Providers
      • Prerequisites
      • Setup
        • Step 1: Get an API Key
        • Step 2: Add the Key to Smarter
      • Concept Overview
      • Step-by-Step: Create and Apply a Provider Manifest
        • Step 3: Generate a Starting Template
        • Step 4: Write the Provider Manifests
        • Step 5: Apply Both Manifests
        • Step 6: Confirm Both Providers are Active
      • Proof of Concept
      • Troubleshooting
    • Cost Accounting
    • Smarter Journal
      • Enabling the Smarter Journal
      • Django Log
      • Application Logs
    • Configuration
      • 1. AWS Infrastructure Configuration
      • 2. Django Settings
      • 3. Asynchronous Task Queue Configuration
      • 4. Beat Scheduler Configuration
      • 5. Helm Chart Configuration
      • 6. Dockerfile Configuration
      • 7. GitHub Actions Secrets Configuration
      • 8. Secrets Management
      • 9. Logging Configuration
      • 10. Database Configuration
      • 11. Email/Notification Configuration
      • 1. Static & Media Files Configuration
      • 13. Smarter Settings Class Reference
    • Security
      • Firewall
      • Application Security
        • Proprietary Security Features
        • Django Security Features
      • Secure Remote Access
        • Smarter Authentication
      • Audit Logging
      • Malware Protection
      • User management
      • Data Encryption
      • Security Updates
    • Backup and Restore
    • Updates
    • Trouble Shooting
      • Where to go for Help
    • Security FAQ
  • Smarter AI Resource Reference
    • Smarter Account
      • Overview
      • Usage
      • Technical Reference
        • API Reference
        • Const
        • Account Django ORM
        • Receivers
        • Smarter Resources - Account
        • Smarter API Manifests (SAM)
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • Utils
    • Smarter LLMClient
      • Overview
      • Usage
      • Example Manifest
      • Technical Reference
        • API Reference
        • Models
        • Smarter API Manifests (SAM)
        • DRF Serializers
        • React UI
        • LLMClientHelper Class
        • Kubernetes Ingress
        • Management Commands
        • Middleware
        • Tasks
        • Signals
        • URLs
        • Utils
      • Sandbox Mode
      • Deploying
      • Updating
      • Deleting
      • Testing
      • Monitoring
      • Scaling
      • Trouble Shooting
    • Smarter Connection
      • Overview
      • Example Manifest
      • Technical Reference
        • API Reference
        • Const
        • Manifest
        • Django ORM
        • Receivers
        • SAM Resources
        • DRF Serializers
        • Signals
        • Asynchronous Tasks
        • React Integration Template Tag
        • URLs
        • Views
    • Smarter Plugin
      • Overview
      • Usage
      • Example Manifest
      • Technical Reference
        • API Reference
        • Caching
        • Const
        • How it Works
        • How LLM Tool Calling Works
        • Plugin Reference
        • Django Management Commands
        • Django ORM
        • Smarter API Manifests (SAM)
        • DRF Serializers
        • Natural Language Processing (NLP)
        • Signals
        • Receivers
        • Asynchronous Tasks
        • React Integration Template Tags
        • Utils
        • Views
    • Smarter Prompt
      • Overview
      • Usage
      • Technical Reference
        • Example Prompt Configuration
        • Example Prompt Request
        • Example Prompt Response
        • API Reference
        • Const
        • Manifests (SAM)
        • Django ORM
        • Smarter Prompt Functions
        • Django Management Commands
        • Signals
        • Asynchronous Tasks
        • Prompt Templatetags
        • Urls
        • Prompt Views
    • Smarter Provider
      • Overview
      • Technical Reference
        • API Reference
        • Const
        • Management Commands
        • Smarter API Manifests (SAM)
        • Django ORM
        • DRF Serializers
        • Services
        • Signals
        • Asynchronous Tasks
        • Utils
        • Verification
        • Views
    • Smarter Secret
      • Overview
      • Technical Reference
        • API Reference
        • Django Admin
        • Caching
        • Const
        • Smarter API Manifests (SAM)
        • Django ORM
        • Receivers
        • Secret Resources
        • DRF Serializers
        • Signals
        • React Integration Template Tags
        • Asynchronous Tasks
        • Urls
        • Views
    • Smarter VectorStore
      • Vectorstore Backends
        • Vectorstore Backend Base Class
        • Vectorstore Pinecone Backend
        • Vectorstore Qdrant Backend
        • Vectorstore Weaviate Backend
      • Vectorstor ORM Models
        • EmbeddingsInterface
        • IndexModelInterface
        • VectorestoreMeta
        • VectorstoreBackendKind
        • VectorstoreInterface
        • VectorstoreStatus
      • Vectorstore Receivers
        • account_post_delete()
        • account_post_save()
        • handle_load_failed()
        • handle_load_started()
        • handle_load_success()
        • should_log()
      • Vectorstore Serializers
        • VectorstoreSerializer
      • Vectorstore Services
        • VectorstoreService
      • Vectorstore Signals
        • connected
        • load_failed
        • load_started
        • load_success
      • Vectorstore Asynchronous Tasks
        • should_log()
  • Smarter Development Framework
    • Getting Started
    • Developer Guides
      • Developer Setup Guide
        • Prerequisites
        • Launch the Smarter Platform
        • Work With Source Code
        • Good Coding Best Practices
        • Repository Setup
        • Docker Setup
        • Python Setup
        • Keen Bootstrap Theme Setup
        • AWS Cloud Infrastructure
      • Contributing
        • How to Contribute
      • New Feature Checklist
        • Django Checklist
        • Smarter / SAM Checklist
        • Style Guide Checklist
      • Documentation Style Guide & Technical Reference
        • Style Guide
        • Tips for Writing Good Documentation
        • Documentation Build Process
      • 12-Factor App
      • Code of Conduct
        • 1. Purpose
        • 2. Open Source Citizenship
        • 3. Expected Behavior
        • 4. Unacceptable Behavior
        • 5. Enforcement
        • 6. Scope
        • 7. Our Responsibilities
        • Attribution
      • Developer Guidelines
        • New Feature Checklist
        • Unit Testing
        • Pydantic
        • Automations
        • Linters and Formatters
      • Semantic Versioning Guide
        • Commit Message format
      • OpenAI
      • OpenAI JSON Examples
        • Environment Variables
        • Logging
        • event dump
      • Claude Code
        • Getting Started with Claude Code on Smarter
        • Getting Started with Claude-Powered Coding in Smarter
        • Getting Started with Claude Code on the Smarter Platform
        • NAPL Grid Maintenance Assistant
        • Tutorial
        • Getting Started with Claude Code in Smarter
        • Claude Code with Smarter: Adding Anthropic and Getting Started
        • Part 1 — Adding Anthropic as an LLM Provider
        • Part 2 — Getting Started: Claude Code for NAPL Programmers
        • How-To: Add Anthropic as an LLM Provider in Smarter
        • Getting Started with Claude Code in Smarter
        • Adding an Anthropic Provider to Smarter
        • Getting Started: Using Claude Code with Smarter at NAPL
        • Smarter Claude Code Plugin
        • How-To: Adding Anthropic as an LLM Provider to Smarter
        • Getting Started with Claude Code as a Coding Assistant
        • Smarter & Claude is Jean-Claude Van Damme - Getting Started Guide
    • Smarter API Manifests (SAM)
      • Example SAM Manifest
      • SAM Enumerations Classes
      • SAM Pydantic Base Classes
        • AbstractSAMBase
        • AbstractSAMMetadataBase
        • AbstractSAMSpecBase
        • AbstractSAMStatusBase
        • SmarterBasePydanticModel
        • VALID_ANNOTATION_VALUE_TYPES_SET
      • SAMLoader Class
        • SAMLoader
        • SAMLoaderError
        • validate_key()
      • SAM AbstractController Class
        • AbstractController
      • SAM Broker Model
        • AbstractBroker
        • SAMBrokerError
        • SAMBrokerErrorNotFound
        • SAMBrokerErrorNotImplemented
        • SAMBrokerErrorNotReady
        • SAMBrokerInternalError
        • SAMBrokerReadOnlyError
      • SAM Error Handling
        • SAMBadRequestError
        • SAMExceptionBase
        • SAMValidationError
      • SAM Validation Strategy
        • Validation Strategy
    • Smarter Broker Model
      • AbstractBroker
        • AbstractBroker.ORMMetaModelClass
        • AbstractBroker.ORMModelClass
        • AbstractBroker.SAMModelClass
        • AbstractBroker.SerializerClass
        • AbstractBroker.__init__()
        • AbstractBroker.abstract_broker_logger_cache_invalidation_prefix
        • AbstractBroker.abstract_broker_logger_prefix
        • AbstractBroker.abstract_broker_ready_state
        • AbstractBroker.api_version
        • AbstractBroker.apply()
        • AbstractBroker.cache_invalidations()
        • AbstractBroker.clean_cli_param()
        • AbstractBroker.created
        • AbstractBroker.delete()
        • AbstractBroker.deploy()
        • AbstractBroker.describe()
        • AbstractBroker.example_manifest()
        • AbstractBroker.formatted_class_name
        • AbstractBroker.formatted_class_name_cache_invalidations
        • AbstractBroker.get()
        • AbstractBroker.get_model_titles()
        • AbstractBroker.get_or_create_secret()
        • AbstractBroker.is_ready_abstract_broker
        • AbstractBroker.is_valid
        • AbstractBroker.json_response_err()
        • AbstractBroker.json_response_err_notfound()
        • AbstractBroker.json_response_err_notimplemented()
        • AbstractBroker.json_response_err_notready()
        • AbstractBroker.json_response_err_readonly()
        • AbstractBroker.json_response_ok()
        • AbstractBroker.kind
        • AbstractBroker.kind_setter()
        • AbstractBroker.loader
        • AbstractBroker.log_abstract_broker_state()
        • AbstractBroker.logs()
        • AbstractBroker.manifest
        • AbstractBroker.manifest_setter()
        • AbstractBroker.manifest_to_django_orm()
        • AbstractBroker.name
        • AbstractBroker.name_cached_property_setter()
        • AbstractBroker.orm_instance
        • AbstractBroker.orm_meta_instance
        • AbstractBroker.orm_meta_instance_setter()
        • AbstractBroker.params
        • AbstractBroker.prompt()
        • AbstractBroker.ready
        • AbstractBroker.ready_state
        • AbstractBroker.request
        • AbstractBroker.schema()
        • AbstractBroker.set_and_verify_name_param()
        • AbstractBroker.thing
        • AbstractBroker.to_json()
        • AbstractBroker.undeploy()
        • AbstractBroker.uri
      • BrokerNotImplemented
        • BrokerNotImplemented.ORMModelClass
        • BrokerNotImplemented.SerializerClass
        • BrokerNotImplemented.__init__()
        • BrokerNotImplemented.delete()
        • BrokerNotImplemented.deploy()
        • BrokerNotImplemented.describe()
        • BrokerNotImplemented.example_manifest()
        • BrokerNotImplemented.get()
        • BrokerNotImplemented.logs()
        • BrokerNotImplemented.manifest
        • BrokerNotImplemented.prompt()
        • BrokerNotImplemented.undeploy()
      • should_log()
    • Smarter API
      • API Documentation
      • CLI URLs
        • Endpoints
        • URL Patterns
        • Base Class Reference
      • Prompt (Chat) URLS
        • Endpoints
        • URL Patterns
        • PromptConfigView Class Reference
        • DefaultLLMClientApiView Class Reference
      • Authentication
      • CLI Error Handling
      • Logging
      • Rate Limiting
      • Journal
      • Class Reference
        • CLI
        • Management Commands
        • Enumerations
        • Signals
        • URLS
    • Smarter CLI
      • Installation
      • Usage
      • Commands
      • Related API endpoints
      • Manifest Spec
        • Kind
        • Broker Model
        • Controller Model
    • VS Code Extension
      • Features
      • Getting Started
      • Configuration
      • JSON Schemas
    • Developer Technical Reference
      • Django-React Integration
        • Request Lifecycle
        • An Example: The Terminal Application Component
        • Build, Deployment, and CI/CD Considerations
      • Smarter Journal
        • Journal Technical References
      • Smarter Enumeration Classes
        • SmarterEnumAbstract
      • Smarter Mixins
        • Smarter Helper Mixin
        • Smarter Account Mixin
        • Smarter Request Mixin
        • Smarter Middleware Mixin
      • Smarter Settings
        • Settings
      • Smarter Utils
        • Technical References
      • Smarter Devops Guide
        • Build
        • Test
        • Deploy
        • CI/CD
      • Smarter Dashboard App
        • Django Admin
        • Const
        • Context Processors
        • Django ORM
        • Dashboard Receivers
        • Signals
        • Dashboard Templatetags
        • Urls
        • Views
      • Smarter Framework Library
        • Django
        • Django Rest Framework
        • Smarter Caching
        • Smarter Json Library
        • Smarter Celery Config Library
        • Smarter Journal Library
        • Smarter Logging
        • Smarter OpenAI Library
        • Smarter Social Core Library
        • Smarter Unit Test Library
    • Technologies
      • Amazon Web Services (AWS)
        • Terraform
        • AWS Helper Classes
      • Docker
        • What is Docker?
        • Why Use Docker?
        • Smarter and Docker
        • Getting Started with Docker
        • Key Docker Concepts
        • Basic Commands
        • Next Steps
      • Kubernetes
        • Kubernetes Helper Classes
        • Helm Chart
      • Python
        • Coding Style
        • Type Hinting
        • Documentation
        • Dependencies
        • Dependabot Configuration for Python Dependencies
      • Pydantic
      • SMTP Email Support
        • Configuration
        • Basic Usage
        • Technical Reference
  • ADR
    • ADR Introduction
      • Guidelines for Writing ADRs
    • ADR-001: Django
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-002: Docker
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-003: Kubernetes
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-004: 12-Factor App
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-005: Manifests
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-006: Rest API
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-007: Settings
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-008: Function Calling
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-009: Async Tasks
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-010: Management Commands
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-011: Logging
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-012: Error Handling
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-013: Testing
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-014: CI/CD
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-015: Dependency Management
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-016: Security
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-017: Database
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-018: Caching
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-019: React
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-020: Semantic Versioning
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-021: Internationalization
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-022: Feature Flags
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-023: API Versioning
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-024: Broker Model
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-025: Django Templates
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-026: Keen Bootstrap
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-027: Python Annotations
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR-028: Code Quality
      • Status
      • Context
      • Decision
      • Alternatives Considered
      • Consequences
      • Related ADRs
    • ADR 029: Docstring Style
      • Context
      • Alternatives Considered
      • Decision
      • Consequences
      • References

External Resources

  • Support Smarter!
  • Swagger API Documentation
  • Smarter Manifest Examples
  • Smarter Json Schemas
  • Smarter on YouTube
Smarter Documentation
  • ADR
  • View page source

ADR

Architectural Design Records (ADRs) are short documents that capture a single architectural or design decision, its context, and its consequences. Less is more, keep these brief. Each ADR is a separate markdown file located in this directory. ADRs provide a clear, version-controlled history of why decisions were made.

See: Michael Nygard’s ADRs

Contents:

  • ADR Introduction
  • ADR-001: Django
  • ADR-002: Docker
  • ADR-003: Kubernetes
  • ADR-004: 12-Factor App
  • ADR-005: Manifests
  • ADR-006: Rest API
  • ADR-007: Settings
  • ADR-008: Function Calling
  • ADR-009: Async Tasks
  • ADR-010: Management Commands
  • ADR-011: Logging
  • ADR-012: Error Handling
  • ADR-013: Testing
  • ADR-014: CI/CD
  • ADR-015: Dependency Management
  • ADR-016: Security
  • ADR-017: Database
  • ADR-018: Caching
  • ADR-019: React
  • ADR-020: Semantic Versioning
  • ADR-021: Internationalization
  • ADR-022: Feature Flags
  • ADR-023: API Versioning
  • ADR-024: Broker Model
  • ADR-025: Django Templates
  • ADR-026: Keen Bootstrap
  • ADR-027: Python Annotations
  • ADR-028: Code Quality
  • ADR 029: Docstring Style
Previous Next

© Copyright 2023 - 2026 Lawrence P. McDaniel. The Smarter Project. Last updated June-2026.

Built with Sphinx using a theme provided by Read the Docs.