Replaces os.path.dirname/join chains with Path(__file__).resolve() and /
operator. Updated Settings field types from str to Path to satisfy
pydantic v2 strict coercion.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- result_type -> output_type on Agent (core.py)
- result_validator -> output_validator decorator (tools.py)
- BASE_DIR was operating on the string literal "__name__" instead of
__file__; all paths were relative to CWD and only worked in Docker
because the entrypoint cd's into src/ first (consts.py)
- url_for('static', filename=...) -> path=... to match Starlette's
StaticFiles param name; every other template already used path= (home.html)
Verified locally: all routes and static assets return 200.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
pydantic-ai 0.4.x removed the api_key kwarg from model constructors.
Pass credentials via OpenAIProvider instead.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Gunicorn crashes on container start when these env vars are missing from
stack.env — -w receives no argument and exits immediately. Defaults now
match .env.example values (WORKERS=4, TIMEOUT=120, PORT=5051), consistent
with the bash default syntax already used in compose.yaml.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Rename GitHub repo from Pygentic-AI to strategiq. Update all
user-facing references: README badges/links/prose, page <title>,
hero alt text, CLAUDE.md, system-prompt, justfile comments,
komodo deploy echo, SCSS header comments, and compiled CSS.
Intentionally left unchanged: Docker registry image name
(s3docker.francissecada.com/pygentic_ai), container paths
(/opt/pygentic_ai), DB schema, CSS filenames, Traefik labels,
and the production domain (pygenticai.francissecada.com) — all
operational names that would require infra changes.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Add `search_web` tool backed by tavily-python for grounded research
- Extend SWOT pipeline to accept a primary entity plus optional comparison
entities; agent prompt drives comparative analysis when comparators are
present
- Add `primary_entity` / `comparison_entities` fields to SwotAnalysis model
- Wire new form fields (primary + comparison inputs) through router →
utils → run_agent
- Render entity badges ("vs" header) in result template; fix pre-existing
bug where iterating model.dict() leaked the `analysis` string into the
SWOT card grid
- Add comparison-input and entity-badge SCSS components; recompile CSS
- Pin requires-python >=3.12 in pyproject.toml; lock tavily-python 0.7.21
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove git clone in Dockerfile, use COPY instead
- Remove SSH agent setup from GitHub Actions workflow
- Remove --ssh and GIT_BRANCH build args
- Fix Unix line endings in shell scripts (dos2unix)
- Simplifies build process and removes SSH dependency
- Enables faster, more reliable CI/CD builds
✅ Local build tested and successful
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Changed .claude\system-prompt.md to .claude/system-prompt.md
Forward slashes work on all platforms (Windows, Linux, macOS)
Also streamlined the start-claude output messages
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Task Automation (justfile):
- Comprehensive justfile with 50+ recipes for all common tasks
- Dynamic argument passing for Docker commands
- Organized categories: dev, docker, testing, deployment, cleanup
- Environment variable substitution for flexible configuration
- Health checks and monitoring commands
- Database migration helpers
- Quality check automation (lint, format, security, test)
Development Workflow:
- just setup - One-command project initialization
- just dev/celery/scss-watch - Multi-terminal dev environment
- just build/deploy - Docker operations with custom tags
- just test/lint/check - Quality assurance automation
- just clean/prune - Cleanup utilities
Multi-Agent Claude Orchestration:
- .claude/system-prompt.md - Multi-agent orchestration system
* 5 specialized personas (🏗️ Architect, 🎨 Frontend, ⚙️ Backend, 🔒 Security, 🚀 DevOps)
* MCP server routing patterns (Sequential, Context7, Magic, Playwright, Morphllm, Serena)
* Task coordination workflows and decision frameworks
* Code quality standards and project-specific patterns
- CLAUDE.md - Project initialization guide
* Technology stack overview
* Project structure documentation
* Key workflows and commands
* Environment configuration guide
* Multi-persona activation patterns
* Quick reference for common tasks
Documentation:
- Updated README.md with comprehensive justfile documentation
* Installation instructions for just
* Quick start guide using justfile
* Complete command reference organized by category
* Claude AI assistance section
* Improved project overview and features
* Development and production workflows
Benefits:
- Consistent command interface across all operations
- Reduced cognitive load - no need to remember complex Docker commands
- Self-documenting workflows with `just --list`
- Claude can intelligently coordinate across multiple domains
- Improved onboarding with clear documentation
Usage:
just # List all commands
just setup # Initialize project
just dev # Start development
just start-claude # View Claude context
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Implemented WCAG 2.1 AA compliant accessibility enhancements:
ARIA & Semantic HTML:
- Added semantic landmarks (main, section, article, role attributes)
- Comprehensive ARIA labels and descriptions throughout
- ARIA live regions for dynamic content updates (polite/assertive)
- Screen reader-only text for context (.sr-only class)
- Proper heading hierarchy with IDs for navigation
Keyboard Navigation:
- Full keyboard support for SWOT cards (Arrow keys, Home, End)
- Skip to main content link for keyboard users
- Focus management: auto-focus results heading after analysis
- Focus visible styles already in place from SCSS
Screen Reader Enhancements:
- announceToScreenReader() function for status updates
- ARIA live regions on spinner, status timeline, results
- Descriptive labels for icons (aria-hidden for decorative)
- Category descriptions (e.g., "Strengths - positive internal factors")
Interactive Elements:
- Enhanced button and link labels
- Progress indicators with aria-busy and role="progressbar"
- Modal dialog attributes for spinner overlay
- Feed role for status timeline updates
Files Modified:
- result.html: SWOT cards, summary section with full ARIA support
- app.js: Screen reader announcements, keyboard nav, focus management
- base.html: Skip link and semantic main element
- EmptyState.jinja: role="status" with aria-live
- ErrorState.jinja: role="alert" for error announcements
- Spinner.jinja: Modal dialog with progress indicator
- status.html: Feed role for timeline updates
- _components.scss: sr-only and skip-link utility classes
These improvements ensure the SWOT analyzer is fully accessible to
visually impaired users using screen readers and keyboard navigation.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Phase 1 Implementation: Enhanced visual design and user experience
## Design System
- Add custom CSS variables for brand colors (purple palette from logo)
- Implement semantic SWOT colors (green/amber/blue/red)
- Add neutral gray scale and shadow system
- Define transition timing functions
## Typography
- Import Inter font for body text with font-feature settings
- Import Space Grotesk for headings with tight letter-spacing
- Add gradient text effect for hero title
- Improve font rendering with antialiasing
## Hero Section
- Redesign with gradient background (purple theme)
- Add animated floating logo icon
- Center-aligned layout with improved hierarchy
- Enhanced subtitle with better readability
## Search Form
- Modern pill-shaped input group with shadows
- Icon integration with proper spacing
- Smooth hover/focus transitions
- Help text with contextual information
- Mobile-responsive stacked layout
## SWOT Result Cards
- Replace basic panels with modern card design
- Add colored top borders and icon badges
- Implement hover lift effects with enhanced shadows
- Add slide-up animations with stagger effect
- Count badges for each category
- Improved list styling with custom bullets
- Executive summary section with branded styling
## Loading States
- Enhanced spinner with backdrop blur
- Progress message display
- Improved loading text hierarchy
- Better visual feedback during analysis
## Responsive Design
- Mobile-first breakpoints (768px, 480px)
- Stacked form layout on mobile
- Single column card grid on small screens
- Adjusted typography sizing for small screens
Files updated:
- src/frontend/static/css/pygentic_ai.css (300+ lines of enhanced styles)
- src/frontend/templates/home.html (hero + search redesign)
- src/frontend/templates/result.html (modern card layout)
- src/frontend/templates/components/snippets/Spinner.jinja (progress messages)
This aligns with Constitution Principle IV (Observability) through better
user feedback, and represents a significant improvement in user experience.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Configure frontend to use public npm registry instead of AWS CodeArtifact
- Fixes authentication errors when running npm commands
- Allows npm-check-updates (ncu) to run without credentials
This resolves the "expired credentials" error by overriding the global
.npmrc configuration with a local setting for this project.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Remove git source dependency for sqlmodel-crud-utilities
- Use PyPI version v0.1.0 (was v0.0.1a1 from git)
- Update uv.lock with resolved PyPI dependencies
- Also updated: python-dotenv v1.0.1 -> v1.2.1, sqlmodel v0.0.22 -> v0.0.32
This simplifies dependency management by using official PyPI releases
instead of git sources where available.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>