Compare commits

71 Commits

Author SHA1 Message Date
e2ddfa53d4 Merge pull request 'epic-ux-design' (#1) from epic-ux-design into main
Reviewed-on: #1
2026-02-21 15:23:54 +01:00
Sepehr Ramezani
9eb3bd912a feat(ai): localize AI features 2026-02-15 17:38:16 +01:00
Sepehr Ramezani
8f9031f076 fix: update masonry grid sizing logic and notebook list padding 2026-02-14 14:20:32 +01:00
a0ffc9043b Améliorations UX: grille masonry et composants de notes 2026-02-01 09:29:09 +01:00
4a1b60e575 Fix syntax error and finalize robust note resizing 2026-01-24 20:02:38 +01:00
8e35780717 Attempt to fix note resizing with React keys and Muuri sync 2026-01-24 19:52:13 +01:00
d59ec592eb fix(grid): repair muuri drag&drop and visual styles
- Fix Muuri integration: add data-draggable and improve DOM sync
- Fix Drag Visuals: remove opacity/rotation/scale in NoteCard and CSS to prevent 'gray/crooked' look
- Feat(layout): switch to padding-based spacing strategy (16px gap)
- Fix(css): correct media queries to maintain consistent spacing
2026-01-24 17:53:40 +01:00
ddb67ba9e5 fix: unify theme system - fix theme switching persistence
- Unified localStorage key to 'theme-preference' across all components
- Fixed header.tsx using wrong localStorage key ('theme' instead of 'theme-preference')
- Added localStorage hybrid persistence for instant theme changes
- Removed router.refresh() which was causing stale data revert
- Replaced Blue theme with Sepia
- Consolidated auth() calls to prevent race conditions
- Updated UserSettingsData types to include all themes
2026-01-18 22:33:41 +01:00
ef60dafd73 WIP: Améliorations UX et corrections de bugs avant création des épiques 2026-01-17 11:10:50 +01:00
772dc77719 fix: more aggressive CSS to prevent toasts from blocking UI
Enhanced toast styling to ensure ALL elements in the toaster container
don't block page interaction, while keeping toast buttons clickable.

Added:
- pointer-events: none on all toaster children
- pointer-events: none on ::before and ::after pseudo-elements
- Only actual toast elements have pointer-events: auto

This should fix the issue where users had to refresh (F5) after any
toast notification to click buttons again.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 23:34:46 +01:00
3dd48e248c fix: 8 AI services were not using configured provider
CRITICAL FIX: Auto-labels, notebook summaries, and other AI features
were not working because 8 services were calling getAIProvider() WITHOUT
passing the config parameter.

This caused them to use the default 'ollama' provider instead of
the configured OpenAI provider from the database.

ROOT CAUSE ANALYSIS:
Working features (titles):
- title-suggestions/route.ts: getAIProvider(config) ✓

Broken features (auto-labels, summaries):
- contextual-auto-tag.service.ts: getAIProvider() ✗ (2x)
- notebook-summary.service.ts: getAIProvider() ✗
- auto-label-creation.service.ts: getAIProvider() ✗
- notebook-suggestion.service.ts: getAIProvider() ✗
- batch-organization.service.ts: getAIProvider() ✗
- embedding.service.ts: getAIProvider() ✗ (2x)

FIXED: All 8 services now properly call:
  const config = await getSystemConfig()
  const provider = getAIProvider(config)

This ensures ALL AI features use the provider configured in the admin
interface (OpenAI) instead of defaulting to Ollama.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 23:34:16 +01:00
1cbada87f4 fix: prevent toasts from blocking UI interaction
CRITICAL FIX: Toast notifications were blocking all UI interaction,
requiring a page refresh (F5) to click buttons again.

Root cause: The [data-sonner-toaster] container was capturing all
pointer events, preventing clicks on the page underneath.

Solution:
- Added CSS: pointer-events: none on [data-sonner-toaster]
- Added CSS: pointer-events: auto on [data-sonner-toast]
- This allows the toast itself to be interactive (buttons, close)
- But lets clicks pass through to the page underneath

After this fix, users can continue working immediately after
a toast appears without refreshing the page.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 23:20:27 +01:00
2393cacf35 fix: ensure AI provider config is saved correctly in admin
URGENT FIX: Admin form was not properly saving AI provider configuration,
causing 'AI_PROVIDER_TAGS is not configured' error even after setting OpenAI.

Changes:
- admin-settings-form.tsx: Added validation and error handling
- admin-settings.ts: Filter empty values before saving to DB
- setup-openai.ts: Script to initialize OpenAI as default provider

This fixes the critical bug where users couldn't use the app after
configuring OpenAI in the admin interface.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 23:16:26 +01:00
8617117dec fix: remove Ollama default fallbacks in factory and Docker
ROOT CAUSE: The factory was defaulting to 'ollama' when no provider
was configured, and docker-compose.yml was always setting OLLAMA_BASE_URL
even when using OpenAI. This caused the app to try connecting to Ollama
even when OpenAI was configured in the admin.

CRITICAL CHANGES:
1. lib/ai/factory.ts - Removed 'ollama' default fallback
   - getTagsProvider() now throws error if AI_PROVIDER_TAGS not set
   - getEmbeddingsProvider() now throws error if AI_PROVIDER_EMBEDDING not set
   - Forces explicit configuration instead of silent fallback to Ollama

2. docker-compose.yml - Removed default OLLAMA_BASE_URL
   - Changed: OLLAMA_BASE_URL=${OLLAMA_BASE_URL:-http://ollama:11434}
   - To: OLLAMA_BASE_URL=${OLLAMA_BASE_URL}
   - Only set if explicitly defined in .env.docker

3. Application name: Mento → Memento (correct spelling)
   - Updated in: sidebar, README, deploy.sh, DOCKER_DEPLOYMENT.md

4. app/api/ai/config/route.ts - Return 'not set' instead of 'ollama'
   - Makes it clear when provider is not configured

IMPACT: The app will now properly use OpenAI when configured in the
admin interface, instead of silently falling back to Ollama.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 23:08:20 +01:00
00335a1383 test: add Playwright tests and debug endpoint for AI provider validation
Add comprehensive tests to verify AI provider configuration and ensure
OpenAI is being used correctly instead of hardcoded Ollama.

Changes:
- Add ai-provider.spec.ts: Playwright tests for AI provider validation
- Add /api/debug/config endpoint: Exposes AI configuration for testing
- Tests verify: OpenAI config, connectivity, no OLLAMA errors

All 4 tests pass locally:
✓ AI provider configuration check
✓ OpenAI connectivity test
✓ Embeddings provider verification
✓ No OLLAMA errors validation

Usage on Docker:
TEST_URL=http://192.168.1.190:3000 npx playwright test ai-provider.spec.ts

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:58:38 +01:00
5d315a6bdd fix: make paragraph refactor service use configured AI provider
The paragraph-refactor service was using OLLAMA_BASE_URL directly from
environment variables instead of using the configured AI provider from
the database. This caused "OLLAMA error" even when OpenAI was configured
in the admin interface.

Changes:
- paragraph-refactor.service.ts: Now uses getSystemConfig() and
  getTagsProvider() from factory instead of direct Ollama calls
- factory.ts: Added proper error messages when API keys are missing
- .env.docker.example: Updated with new provider configuration
  variables (AI_PROVIDER_TAGS, AI_PROVIDER_EMBEDDING)

This fixes the issue where AI reformulation features (Clarify, Shorten,
Improve Style) would fail with OLLAMA errors even when OpenAI was
properly configured in the admin settings.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:51:24 +01:00
58e486c68e fix: rename application from Keep to Mento in UI and docs
- Update sidebar.tsx to display "Mento" instead of "Keep"
- Update README.md title from "Keep Notes" to "Mento"
- Update DOCKER_DEPLOYMENT.md references to "Mento"
- Update deploy.sh script comments to use "Mento"
- Add DOCKER-SETUP.md with Docker configuration guide

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:37:38 +01:00
e6bcdea641 fix: remove hardcoded localhost fallbacks, require explicit config
Critical fix for Docker deployment where AI features were trying to connect
to localhost:11434 instead of using configured provider (Ollama Docker service
or OpenAI).

Problems fixed:
1. Reformulation (clarify/shorten/improve) failing with ECONNREFUSED 127.0.0.1:11434
2. Auto-labels failing with same error
3. Notebook summaries failing
4. Could not switch from Ollama to OpenAI in admin

Root cause:
- Code had hardcoded fallback to 'http://localhost:11434' in multiple places
- .env.docker file not created on server (gitignore'd)
- No validation that required environment variables were set

Changes:

1. lib/ai/factory.ts:
   - Remove hardcoded 'http://localhost:11434' fallback
   - Only use localhost for local development (NODE_ENV !== 'production')
   - Throw error if OLLAMA_BASE_URL not set in production

2. lib/ai/providers/ollama.ts:
   - Remove default parameter 'http://localhost:11434' from constructor
   - Require baseUrl to be explicitly passed
   - Throw error if baseUrl is missing

3. lib/ai/services/paragraph-refactor.service.ts:
   - Remove 'http://localhost:11434' fallback (2 locations)
   - Require OLLAMA_BASE_URL to be set
   - Throw clear error if not configured

4. app/(main)/admin/settings/admin-settings-form.tsx:
   - Add debug info showing current provider state
   - Display database config value for transparency
   - Help troubleshoot provider selection issues

5. DOCKER-SETUP.md:
   - Complete guide for Docker configuration
   - Instructions for .env.docker setup
   - Examples for Ollama Docker, OpenAI, and external Ollama
   - Troubleshooting common issues

Usage:
On server, create .env.docker with proper provider configuration:
- Ollama in Docker: OLLAMA_BASE_URL="http://ollama:11434"
- OpenAI: OPENAI_API_KEY="sk-..."
- External Ollama: OLLAMA_BASE_URL="http://SERVER_IP:11434"

Then in admin interface, users can independently configure:
- Tags Provider (for auto-labels, AI features)
- Embeddings Provider (for semantic search)

Result:
✓ Clear errors if Ollama not configured
✓ Can switch to OpenAI freely in admin
✓ No more hardcoded localhost in production
✓ Proper separation between local dev and Docker production

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:28:39 +01:00
76c7cd97e9 fix: resolve Docker AI features connection to Ollama
Critical fix for AI features (reformulation, auto-labels) in Docker.
Only title generation was working because it had hardcoded fallback.

Problem:
- Code uses OLLAMA_BASE_URL environment variable
- docker-compose.yml was setting OLLAMA_API_URL (wrong variable)
- .env.docker was missing on server
- Container couldn't connect to Ollama service

Root cause:
- Environment variable name mismatch
- Missing OLLAMA_BASE_URL configuration
- localhost:11434 doesn't work in Docker (need service name)

Solution:
1. Update docker-compose.yml:
   - Change OLLAMA_API_URL → OLLAMA_BASE_URL
   - Add OLLAMA_MODEL environment variable
   - Default to http://ollama:11434 (Docker service name)

2. Update .env.docker:
   - Add OLLAMA_BASE_URL="http://ollama:11434"
   - Add OLLAMA_MODEL="granite4:latest"
   - Document AI provider configuration

3. Update .env.docker.example:
   - Add examples for different Ollama setups
   - Document Docker service name vs external IP
   - Add OpenAI configuration example

Result:
✓ All AI features now work in Docker (titles, reformulation, auto-labels)
✓ Proper connection to Ollama container via Docker network
✓ Clear documentation for different deployment scenarios

Technical details:
- Docker service name "ollama" resolves to container IP
- Port 11434 accessible within memento-network
- Fallback to localhost only for local development

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:13:35 +01:00
2e4f9dcd83 feat: auto-detect user language from browser settings
Fixes issue where interface always defaulted to English for new users.
Now automatically detects and applies browser language on first visit.

Changes:
- lib/i18n/LanguageProvider.tsx:
  - Add browser language detection using navigator.language
  - Check if detected language is in supported languages list
  - Auto-save detected language to localStorage
  - Update HTML lang attribute for proper font rendering

Behavior:
- First visit: Detects browser language (e.g., fr-FR → fr)
- Returning visits: Uses saved language from localStorage
- Fallback: Defaults to English if language not supported

Result:
✓ French users see French interface automatically
✓ All supported languages work (en, fr, es, de, fa, it, pt, ru, zh, ja, ko, ar, hi, nl, pl)
✓ Better UX for international users

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:03:01 +01:00
4fa418438f fix: display notebook icons correctly instead of icon names
Fixes issue where notebook dropdown showed icon name (e.g., "folder")
instead of the actual icon component.

Problem:
- note-card.tsx was displaying {notebook.icon} as text
- Users saw "folder", "book", etc. instead of icons

Solution:
- Import Lucide icon components (Folder, Book, Briefcase, etc.)
- Add ICON_MAP matching icon names to components
- Use getNotebookIcon() function to resolve icon name to component
- Render component as <NotebookIcon className="h-4 w-4 mr-2" />

Changes:
- components/note-card.tsx:
  - Add LucideIcon and icon imports
  - Add ICON_MAP and getNotebookIcon() helper
  - Update notebook dropdown to render icon components

Result:
✓ Notebook icons now display correctly in dropdown menu
✓ Consistent with notebooks-list.tsx implementation

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 22:02:31 +01:00
c95b0d5650 feat: add Docker environment configuration for remote access
Fixes redirect issue where application redirects to localhost:3000
instead of server IP when accessed from remote browser.

Problem:
- Accessing http://192.168.1.190:3000 redirects to http://localhost:3000
- NEXTAUTH_URL was hardcoded to localhost in .env
- Remote users cannot access the application

Solution:
1. Create .env.docker with server-specific configuration
   - NEXTAUTH_URL="http://192.168.1.190:3000"
   - Ollama URL for container-to-container communication

2. Update docker-compose.yml:
   - Add env_file: .env.docker
   - Loads Docker-specific environment variables

3. Create .env.docker.example as template:
   - Document NEXTAUTH_URL configuration
   - Users can copy and customize for their server IP/domain

Files:
- .env.docker: Docker environment (gitignored)
- .env.docker.example: Template for users
- docker-compose.yml: Load .env.docker
- .env.example: Update NEXTAUTH_URL documentation

Usage:
On production server, edit .env.docker with your server IP:
NEXTAUTH_URL="http://YOUR_IP:3000"

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 21:38:46 +01:00
dfa5f9611f fix: resolve Prisma Query Engine runtime error in Docker
Critical fix for production deployment on Proxmox/Docker.

Problem:
- Runtime error: Prisma Client could not locate Query Engine for "debian-openssl-1.1.x"
- Wrong binary target generated (Windows dll instead of Linux .so.node)
- Wrong OpenSSL version (3.0.x instead of 1.1.x for Debian 11)

Root cause:
- Schema.prisma didn't specify binaryTargets
- Prisma auto-detected Windows during local development
- Debian 11 (bullseye) uses OpenSSL 1.1.x, not 3.0.x

Solution:
1. Add binaryTargets to schema.prisma:
   - "debian-openssl-1.1.x" for Docker/Proxmox
   - "native" for local development

2. Fix Prisma folder permissions in Docker:
   - RUN chown -R nextjs:nodejs /app/prisma
   - Ensures Query Engine binary is readable by app user

Changes:
- prisma/schema.prisma: Add binaryTargets = ["debian-openssl-1.1.x", "native"]
- keep-notes/Dockerfile: Add chown for /app/prisma folder

Verification:
✓ libquery_engine-debian-openssl-1.1.x.so.node exists
✓ Permissions: nextjs:nodejs (readable)
✓ Prisma Client loads successfully in container

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 21:30:03 +01:00
f5cda3843b fix: copy Prisma Query Engine binaries in Docker standalone output
Fixes runtime error where Prisma Client could not locate the Query Engine:
"libquery_engine-debian-openssl-1.1.x.so.node" not found

Root cause:
- Next.js standalone output does not include Prisma Query Engine binaries
- The .prisma folder in node_modules contains the required binary files

Solution:
- Copy node_modules/.prisma folder in Docker runner stage
- This includes libquery_engine-debian-openssl-1.1.x.so.node
- Prisma Client can now find and load the Query Engine at runtime

Tested:
✓ Docker build successful
✓ Container starts without Prisma errors
✓ Application ready in 40ms

Changes:
- keep-notes/Dockerfile: Add COPY for node_modules/.prisma folder

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 21:20:56 +01:00
ff110b735c fix: resolve Docker Compose build failure with Prisma Client generation
Fix critical issue where `docker compose build` was failing with:
"Module not found: Can't resolve '../prisma/client-generated'"

Root cause:
- Next.js build requires Prisma Client during webpack compilation
- Prisma Client was not being generated before the Next.js build step

Changes:
1. keep-notes/Dockerfile:
   - Add explicit `RUN npx prisma generate` in builder stage before `npm run build`
   - Ensures client-generated directory exists when Next.js compiles

2. keep-notes/package.json:
   - Update build script: "prisma generate && next build --webpack"
   - Double-protection: runs prisma generate both in Dockerfile and build script

3. docker-compose.yml:
   - Remove obsolete `version: '3.8'` attribute (deprecated in Docker Compose v2)

Result:
✓ Docker build now completes successfully
✓ Prisma Client generated at ./prisma/client-generated
✓ Next.js webpack compilation finds the client module

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-12 21:12:47 +01:00
519dffd5a6 chore: empty commit (requested) 2026-01-12 21:08:52 +01:00
e9e302afdc chore: empty commit (requested) 2026-01-12 21:03:13 +01:00
59f03f83c6 chore: empty commit (requested) 2026-01-12 20:30:54 +01:00
78dd42c056 fix: generate Prisma in runner after copying all node_modules - guaranteed to work 2026-01-12 20:28:27 +01:00
769dd1cb9b chore: empty commit (requested) 2026-01-12 00:38:44 +01:00
074dce6910 fix: switch to Debian 11 (bullseye) for native OpenSSL 1.1.x - no more Prisma issues 2026-01-12 00:38:14 +01:00
518dabef62 chore: empty commit (requested) 2026-01-12 00:34:59 +01:00
df70ccbd62 fix: force PRISMA_BINARY_TARGETS env var to override OpenSSL detection 2026-01-12 00:34:17 +01:00
5eec0bb921 fix: remove old Prisma client files to force regeneration with OpenSSL 3.x 2026-01-12 00:30:40 +01:00
8f034a2ddd chore: empty commit (requested) 2026-01-12 00:27:47 +01:00
fab371228a fix: simplify Dockerfile with correct OpenSSL 3 setup for Debian 12 2026-01-12 00:27:04 +01:00
1e4600f21e fix: set Prisma binaryTargets to debian-openssl-3.0.x for Debian Slim 2026-01-12 00:26:10 +01:00
c770a993ff fix: copy entire .next/server directory (no wildcards in COPY) 2026-01-12 00:23:18 +01:00
32e36b5288 fix: copy Prisma engines to .next/server for Next.js 2026-01-12 00:18:49 +01:00
a74385c59f chore: sync changes 2026-01-12 00:14:43 +01:00
ebfb2276ea fix: copy Prisma binaries to all search locations 2026-01-12 00:14:14 +01:00
200cea9b09 chore: empty commit to satisfy request 2026-01-12 00:08:49 +01:00
ea5dc73c1f fix: switch to Debian Slim for Prisma compatibility 2026-01-12 00:07:09 +01:00
aa3c741135 fix: use libssl1.1 for Prisma on Alpine 2026-01-12 00:05:26 +01:00
0b86734c77 chore: update local settings and dev database 2026-01-12 00:04:04 +01:00
7d3e633af9 fix: install openssl1.1-compat for Prisma on Alpine 2026-01-12 00:03:15 +01:00
9428631570 fix: remove unused CreateLabelDialog import from notebooks-list 2026-01-12 00:00:11 +01:00
9061a1cd85 chore: empty commit to trigger CI/sync 2026-01-11 23:57:36 +01:00
da77adc4b1 chore: sync changes 2026-01-11 23:52:53 +01:00
a28094159c chore: update package files 2026-01-11 23:50:30 +01:00
7ce4f41cf9 chore: update Next.js config and package metadata 2026-01-11 23:44:38 +01:00
b85841248d chore(docker): update Docker and Next.js config 2026-01-11 23:38:35 +01:00
bee5234944 chore: miscellaneous fixes 2026-01-11 23:26:55 +01:00
1678bcaced chore(docker): tweak deployment docs and scripts; update package metadata 2026-01-11 23:20:34 +01:00
3854a3e302 chore(docker): Add Dockerfile for deployment 2026-01-11 23:10:54 +01:00
208dfdb7fa docs: Update README with Docker deployment info 2026-01-11 23:02:11 +01:00
0b258aef4e feat(docker): Add complete Docker deployment configuration for Proxmox
## Docker Configuration
- Enhance docker-compose.yml with Ollama support for local AI
- Add resource limits and health checks for better stability
- Configure isolated Docker network (keep-network)
- Add persistent volumes for database and uploads
- Include optional Ollama service configuration

## Deployment Files
- Add DOCKER_DEPLOYMENT.md with comprehensive deployment guide
- Add deploy.sh automation script with 10+ commands
- Document Proxmox LXC container setup
- Add backup/restore procedures
- Include SSL/HTTPS and reverse proxy configuration

## Docker Build Optimization
- Improve .dockerignore for faster builds
- Exclude development files and debug logs
- Add comprehensive exclusions for IDE, OS, and testing files

## Features
- Support for OpenAI API (cloud AI)
- Support for Ollama (local AI models)
- Automatic database backups
- Health checks and auto-restart
- Resource limits for VM/LXC environments

## Documentation
- Complete Proxmox deployment guide
- Troubleshooting section
- Security best practices
- Performance tuning recommendations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

Ou une version plus courte si vous préférez :

feat(docker): Add Proxmox deployment config with Ollama support

- Enhance docker-compose.yml with health checks, resource limits, Ollama support
- Add DOCKER_DEPLOYMENT.md guide (50+ sections covering Proxmox, SSL, AI setup)
- Add deploy.sh script with build, start, backup, logs commands
- Improve .dockerignore for optimized builds
- Document backup/restore procedures and security best practices
- Support both OpenAI and local Ollama AI providers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-11 22:58:56 +01:00
7fb486c9a4 feat: Complete internationalization and code cleanup
## Translation Files
- Add 11 new language files (es, de, pt, ru, zh, ja, ko, ar, hi, nl, pl)
- Add 100+ missing translation keys across all 15 languages
- New sections: notebook, pagination, ai.batchOrganization, ai.autoLabels
- Update nav section with workspace, quickAccess, myLibrary keys

## Component Updates
- Update 15+ components to use translation keys instead of hardcoded text
- Components: notebook dialogs, sidebar, header, note-input, ghost-tags, etc.
- Replace 80+ hardcoded English/French strings with t() calls
- Ensure consistent UI across all supported languages

## Code Quality
- Remove 77+ console.log statements from codebase
- Clean up API routes, components, hooks, and services
- Keep only essential error handling (no debugging logs)

## UI/UX Improvements
- Update Keep logo to yellow post-it style (from-yellow-400 to-amber-500)
- Change selection colors to #FEF3C6 (notebooks) and #EFB162 (nav items)
- Make "+" button permanently visible in notebooks section
- Fix grammar and syntax errors in multiple components

## Bug Fixes
- Fix JSON syntax errors in it.json, nl.json, pl.json, zh.json
- Fix syntax errors in notebook-suggestion-toast.tsx
- Fix syntax errors in use-auto-tagging.ts
- Fix syntax errors in paragraph-refactor.service.ts
- Fix duplicate "fusion" section in nl.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

Ou une version plus courte si vous préférez :

feat(i18n): Add 15 languages, remove logs, update UI components

- Create 11 new translation files (es, de, pt, ru, zh, ja, ko, ar, hi, nl, pl)
- Add 100+ translation keys: notebook, pagination, AI features
- Update 15+ components to use translations (80+ strings)
- Remove 77+ console.log statements from codebase
- Fix JSON syntax errors in 4 translation files
- Fix component syntax errors (toast, hooks, services)
- Update logo to yellow post-it style
- Change selection colors (#FEF3C6, #EFB162)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-11 22:26:13 +01:00
fc2c40249e feat: AI provider testing page + multi-provider support + UX design spec
- Add AI Provider Testing page (/admin/ai-test) with Tags and Embeddings tests
- Add new AI providers: CustomOpenAI, DeepSeek, OpenRouter
- Add API routes for AI config, models listing, and testing endpoints
- Add UX Design Specification document for Phase 1 MVP AI
- Add PRD Phase 1 MVP AI planning document
- Update admin settings and sidebar navigation
- Fix AI factory for multi-provider support
2026-01-10 11:23:22 +01:00
640fcb26f7 fix: improve note interactions and markdown LaTeX support
## Bug Fixes

### Note Card Actions
- Fix broken size change functionality (missing state declaration)
- Implement React 19 useOptimistic for instant UI feedback
- Add startTransition for non-blocking updates
- Ensure smooth animations without page refresh
- All note actions now work: pin, archive, color, size, checklist

### Markdown LaTeX Rendering
- Add remark-math and rehype-katex plugins
- Support inline equations with dollar sign syntax
- Support block equations with double dollar sign syntax
- Import KaTeX CSS for proper styling
- Equations now render correctly instead of showing raw LaTeX

## Technical Details

- Replace undefined currentNote references with optimistic state
- Add optimistic updates before server actions for instant feedback
- Use router.refresh() in transitions for smart cache invalidation
- Install remark-math, rehype-katex, and katex packages

## Testing

- Build passes successfully with no TypeScript errors
- Dev server hot-reloads changes correctly
2026-01-09 22:13:49 +01:00
3c4b9d6176 feat(ai): implement intelligent auto-tagging system
- Added multi-provider AI infrastructure (OpenAI/Ollama)
- Implemented real-time tag suggestions with debounced analysis
- Created AI diagnostics and database maintenance tools in Settings
- Added automated garbage collection for orphan labels
- Refined UX with deterministic color hashing and interactive ghost tags
2026-01-08 22:59:52 +01:00
6f4d758e5c Fix authentication and Prisma query issues 2026-01-08 21:35:55 +01:00
15a95fb319 Add BMAD framework, authentication, and new features 2026-01-08 21:23:23 +01:00
f07d28aefd chore: bump version to 0.2.0 2026-01-04 22:54:36 +01:00
6204425080 docs: update changelog with label management details 2026-01-04 22:53:28 +01:00
dfa88c5b63 feat: implement label management with color filtering 2026-01-04 22:47:54 +01:00
a154192410 Fix tests and add changelog 2026-01-04 21:33:10 +01:00
f0b41572bc feat: Memento avec dates, Markdown, reminders et auth
Tests Playwright validés :
- Création de notes: OK
- Modification titre: OK
- Modification contenu: OK
- Markdown éditable avec preview: OK

Fonctionnalités:
- date-fns: dates relatives sur cards
- react-markdown + remark-gfm
- Markdown avec toggle edit/preview
- Recherche améliorée (titre/contenu/labels/checkItems)
- Reminder recurrence/location (schema)
- NextAuth.js + User/Account/Session
- userId dans Note (optionnel)
- 4 migrations créées

Ready for production + auth integration
2026-01-04 16:04:24 +01:00
2de2958b7a feat: Replace alert() with professional toast notification system
- Remove buggy Undo/Redo that saved character-by-character
- Simplify state to plain useState like Google Keep
- Create toast component with success/error/warning/info types
- Toast notifications auto-dismiss after 3s with smooth animations
- Add ToastProvider in layout
- Remove all JavaScript alert() calls
- Production-ready notification system
2026-01-04 14:36:15 +01:00
8d95f34fcc fix: Add debounced Undo/Redo system to avoid character-by-character history
- Add debounced state updates for title and content (500ms delay)
- Immediate UI updates with delayed history saving
- Prevent one-letter-per-undo issue
- Add cleanup for debounce timers on unmount
2026-01-04 14:28:11 +01:00
355ffb59bb feat: Add robust Undo/Redo system and improve note input
- Implement useUndoRedo hook with proper state management (max 50 history)
- Add Undo/Redo buttons with keyboard shortcuts (Ctrl+Z/Ctrl+Y)
- Fix image upload with proper sizing (max-w-full max-h-96 object-contain)
- Add image validation (type and 5MB size limit)
- Implement reminder system with date validation
- Add comprehensive input validation with user-friendly error messages
- Improve error handling with try-catch blocks
- Add MCP-GUIDE.md with complete MCP documentation and examples

Breaking changes: None
Production ready: Yes
2026-01-04 14:22:36 +01:00
4155 changed files with 709701 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
---
name: 'bmad-master'
description: 'bmad-master agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/core/agents/bmad-master.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'analyst'
description: 'analyst agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/analyst.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'architect'
description: 'architect agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/architect.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'dev'
description: 'dev agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/dev.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'pm'
description: 'pm agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/pm.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'qa'
description: 'qa agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/qa.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'quick-flow-solo-dev'
description: 'quick-flow-solo-dev agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/quick-flow-solo-dev.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'sm'
description: 'sm agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/sm.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'tech-writer'
description: 'tech-writer agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/tech-writer/tech-writer.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'ux-designer'
description: 'ux-designer agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/ux-designer.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,7 @@
---
name: 'check-implementation-readiness'
description: 'Critical validation workflow that assesses PRD, Architecture, and Epics & Stories for completeness and alignment before implementation. Uses adversarial review approach to find gaps and issues.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'code-review'
description: 'Perform an ADVERSARIAL Senior Developer code review that finds 3-10 specific problems in every story. Challenges everything: code quality, test coverage, architecture compliance, security, performance. NEVER accepts `looks good` - must find minimum issues and can auto-fix with user approval.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'correct-course'
description: 'Navigate significant changes during sprint execution by analyzing impact, proposing solutions, and routing for implementation'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'create-architecture'
description: 'Collaborative architectural decision facilitation for AI-agent consistency. Replaces template-driven architecture with intelligent, adaptive conversation that produces a decision-focused architecture document optimized for preventing agent conflicts.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'create-epics-and-stories'
description: 'Transform PRD requirements and Architecture decisions into comprehensive stories organized by user value. This workflow requires completed PRD + Architecture documents (UX recommended if UI exists) and breaks down requirements into implementation-ready epics and user stories that incorporate all available technical and design context. Creates detailed, actionable stories with complete acceptance criteria for development teams.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'create-prd'
description: 'Create a comprehensive PRD (Product Requirements Document) through structured workflow facilitation'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'create-product-brief'
description: 'Create comprehensive product briefs through collaborative step-by-step discovery as creative Business Analyst working with the user as peers.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'create-story'
description: 'Create the next user story from epics+stories with enhanced context analysis and direct ready-for-dev marking'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'create-ux-design'
description: 'Work with a peer UX Design expert to plan your applications UX patterns, look and feel.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'dev-story'
description: 'Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'document-project'
description: 'Analyzes and documents brownfield projects by scanning codebase, architecture, and patterns to create comprehensive reference documentation for AI-assisted development'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'domain-research'
description: 'Conduct domain research covering industry analysis, regulations, technology trends, and ecosystem dynamics using current web data and verified sources.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'edit-prd'
description: 'Edit and improve an existing PRD - enhance clarity, completeness, and quality'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'generate-project-context'
description: 'Creates a concise project-context.md file with critical rules and patterns that AI agents must follow when implementing code. Optimized for LLM context efficiency.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/generate-project-context/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'market-research'
description: 'Conduct market research covering market size, growth, competition, and customer insights using current web data and verified sources.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'qa-automate'
description: 'Generate tests quickly for existing features using standard test patterns'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'quick-dev'
description: 'Flexible development - execute tech-specs OR direct instructions with optional planning.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'quick-spec'
description: 'Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'retrospective'
description: 'Run after epic completion to review overall success, extract lessons learned, and explore if new information emerged that might impact the next epic'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'sprint-planning'
description: 'Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'sprint-status'
description: 'Summarize sprint-status.yaml, surface risks, and route to the right implementation workflow.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'technical-research'
description: 'Conduct technical research covering technology evaluation, architecture decisions, and implementation approaches using current web data and verified sources.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'validate-prd'
description: 'Validate an existing PRD against BMAD standards - comprehensive review for completeness, clarity, and quality'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'brainstorming'
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/core/workflows/brainstorming/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,10 @@
---
name: 'editorial-review-prose'
description: 'Clinical copy-editor that reviews text for communication issues'
---
# editorial-review-prose
Read the entire task file at: {project-root}/_bmad/core/tasks/editorial-review-prose.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'editorial-review-structure'
description: 'Structural editor that proposes cuts, reorganization, and simplification while preserving comprehension'
---
# editorial-review-structure
Read the entire task file at: {project-root}/_bmad/core/tasks/editorial-review-structure.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'help'
description: 'Get unstuck by showing what workflow steps come next or answering questions about what to do'
---
# help
Read the entire task file at: {project-root}/_bmad/core/tasks/help.md
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'index-docs'
description: 'Generates or updates an index.md of all documents in the specified directory'
---
# index-docs
Read the entire task file at: {project-root}/_bmad/core/tasks/index-docs.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,7 @@
---
name: 'party-mode'
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/core/workflows/party-mode/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,10 @@
---
name: 'review-adversarial-general'
description: 'Cynically review content and produce findings'
---
# review-adversarial-general
Read the entire task file at: {project-root}/_bmad/core/tasks/review-adversarial-general.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'shard-doc'
description: 'Splits large markdown documents into smaller, organized files based on level 2 (default) sections'
---
# shard-doc
Read the entire task file at: {project-root}/_bmad/core/tasks/shard-doc.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'validate-workflow'
description: 'Run a checklist against a document with thorough analysis and produce a validation report'
---
# validate-workflow
Read the entire task file at: {project-root}/_bmad/core/tasks/validate-workflow.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'workflow'
description: 'Execute given workflow by loading its configuration, following instructions, and producing output'
---
# workflow
Read the entire task file at: {project-root}/_bmad/core/tasks/workflow.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,16 @@
---
name: 'bmad-master'
description: 'bmad-master agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/core/agents/bmad-master.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'analyst'
description: 'analyst agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/analyst.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'architect'
description: 'architect agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/architect.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'dev'
description: 'dev agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/dev.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'pm'
description: 'pm agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/pm.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'qa'
description: 'qa agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/qa.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'quick-flow-solo-dev'
description: 'quick-flow-solo-dev agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/quick-flow-solo-dev.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'sm'
description: 'sm agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/sm.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'tech-writer'
description: 'tech-writer agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/tech-writer/tech-writer.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,16 @@
---
name: 'ux-designer'
description: 'ux-designer agent'
disable-model-invocation: true
---
You must fully embody this agent's persona and follow all activation instructions exactly as specified. NEVER break character until given an exit command.
<agent-activation CRITICAL="TRUE">
1. LOAD the FULL agent file from {project-root}/_bmad/bmm/agents/ux-designer.md
2. READ its entire contents - this contains the complete agent persona, menu, and instructions
3. FOLLOW every step in the <activation> section precisely
4. DISPLAY the welcome/greeting as instructed
5. PRESENT the numbered menu
6. WAIT for user input before proceeding
</agent-activation>

View File

@@ -0,0 +1,7 @@
---
name: 'check-implementation-readiness'
description: 'Critical validation workflow that assesses PRD, Architecture, and Epics & Stories for completeness and alignment before implementation. Uses adversarial review approach to find gaps and issues.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/check-implementation-readiness/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'code-review'
description: 'Perform an ADVERSARIAL Senior Developer code review that finds 3-10 specific problems in every story. Challenges everything: code quality, test coverage, architecture compliance, security, performance. NEVER accepts `looks good` - must find minimum issues and can auto-fix with user approval.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/code-review/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'correct-course'
description: 'Navigate significant changes during sprint execution by analyzing impact, proposing solutions, and routing for implementation'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/correct-course/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'create-architecture'
description: 'Collaborative architectural decision facilitation for AI-agent consistency. Replaces template-driven architecture with intelligent, adaptive conversation that produces a decision-focused architecture document optimized for preventing agent conflicts.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/create-architecture/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'create-epics-and-stories'
description: 'Transform PRD requirements and Architecture decisions into comprehensive stories organized by user value. This workflow requires completed PRD + Architecture documents (UX recommended if UI exists) and breaks down requirements into implementation-ready epics and user stories that incorporate all available technical and design context. Creates detailed, actionable stories with complete acceptance criteria for development teams.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/3-solutioning/create-epics-and-stories/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'create-prd'
description: 'Create a comprehensive PRD (Product Requirements Document) through structured workflow facilitation'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-create-prd.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'create-product-brief'
description: 'Create comprehensive product briefs through collaborative step-by-step discovery as creative Business Analyst working with the user as peers.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/create-product-brief/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'create-story'
description: 'Create the next user story from epics+stories with enhanced context analysis and direct ready-for-dev marking'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/create-story/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'create-ux-design'
description: 'Work with a peer UX Design expert to plan your applications UX patterns, look and feel.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-ux-design/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'dev-story'
description: 'Execute a story by implementing tasks/subtasks, writing tests, validating, and updating the story file per acceptance criteria'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/dev-story/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'document-project'
description: 'Analyzes and documents brownfield projects by scanning codebase, architecture, and patterns to create comprehensive reference documentation for AI-assisted development'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/document-project/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'domain-research'
description: 'Conduct domain research covering industry analysis, regulations, technology trends, and ecosystem dynamics using current web data and verified sources.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-domain-research.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'edit-prd'
description: 'Edit and improve an existing PRD - enhance clarity, completeness, and quality'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-edit-prd.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'generate-project-context'
description: 'Creates a concise project-context.md file with critical rules and patterns that AI agents must follow when implementing code. Optimized for LLM context efficiency.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/generate-project-context/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'market-research'
description: 'Conduct market research covering market size, growth, competition, and customer insights using current web data and verified sources.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-market-research.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'qa-automate'
description: 'Generate tests quickly for existing features using standard test patterns'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/qa/automate/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'quick-dev'
description: 'Flexible development - execute tech-specs OR direct instructions with optional planning.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-dev/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'quick-spec'
description: 'Conversational spec engineering - ask questions, investigate code, produce implementation-ready tech-spec.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/bmad-quick-flow/quick-spec/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,15 @@
---
name: 'retrospective'
description: 'Run after epic completion to review overall success, extract lessons learned, and explore if new information emerged that might impact the next epic'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/retrospective/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'sprint-planning'
description: 'Generate and manage the sprint status tracking file for Phase 4 implementation, extracting all epics and stories from epic files and tracking their status through the development lifecycle'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-planning/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,15 @@
---
name: 'sprint-status'
description: 'Summarize sprint-status.yaml, surface risks, and route to the right implementation workflow.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THESE STEPS - while staying in character as the current agent persona you may have loaded:
<steps CRITICAL="TRUE">
1. Always LOAD the FULL @{project-root}/_bmad/core/tasks/workflow.xml
2. READ its entire contents - this is the CORE OS for EXECUTING the specific workflow-config @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml
3. Pass the yaml path @{project-root}/_bmad/bmm/workflows/4-implementation/sprint-status/workflow.yaml as 'workflow-config' parameter to the workflow.xml instructions
4. Follow workflow.xml instructions EXACTLY as written to process and follow the specific workflow config and its instructions
5. Save outputs after EACH section when generating any documents from templates
</steps>

View File

@@ -0,0 +1,7 @@
---
name: 'technical-research'
description: 'Conduct technical research covering technology evaluation, architecture decisions, and implementation approaches using current web data and verified sources.'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/1-analysis/research/workflow-technical-research.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'validate-prd'
description: 'Validate an existing PRD against BMAD standards - comprehensive review for completeness, clarity, and quality'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/bmm/workflows/2-plan-workflows/create-prd/workflow-validate-prd.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,7 @@
---
name: 'brainstorming'
description: 'Facilitate interactive brainstorming sessions using diverse creative techniques and ideation methods'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/core/workflows/brainstorming/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,10 @@
---
name: 'editorial-review-prose'
description: 'Clinical copy-editor that reviews text for communication issues'
---
# editorial-review-prose
Read the entire task file at: {project-root}/_bmad/core/tasks/editorial-review-prose.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'editorial-review-structure'
description: 'Structural editor that proposes cuts, reorganization, and simplification while preserving comprehension'
---
# editorial-review-structure
Read the entire task file at: {project-root}/_bmad/core/tasks/editorial-review-structure.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'help'
description: 'Get unstuck by showing what workflow steps come next or answering questions about what to do'
---
# help
Read the entire task file at: {project-root}/_bmad/core/tasks/help.md
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'index-docs'
description: 'Generates or updates an index.md of all documents in the specified directory'
---
# index-docs
Read the entire task file at: {project-root}/_bmad/core/tasks/index-docs.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,7 @@
---
name: 'party-mode'
description: 'Orchestrates group discussions between all installed BMAD agents, enabling natural multi-agent conversations'
disable-model-invocation: true
---
IT IS CRITICAL THAT YOU FOLLOW THIS COMMAND: LOAD the FULL @{project-root}/_bmad/core/workflows/party-mode/workflow.md, READ its entire contents and follow its directions exactly!

View File

@@ -0,0 +1,10 @@
---
name: 'review-adversarial-general'
description: 'Cynically review content and produce findings'
---
# review-adversarial-general
Read the entire task file at: {project-root}/_bmad/core/tasks/review-adversarial-general.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'shard-doc'
description: 'Splits large markdown documents into smaller, organized files based on level 2 (default) sections'
---
# shard-doc
Read the entire task file at: {project-root}/_bmad/core/tasks/shard-doc.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'validate-workflow'
description: 'Run a checklist against a document with thorough analysis and produce a validation report'
---
# validate-workflow
Read the entire task file at: {project-root}/_bmad/core/tasks/validate-workflow.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,10 @@
---
name: 'workflow'
description: 'Execute given workflow by loading its configuration, following instructions, and producing output'
---
# workflow
Read the entire task file at: {project-root}/_bmad/core/tasks/workflow.xml
Follow all instructions in the task file exactly as written.

View File

@@ -0,0 +1,69 @@
{
"permissions": {
"allow": [
"Bash(dir:*)",
"Bash(findstr:*)",
"Bash(test:*)",
"Bash(tree:*)",
"Bash(find:*)",
"Bash(npm install:*)",
"Bash(npx prisma generate:*)",
"Bash(npx prisma migrate dev:*)",
"Bash(npx prisma db push:*)",
"Bash(npm run build:*)",
"Bash(grep:*)",
"Bash(netstat:*)",
"Skill(bmad:bmm:agents:pm)",
"WebSearch",
"Bash(powershell:*)",
"Bash(npm run dev:*)",
"mcp__zread__read_file",
"mcp__zread__search_doc",
"Bash(npx prisma studio:*)",
"Bash(timeout:*)",
"mcp__web-reader__webReader",
"Bash(taskkill:*)",
"Bash(sqlite3:*)",
"Bash(node scripts/check-labels.js:*)",
"Bash(curl:*)",
"Bash(python:*)",
"Bash(npm test:*)",
"Skill(bmad:bmm:agents:ux-designer)",
"Skill(bmad:bmm:workflows:create-prd)",
"Bash(ls:*)",
"Bash(cat:*)",
"Bash(ping:*)",
"Bash(tasklist:*)",
"Bash(npm uninstall:*)",
"Bash(node:*)",
"Bash(npx tsx:*)",
"Bash(npx tsc:*)",
"mcp__zai-mcp-server__analyze_image",
"Skill(bmad:bmm:agents:architect)",
"Bash(git log:*)",
"Skill(bmad:bmm:workflows:workflow-status)",
"Skill(bmad:bmm:workflows:sprint-planning)",
"Bash(done)",
"Bash(for:*)",
"Bash(do echo:*)",
"Bash(chmod:*)",
"Bash(git add:*)",
"Bash(git commit:*)",
"Bash(git push:*)",
"Bash(docker compose:*)",
"mcp__context7__resolve-library-id",
"mcp__web-search-prime__webSearchPrime",
"mcp__context7__query-docs",
"Bash(docker logs:*)",
"Bash(docker run:*)",
"Bash(docker exec:*)",
"Bash(git reset:*)",
"Bash(npx prisma:*)",
"Bash(npx playwright test:*)",
"Skill(bmad:bmm:workflows:create-story)",
"Bash(tee:*)",
"Bash(npx playwright codegen:*)",
"Bash(pkill:*)"
]
}
}

2984
.cursor/debug.log Normal file

File diff suppressed because it is too large Load Diff

27
.env.docker Normal file
View File

@@ -0,0 +1,27 @@
# ============================================
# Docker / Production Environment
# ============================================
# Update NEXTAUTH_URL with your server IP or domain
NEXTAUTH_URL="http://192.168.1.190:3000"
# ============================================
# AI Provider Configuration
# ============================================
AI_PROVIDER=ollama
OLLAMA_BASE_URL="http://ollama:11434"
OLLAMA_MODEL="granite4:latest"
# ============================================
# Email Configuration (Optional)
# ============================================
# Uncomment and configure for email features
# SMTP_HOST="smtp.gmail.com"
# SMTP_PORT="587"
# SMTP_USER="your-email@gmail.com"
# SMTP_PASS="your-app-password"
# SMTP_FROM="noreply@memento.app"
# ============================================
# OpenAI (Optional)
# ============================================
# OPENAI_API_KEY="sk-..."

67
.env.docker.example Normal file
View File

@@ -0,0 +1,67 @@
# ============================================
# Docker / Production Environment Template
# ============================================
# Copy this file to .env.docker and update with your server IP/domain
# IMPORTANT: Update NEXTAUTH_URL with your server IP or domain name
# Examples:
# - IP: NEXTAUTH_URL="http://192.168.1.190:3000"
# - Domain: NEXTAUTH_URL="http://your-domain.com"
# - HTTPS: NEXTAUTH_URL="https://your-domain.com"
NEXTAUTH_URL="http://YOUR_SERVER_IP:3000"
# ============================================
# MCP Server Configuration
# ============================================
# Choose the MCP server mode:
# - 'stdio': Standard I/O mode (default) - for Claude Desktop, Cline, etc.
# - 'sse': Server-Sent Events mode - for N8N HTTP transport, remote access
MCP_MODE="stdio"
MCP_PORT="3001"
# ============================================
# AI Provider Configuration
# ============================================
# You can configure separate providers for tags and embeddings
# Options: ollama, openai, custom
# For local Ollama in Docker (service name):
# AI_PROVIDER_TAGS=ollama
# AI_PROVIDER_EMBEDDING=ollama
# OLLAMA_BASE_URL="http://ollama:11434"
# AI_MODEL_TAGS="granite4:latest"
# AI_MODEL_EMBEDDING="embeddinggemma:latest"
# For external Ollama (on host or different server):
# AI_PROVIDER_TAGS=ollama
# AI_PROVIDER_EMBEDDING=ollama
# OLLAMA_BASE_URL="http://YOUR_SERVER_IP:11434"
# AI_MODEL_TAGS="granite4:latest"
# AI_MODEL_EMBEDDING="embeddinggemma:latest"
# For OpenAI (recommended for production):
# AI_PROVIDER_TAGS=openai
# AI_PROVIDER_EMBEDDING=openai
# OPENAI_API_KEY="sk-..."
# AI_MODEL_TAGS="gpt-4o-mini"
# AI_MODEL_EMBEDDING="text-embedding-3-small"
# Mixed setup (e.g., Ollama for tags, OpenAI for embeddings):
# AI_PROVIDER_TAGS=ollama
# AI_PROVIDER_EMBEDDING=openai
# OLLAMA_BASE_URL="http://ollama:11434"
# OPENAI_API_KEY="sk-..."
# AI_MODEL_TAGS="granite4:latest"
# AI_MODEL_EMBEDDING="text-embedding-3-small"
# ============================================
# Email Configuration (Optional)
# ============================================
# Uncomment and configure for email features (password reset, reminders)
# SMTP_HOST="smtp.gmail.com"
# SMTP_PORT="587"
# SMTP_USER="your-email@gmail.com"
# SMTP_PASS="your-app-password"
# SMTP_FROM="noreply@memento.app"

45
.env.example Normal file
View File

@@ -0,0 +1,45 @@
# ============================================
# Database Configuration
# ============================================
DATABASE_URL="file:/app/prisma/dev.db"
# ============================================
# NextAuth Configuration
# ============================================
# Generate with: openssl rand -base64 32
NEXTAUTH_SECRET="change-this-to-a-random-string-at-least-32-characters-long"
# For local development: NEXTAUTH_URL="http://localhost:3000"
# For Docker/Production: NEXTAUTH_URL="http://YOUR_SERVER_IP:3000"
NEXTAUTH_URL="http://localhost:3000"
# ============================================
# Email Configuration (SMTP)
# ============================================
# Required for password reset and reminders
SMTP_HOST="smtp.gmail.com"
SMTP_PORT="587"
SMTP_USER="your-email@gmail.com"
SMTP_PASS="your-app-password"
SMTP_FROM="noreply@memento.app"
# ============================================
# AI Provider Configuration
# ============================================
# OpenAI (Optional - for GPT models)
OPENAI_API_KEY="sk-..."
# Ollama (Optional - for local models)
OLLAMA_API_URL="http://ollama:11434"
# ============================================
# Application Settings
# ============================================
NODE_ENV="production"
PORT="3000"
# ============================================
# Docker-Specific Settings
# ============================================
# These are usually set in docker-compose.yml
# Keep for local development reference

View File

@@ -0,0 +1,14 @@
description = "Activates the bmad-master agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'bmad-master' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/core/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/core/agents/bmad-master.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/core/agents/bmad-master.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the analyst agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'analyst' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/analyst.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/analyst.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the architect agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'architect' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/architect.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/architect.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the dev agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'dev' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/dev.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/dev.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the pm agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'pm' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/pm.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/pm.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the qa agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'qa' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/qa.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/qa.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the quick-flow-solo-dev agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'quick-flow-solo-dev' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/quick-flow-solo-dev.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/quick-flow-solo-dev.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the sm agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'sm' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/sm.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/sm.md
"""

View File

@@ -0,0 +1,14 @@
description = "Activates the tech-writer agent from the BMad Method."
prompt = """
CRITICAL: You are now the BMad 'tech-writer' agent.
PRE-FLIGHT CHECKLIST:
1. [ ] IMMEDIATE ACTION: Load and parse {project-root}/_bmad/bmm/config.yaml - store ALL config values in memory for use throughout the session.
2. [ ] IMMEDIATE ACTION: Read and internalize the full agent definition at {project-root}/_bmad/bmm/agents/tech-writer/tech-writer.md.
3. [ ] CONFIRM: The user's name from config is {user_name}.
Only after all checks are complete, greet the user by name and display the menu.
Acknowledge this checklist is complete in your first response.
AGENT DEFINITION: {project-root}/_bmad/bmm/agents/tech-writer/tech-writer.md
"""

Some files were not shown because too many files have changed in this diff Show More