Files
care-book-block-ultimate/specs/001-wordpress-plugin-para/tasks.md
Emanuel Almeida 38bb926742 chore: add spec-kit and standardize signatures
- Added GitHub spec-kit for development workflow
- Standardized file signatures to Descomplicar® format
- Updated development configuration

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-12 01:27:34 +01:00

10 KiB

Tasks: WordPress Plugin para Controlo Seguro de Agendamentos KiviCare

Input: Design documents from /specs/001-wordpress-plugin-para/
Prerequisites: plan.md, research.md, data-model.md, contracts/admin-api.md, quickstart.md
Project Type: WordPress Plugin (Single Project Structure)

Execution Flow (main)

1. Load plan.md from feature directory
   → Extract: PHP 7.4+, WordPress 5.0+, KiviCare 3.0.0+, MySQL 5.7+
   → Structure: Single WordPress plugin project
2. Load design documents:
   → data-model.md: wp_care_booking_restrictions entity → model tasks
   → contracts/admin-api.md: 4 AJAX endpoints → contract test tasks  
   → quickstart.md: 8 test scenarios → integration test tasks
3. Generate WordPress plugin tasks:
   → Setup: plugin structure, activation hooks, autoloader
   → Tests: AJAX contract tests, KiviCare integration tests
   → Core: database models, admin interface, frontend filtering
   → Integration: KiviCare hooks, cache system, CSS injection
   → Polish: validation tests, performance optimization
4. Applied task rules:
   → Different PHP files = mark [P] for parallel
   → Same file modifications = sequential (no [P])
   → Tests before implementation (WordPress TDD)
5. Numbered tasks sequentially (T001-T025)
6. WordPress-specific dependencies validated
7. SUCCESS (tasks ready for WordPress development)

Format: [ID] [P?] Description

  • [P]: Can run in parallel (different files, no dependencies)
  • All paths relative to WordPress plugin root directory

Path Conventions (WordPress Plugin Structure)

care-booking-block/                    # Plugin root
├── care-booking-block.php             # Main plugin file
├── includes/                          # Core classes
│   ├── class-care-booking-core.php
│   ├── class-database-handler.php
│   ├── class-admin-interface.php
│   └── class-kivicare-integration.php
├── admin/                             # Admin interface
│   ├── css/admin-style.css
│   ├── js/admin-script.js
│   └── partials/
├── public/                            # Frontend assets
│   ├── css/public-style.css
│   └── js/frontend-script.js
└── tests/                             # PHPUnit tests
    ├── unit/
    ├── integration/
    └── bootstrap.php

Phase 3.1: WordPress Plugin Setup

  • T001 Create WordPress plugin directory structure per WordPress standards
  • T002 Initialize main plugin file care-booking-block.php with headers and activation hooks
  • T003 [P] Configure PHPUnit for WordPress testing with WP_UnitTestCase
  • T004 [P] Set up WordPress coding standards and PHPCS configuration

Phase 3.2: Database & Models (TDD) ⚠️ MUST COMPLETE BEFORE 3.3

CRITICAL: These tests MUST be written and MUST FAIL before ANY implementation

  • T005 [P] Database schema test for wp_care_booking_restrictions table in tests/unit/test-database-schema.php
  • T006 [P] Restriction model CRUD test in tests/unit/test-restriction-model.php
  • T007 [P] WordPress cache integration test in tests/unit/test-cache-integration.php

Phase 3.3: Contract Tests (WordPress AJAX) ⚠️ MUST COMPLETE BEFORE 3.4

CRITICAL: These tests MUST be written and MUST FAIL before implementing AJAX handlers

  • T008 [P] Contract test wp_ajax_care_booking_get_restrictions in tests/unit/test-ajax-get-restrictions.php
  • T009 [P] Contract test wp_ajax_care_booking_toggle_restriction in tests/unit/test-ajax-toggle-restriction.php
  • T010 [P] Contract test wp_ajax_care_booking_bulk_update in tests/unit/test-ajax-bulk-update.php
  • T011 [P] Contract test wp_ajax_care_booking_get_entities in tests/unit/test-ajax-get-entities.php

Phase 3.4: KiviCare Integration Tests ⚠️ MUST COMPLETE BEFORE 3.5

CRITICAL: These tests MUST be written and MUST FAIL before implementing hooks

  • T012 [P] Integration test KiviCare doctor filtering in tests/integration/test-doctor-filtering.php
  • T013 [P] Integration test KiviCare service filtering in tests/integration/test-service-filtering.php
  • T014 [P] Integration test CSS injection on wp_head in tests/integration/test-css-injection.php

Phase 3.5: Core Implementation (ONLY after tests are failing)

  • T015 [P] Database handler class in includes/class-database-handler.php
  • T016 [P] Restriction model class in includes/class-restriction-model.php
  • T017 [P] Cache manager class in includes/class-cache-manager.php
  • T018 WordPress plugin activation hook with database table creation
  • T019 WordPress plugin deactivation hook with cleanup
  • T020 PSR-4 autoloader implementation in care-booking-block.php

