Skip to content
This repository was archived by the owner on May 29, 2026. It is now read-only.
This repository was archived by the owner on May 29, 2026. It is now read-only.

[OpenSpec] [planix] register-schemas #2

Description

@WilcoLouwerse

Replace the placeholder example schema in planix_register.json with 5 production-ready schemas (task, project, column, timeEntry, label) that fully encode the Planix data model. Add seed data per ADR-016 so fresh installs start with a working demo environment.

Specs

  • register-schemas — defines and registers the complete Planix data model in OpenRegister

Tasks

Schema Definitions

  • 1. Define task schema in planix_register.json
    • All properties from design.md included (title, description, status, priority, project, etc.)
    • required: ["title", "status"]
  • 2. Define project schema in planix_register.json
    • All properties included (title, description, status, color, icon, members, etc.)
    • required: ["title", "status"]
  • 3. Define column schema in planix_register.json
    • All properties included (title, project, order, wipLimit, color, type)
    • required: ["title", "project", "order"]
  • 4. Define timeEntry schema in planix_register.json
    • All properties included (task, user, duration, date, description)
    • required: ["task", "user", "duration", "date"]
  • 5. Define label schema in planix_register.json
    • All properties included (title, color, description)
    • required: ["title", "color"]

Seed Data

  • 6. Add seed data — Labels (5 objects)
    • Bug, Feature, Docs, Design, Infrastructure labels with correct colors
  • 7. Add seed data — Projects (3 objects)
    • client-portal-v2, infrastructure-migration, onboarding-automation
  • 8. Add seed data — Columns (12 objects — 4 per project)
    • To Do, In Progress, Review, Done per project with correct WIP limits
  • 9. Add seed data — Tasks (5 objects)
    • fix-login-redirect, design-dashboard-widgets, write-api-docs, k8s-namespace-setup, onboarding-n8n-workflow
  • 10. Add seed data — Time Entries (3 objects)
    • Two entries for fix-login-redirect, one for k8s-namespace-setup

Integration

  • 11. Bump register version from 0.1.0 to 0.2.0
    • Update info.version in planix_register.json
    • Update SettingsService.php if it holds a version constant
  • 12. Remove example schema reference from DeepLinkRegistrationListener
    • Remove or replace all references to slug "example"

Verification

  • 13. Verify import in local dev environment
    • All 5 schemas present in planix register
    • All seed objects created
    • Register version matches 0.2.0
  • 14. Verify idempotency — re-import does not create duplicates
  • 15. Verify schema validation
    • POST without title returns 400
    • POST with invalid status enum returns 400
  • 16. Run composer check:strict
    • All PHPCS, PHPMD, Psalm, PHPStan checks pass

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions