KB: todo-app
← All workspaces3775 results — page 72 of 76
| Title | Domain | Type | Severity | Source | Freshness | Updated |
|---|---|---|---|---|---|---|
| Error Handling | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Server-Side
- **Laravel Exceptions**: Automatic handling
- **Validation**: Form request validation
- **Logging**: Laravel log channels
- **Debug Mode**: Spatie Ignition for development
### Client-Side
- **AJAX Errors**: Axios interceptors
- **Validation Feedback**: Bootstrap form validation
- **User Notifications**: Alert messages
|
||||||
| Scalability Considerations | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Current Scale
- **Target**: Single user
- **Concurrent Users**: 1
- **Data Volume**: Thousands of tasks/projects
- **Performance**: Adequate for personal use
### Growth Paths
**If needed for multiple users**:
1. Add user_id to all tables
2. Implement row-level security
3. Add authorization policies
4. Consider caching layer
5. Optimize queries with pagination
**If data grows significantly**:
1. Implement pagination everywhere
2. Add search indexes (Elasticsearch)
3. Archive old completed...
|
||||||
| Performance Considerations | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Query Optimization
**Eager Loading**:
```php
Task::with(['projects', 'contexts', 'zones'])->get();
```
Prevents N+1 query problems
**Global Scopes**:
Automatic filtering reduces result sets
**Indexes**:
Foreign keys and commonly queried columns indexed
### Caching Strategy
- **Current**: Minimal caching (database-driven)
- **Future**: Could add query caching for lookups
- **Session**: Stores user session data
### Asset Optimization
- **Vite**: Bundles and minifies JavaScript/CSS
- **P...
|
||||||
| Database Architecture | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Schema Design Principles
1. **Normalization**: Third normal form (3NF)
2. **Referential Integrity**: Foreign key constraints
3. **Soft Deletes**: `deleted_at` for reversible deletions
4. **Timestamps**: `created_at`, `updated_at` on all tables
5. **Pivot Tables**: For many-to-many relationships
### Migration Strategy
- **Evolutionary**: 94 migrations showing incremental development
- **Version Control**: All schema changes tracked
- **Rollback**: Down methods for reversibility
- **Indexin...
|
||||||
| Authentication & Authorization | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Authentication
- **Method**: Laravel Sanctum (session-based)
- **Storage**: Sessions in database or file
- **Middleware**: `auth` middleware protects routes
### Authorization
- **Level**: Controller-based (implicit)
- **Pattern**: Single-user assumption (no explicit permission checks)
- **Future**: Could add Policies/Gates for multi-user
|
||||||
| Frontend Architecture | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Template Structure
```
resources/views/
├── layouts/
│ └── app.blade.php # Master layout
├── tasks/
│ ├── index.blade.php # Task list
│ ├── create.blade.php # Task creation
│ └── edit.blade.php # Task editing
├── projects/
│ ├── index.blade.php
│ ├── create.blade.php
│ └── ...
└── [other entity views...]
```
### JavaScript Organization
```
resources/js/
├── app.js # Main entry point, Axios setup
├── bootstrap.js # Bootstrap f...
|
||||||
| Relationship Patterns | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### 1. Many-to-Many with Pivot Data
**Example**: Tasks ↔ Projects
```php
// Pivot table: project_task
// Pivot data: sort_order, is_parallel
$task->projects()->attach($projectId, [
'sort_order' => 1,
'is_parallel' => true
]);
```
**Usage**: Task can belong to multiple projects, projects can have multiple tasks
### 2. Hierarchical (Self-Referential)
**Example**: Projects containing Projects
```php
// project_project pivot table
$project->childProjects() // Child projects
$project->...
|
||||||
| Data Flow Patterns | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### 1. Standard CRUD Flow
```
User Request → Route → Controller → Model → Database
↓
Response ← View ← Controller ← Model
```
### 2. Service-Mediated Flow
```
User Request → Route → Controller → Service → Multiple Models → Database
↓
Response ← View ← Controller ← Service (aggregated data)
```
### 3. AJAX Enhancement Flow
```
User Action (JS) → Axios Request → Controller → Model → Database
...
|
||||||
| Component Architecture | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### Controllers (42 total - Post-Refactoring)
**Responsibility**: Handle HTTP requests, delegate to services, return responses
**Pattern**: Specialized controllers following Single Responsibility Principle
**Location**: `app/Http/Controllers/`
**Controller Organization by Domain**:
| Domain | Count | Controllers |
|--------|-------|-------------|
| **Task** | 9 | TaskController, TaskFilterController, TaskConversionController, TaskDependencyController, TaskDocumentController, TaskChunkContro...
|
||||||
| Layered Architecture (Post-Refactoring) | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
```
┌──────────────────────────────────────────────────────┐
│ Presentation Layer │
│ - Blade Templates (resources/views/) │
│ - JavaScript (resources/js/) + Axios │
│ - CSS (resources/css/) + Bootstrap 5 │
└─────────────────┬────────────────────────────────────┘
│
┌─────────────────▼────────────────────────────────────┐
│ Application Layer │
│ - Routes (route...
|
||||||
| Architectural Decisions | general/architecture | lesson | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
### 1. Monolithic Architecture
**Decision**: Single Laravel application containing all functionality
**Rationale**:
- Single-user application doesn't require microservices complexity
- Simpler deployment and maintenance
- Efficient database transactions across features
- Faster development iteration
**Trade-offs**:
- Limited horizontal scaling (not a concern for single-user)
- All features coupled in one codebase
- Benefits: Simplicity, maintainability, performance
### 2. Server-Side Renderi...
|
||||||
| Architectural Overview | general/architecture | pattern | info | 01-architecture.md | 75 | 2026-03-22 02:00:02 |
|
Body:
This application follows a **traditional Laravel MVC architecture** with **service layer abstraction** for complex business logic. It is a **monolithic, server-rendered web application** optimized for single-user personal productivity management.
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/playwright-disable.sh
```
If `.claude/playwright-disable.sh` does not exist, use `.claude/switch-mcp.sh none` as fallback.
2. Inform the user that Playwright will be disabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
| [Workflow] SKILL: Cleanup Skill | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Launches the codebase-janitor agent to scan for and clean up:
- Root-level .md/.txt/.sh/.php/.html files dumped by agents
- Tool output junk (phpstan results, modal outputs)
- Config variant clutter (phpstan-*.neon duplicates)
- Orphan directories (filedump/, .work-plans/, patches/)
- Coordination files at wrong locations
**Safety:** Dry-run by default, git-based revert for all actions, protected file allowlist.
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/switch-mcp.sh playwright
```
If `.claude/switch-mcp.sh` does not exist in the current project, check `/var/www/reportmaker/.claude/switch-mcp.sh` as fallback.
2. Inform the user that Playwright will be enabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/mysql-disable.sh
```
If `.claude/mysql-disable.sh` does not exist, use `.claude/switch-mcp.sh none` as fallback.
2. Inform the user that MySQL MCP will be disabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
| [Workflow] SKILL: When You CAN Skip Frontend Validation | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Only if ALL true:
1. Changes are PURELY backend (no views, routes, controllers)
2. No migrations affecting displayed data
3. No asset changes (JS/CSS)
4. No navigation/menu changes
If in doubt → ask for frontend validation.
|
||||||
| [Workflow] SKILL: Backend Changes Applied | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
[What you actually verified — syntax, tests, build]
FRONTEND VALIDATION REQUIRED
I can ONLY verify backend/build.
Frontend consequences are INVISIBLE to me.
YOU MUST TEST:
- [Affected Page](https://reportmaker.magitek.no/path) — Test [specific thing]
CHECKLIST:
- [ ] Pages load without errors
- [ ] No JavaScript console errors
- [ ] Data displays correctly
- [ ] Visual appearance correct
Current Status: Waiting for your validation
```
|
||||||
| [Workflow] SKILL: Required Conclusion Format | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```
|
||||||
| [Guardrail] SKILL: FORBIDDEN Conclusions | claude/commands/SKILL | gotcha | critical | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Never say: "Fixed!", "BUG CRUSHED", "Everything is working", "Ready to merge", "All done!"
These are lies — you cannot verify frontend.
|
||||||
| [Workflow] SKILL: What You CANNOT Verify | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
- Frontend display (you cannot see how pages render)
- JavaScript runtime behavior
- CSS/Layout visual regressions
- User experience issues
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/switch-mcp.sh serena
```
If `.claude/switch-mcp.sh` does not exist in the current project, check `/var/www/reportmaker/.claude/switch-mcp.sh` as fallback.
2. Inform the user that Serena will be enabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
| [Workflow] SKILL: Manual Fix (if needed) | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
chmod 644 path/to/file.php
```
|
||||||
| [Workflow] SKILL: Affected File Types | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
PHP, Blade, JavaScript, TypeScript, CSS, JSON, YAML, Markdown — everything in app/, resources/, config/, routes/, coordination/, .claude/.
|
||||||
| [Tool usage] SKILL: When to Run | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
| Situation | Action |
|-----------|--------|
| After Write tool creates file | fix-permissions.sh |
| Before git commit | fix-permissions.sh --check |
| "Permission denied" in logs | fix-permissions.sh |
| "Kunne ikke laste detaljer" | fix-permissions.sh |
|
||||||
| [Workflow] SKILL: MANDATORY After Creating Any File | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
./coordination/scripts/fix-permissions.sh
```
|
||||||
| [Workflow] SKILL: Rule | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
600 (rw-------) → must be 644 (rw-r--r--)
`www-data` is in group/others and MUST read PHP, Blade, JS, JSON files.
|
||||||
| [Workflow] SKILL: The Problem | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Claude Code Write tool creates files with **600 permissions** (owner-only).
`www-data` cannot read 600 files → "Permission denied", "Kunne ikke laste detaljer", Blade rendering errors.
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/switch-mcp.sh lighthouse
```
If `.claude/switch-mcp.sh` does not exist in the current project, check `/var/www/reportmaker/.claude/switch-mcp.sh` as fallback.
2. Inform the user that Lighthouse will be enabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
| [Guardrail] SKILL: Quick Reference | claude/commands/SKILL | gotcha | high | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```
BEFORE modifying ANY file:
1. git diff --name-only
2. If file listed → read the diff
3. PRESERVE existing uncommitted changes
4. Only ADD your changes on top
NEVER overwrite uncommitted changes
NEVER assume you have the latest version
```
|
||||||
| [Workflow] SKILL: Protected Sections | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
If spawner says "DO NOT TOUCH X" or marks sections as PROTECTED:
- Identify those sections in the file
- Preserve them exactly
- Only modify the OTHER parts
|
||||||
| [Workflow] SKILL: If File Has Uncommitted Changes | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
git diff <file_path> | head -50
```
Then:
1. PRESERVE existing changes in your modifications
2. ADD your changes on top — never overwrite
3. Report: "File has uncommitted changes from another session — merged"
|
||||||
| [Workflow] SKILL: Decision Matrix | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
| File in diff output? | Action |
|---------------------|--------|
| NO | Safe to modify |
| YES | Read the diff first, preserve changes |
|
||||||
| [Tool usage] SKILL: MANDATORY Before Modifying Any File | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
git diff --name-only
```
|
||||||
| [Workflow] SKILL: Why This Exists | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Parallel sessions modify files without committing. Spawned agents overwrite those changes, destroying work-in-progress.
|
||||||
| [Workflow] SKILL: If No Expert File Exists | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Note in response
2. Proceed with manual exploration
3. Consider creating handoff: `coordination/experts/handoffs/HANDOFF-{domain}-{date}-{agent}.md`
|
||||||
| [Workflow] SKILL: Expert File Content | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Each expert file contains:
- Quick reference (key files, classes, methods)
- Database schema
- Known gotchas and bugs
- Integration points
- Data flow diagrams
|
||||||
| [Tool usage] SKILL: Expert File Locations | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
All in: `coordination/experts/{domain}/`
Current domains:
- `security-audit-system` — security scanning, audit rules
- `findings-templates` — template system, findings management
- `findings-blocks-seo-migration` — block-based findings, SEO
- `web-discovery-verification` — website discovery, verification
- `page-crawler-system` — Puppeteer, web scraping
- `analysis-execution-infrastructure` — analysis runners, queues
- `backend-refactoring-patterns` — service patterns, DI
-...
|
||||||
| [Workflow] SKILL: Alternative Discovery Commands | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
# List all available expert domains
./coordination/scripts/discover-experts.sh --list
# Match by agent type
./coordination/scripts/discover-experts.sh --agent {your-agent-type}
```
|
||||||
| [Workflow] SKILL: Step 2: Fall back to discover-experts.sh (only if KB returns 0 results) | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
./coordination/scripts/discover-experts.sh --for-task "your task description"
```
Read ALL matched expert files BEFORE starting work. Token savings: 80-90% vs manual exploration.
|
||||||
| [Tool usage] SKILL: Step 1: Query KB (preferred — faster, fewer tokens) | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
# Free-text search (ALL workspaces with Laravel):
php artisan kb:query "TOPIC" --limit=5
# Structured lookup (specific file/domain/masterplan):
php artisan kb:context domain:customer-management --limit=5
php artisan kb:context file:app/Services/Example.php --limit=5
# Non-Laravel workspaces (magitek-ops, dam):
vendor/bin/kb query "TOPIC" --limit=5 --project-root=$(pwd)
```
KB returns relevant excerpts AND points to which expert files are most relevant.
**If KB returns useful results...
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/context7-disable.sh
```
If `.claude/context7-disable.sh` does not exist, use `.claude/switch-mcp.sh none` as fallback.
2. Inform the user that Context7 will be disabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
| [Tool usage] SKILL: Important Limitations | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
- KB gives **direction**, not complete solutions
- Always read the actual files for full context
- If KB returns 0 results → proceed without it (do not block on this)
- Max 5 results — more wastes tokens without benefit
- Skip KB if task is purely administrative (git commits, file moves, etc.)
|
||||||
| [Tool usage] SKILL: Topic Extraction Rules | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Extract 1-3 keywords from the task that represent the domain:
- "Fix the analysis queue job" → topic: `analysis queue`
- "Update Proxmox backup policy" → topic: `proxmox backup`
- "Add CSV export for customers" → topic: `customers export`
- "Debug NPM proxy issue" → topic: `npm proxy`
**Keep topics short and specific** — 2-3 words max.
|
||||||
| [Tool usage] SKILL: Decision Matrix | claude/commands/SKILL | api_note | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
| Workspace | Command |
|-----------|---------|
| `/var/www/reportmaker` | `php artisan kb:query "$TOPIC" --limit=5` |
| `/var/www/skymirror` | `php artisan kb:query "$TOPIC" --limit=5` |
| `/var/www/magitek-ops` | `vendor/bin/kb query "$TOPIC" --limit=5 --project-root=$(pwd)` |
| Any other | Check for `artisan`, fall back to `vendor/bin/kb` |
|
||||||
| [Workflow] SKILL: Step 3: Use results as background context | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Read the KB output before starting work. This gives you:
- Known gotchas and bugs for this domain
- Relevant expert files to read
- Patterns and lessons from previous work
|
||||||
| [Guardrail] SKILL: Step 2: Run KB query | claude/commands/SKILL | gotcha | critical | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
# Non-Laravel workspaces (magitek-ops, or any without artisan):
$PROJECT_ROOT/vendor/bin/kb query "$TOPIC" --limit=5 --project-root="$PROJECT_ROOT"
# Laravel workspaces (reportmaker, skymirror) — free-text search:
php $PROJECT_ROOT/artisan kb:query "$TOPIC" --limit=5
# Laravel workspaces — structured lookup (specific file/domain/masterplan):
# php $PROJECT_ROOT/artisan kb:context domain:$DOMAIN --limit=5
# php $PROJECT_ROOT/artisan kb:context file:$FILE_PATH --limit=5
```
**Workspace...
|
||||||
| [Workflow] SKILL: Step 1: Detect workspace root | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
```bash
# Use the current working directory as project root
PROJECT_ROOT=$(pwd)
```
|
||||||
| [Workflow] SKILL: At Task Start: Run KB Query | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:05 |
|
Body:
Before starting work, extract the main topic/domain from the task and run a KB search.
|
||||||
| [Workflow] SKILL: Instructions | claude/commands/SKILL | pattern | medium | SKILL.md | 70 | 2026-03-22 02:00:04 |
|
Body:
1. Resolve the project root (the current working directory) and run:
```bash
.claude/switch-mcp.sh css
```
If `.claude/switch-mcp.sh` does not exist in the current project, check `/var/www/reportmaker/.claude/switch-mcp.sh` as fallback.
2. Inform the user that CSS MCP will be enabled on next restart.
3. Ask the user if they want to restart now with `/restart` or `/exit`.
|
||||||
Ingestion History
Loading…