Phase 3.6: Admin Interface Implementation

  • T021 Admin menu registration and capability checks
  • T022 [P] Admin page HTML template in admin/partials/admin-display.php
  • T023 [P] Admin CSS styling in admin/css/admin-style.css
  • T024 [P] Admin JavaScript for AJAX in admin/js/admin-script.js
  • T025 AJAX handler wp_ajax_care_booking_get_restrictions implementation
  • T026 AJAX handler wp_ajax_care_booking_toggle_restriction implementation
  • T027 AJAX handler wp_ajax_care_booking_bulk_update implementation
  • T028 AJAX handler wp_ajax_care_booking_get_entities implementation

Phase 3.7: Frontend Integration

  • T029 KiviCare doctor list filter hook implementation
  • T030 KiviCare service list filter hook implementation
  • T031 [P] Dynamic CSS generation for blocked elements
  • T032 [P] Frontend JavaScript for graceful degradation in public/js/frontend-script.js
  • T033 WordPress wp_head hook for CSS injection

Phase 3.8: Security & Validation

  • T034 WordPress nonce validation for all AJAX endpoints
  • T035 User capability checks (manage_options) for admin functions
  • T036 [P] Input sanitization using WordPress functions
  • T037 [P] Output escaping for XSS prevention
  • T038 SQL injection prevention with $wpdb->prepare()

Phase 3.9: Performance & Caching

  • T039 WordPress transients integration for restriction caching
  • T040 Cache invalidation on restriction changes
  • T041 [P] Database query optimization with proper indexes
  • T042 [P] Asset minification for production

Phase 3.10: Integration Validation (From quickstart.md)

  • T043 [P] End-to-end test: Block doctor from public booking in tests/integration/test-e2e-block-doctor.php
  • T044 [P] End-to-end test: Hide service for specific doctor in tests/integration/test-e2e-hide-service.php
  • T045 [P] End-to-end test: Frontend booking form validation in tests/integration/test-e2e-frontend-validation.php
  • T046 [P] Performance validation test (<5% overhead) in tests/integration/test-performance.php
  • T047 [P] Error handling test (KiviCare deactivated) in tests/integration/test-error-handling.php
  • T048 [P] Cache plugin compatibility test in tests/integration/test-cache-compatibility.php

Phase 3.11: Polish & Documentation

  • T049 [P] WordPress plugin readme.txt with installation instructions
  • T050 [P] Inline PHP documentation following WordPress standards
  • T051 Code cleanup and WordPress coding standards validation
  • T052 Final security audit and vulnerability testing

Dependencies

Critical WordPress TDD Flow:

  • Database/Model tests (T005-T007) before implementation (T015-T020)
  • Contract tests (T008-T011) before AJAX implementation (T025-T028)
  • Integration tests (T012-T014) before hook implementation (T029-T033)

Sequential Dependencies:

  • T001 blocks T002-T004 (structure before setup)
  • T015 blocks T025-T028 (database before AJAX)
  • T016 blocks T025-T028 (models before AJAX)
  • T018-T020 block T021-T024 (core before admin)
  • T025-T028 block T029-T033 (AJAX before hooks)
  • All implementation before validation (T043-T048)

WordPress Plugin Parallel Execution Examples

# Phase 3.2: Database tests (run together)
Task: "Database schema test for wp_care_booking_restrictions in tests/unit/test-database-schema.php"  
Task: "Restriction model CRUD test in tests/unit/test-restriction-model.php"
Task: "WordPress cache integration test in tests/unit/test-cache-integration.php"

# Phase 3.3: Contract tests (run together)  
Task: "Contract test wp_ajax_care_booking_get_restrictions in tests/unit/test-ajax-get-restrictions.php"
Task: "Contract test wp_ajax_care_booking_toggle_restriction in tests/unit/test-ajax-toggle-restriction.php"
Task: "Contract test wp_ajax_care_booking_bulk_update in tests/unit/test-ajax-bulk-update.php"
Task: "Contract test wp_ajax_care_booking_get_entities in tests/unit/test-ajax-get-entities.php"

# Phase 3.5: Core classes (run together)
Task: "Database handler class in includes/class-database-handler.php"
Task: "Restriction model class in includes/class-restriction-model.php"  
Task: "Cache manager class in includes/class-cache-manager.php"

WordPress-Specific Notes

  • Follow WordPress Plugin Development Guidelines
  • Use WordPress hooks and filters, never modify core files
  • All database operations use $wpdb with prepared statements
  • Admin interface uses WordPress native styling
  • Frontend integration respects theme compatibility
  • Security follows WordPress standards (nonces, capabilities, sanitization)
  • Performance targets: <5% overhead, <300ms AJAX responses

Validation Checklist

Applied during task execution

WordPress Plugin Requirements:

  • All AJAX endpoints have contract tests
  • All database entities have model tasks
  • All hooks have integration tests
  • All tests come before implementation (TDD)
  • Parallel tasks use different files
  • Each task specifies exact file path
  • WordPress coding standards enforced
  • Security best practices included
  • Performance requirements addressed
  • KiviCare compatibility maintained

Task Generation Sources:

  • From contracts/admin-api.md: 4 AJAX endpoints → 4 contract tests + 4 implementations
  • From data-model.md: wp_care_booking_restrictions → database + model tasks
  • From quickstart.md: 8 test scenarios → 6 integration validation tasks
  • From plan.md: WordPress plugin structure → setup and architecture tasks

Total Tasks: 52 WordPress plugin development tasks following TDD methodology