Skip to content

Conversation

@skywinder
Copy link
Collaborator

Summary

  • translate the category system technical specification into English
  • retain details on data model, priority rules, timeline rendering, API contracts, migration, and UX considerations

Testing

  • not run (documentation-only change)

Codex Task

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR translates the category system technical specification from another language into English. It provides a comprehensive design document for implementing a hierarchical category system that allows organizing objects (events, relationships, tasks, notes) with visual differentiation on a timeline interface.

Key Changes:

  • Added complete English translation of the category system specification
  • Documented data models, priority rules, timeline rendering logic, and API contracts
  • Included migration strategy and UX considerations

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

## Risks and Limitations
- Deep trees may require UI pagination/virtualization; cap depth (e.g., 5 levels) or use lazy loading.
- With multi-category objects, clearly explain which category became the leading one and why (priority → depth → order).
- Moving/deleting a category can break styling; prefer archiving and mass reassignment.
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The phrase "prefer archiving and mass reassignment" introduces "archiving" as a solution, but this functionality is not described elsewhere in the specification. Consider either adding a section about category archiving or clarifying what archiving means in this context.

Suggested change
- Moving/deleting a category can break styling; prefer archiving and mass reassignment.
- Moving/deleting a category can break styling; instead, mark categories as inactive ("archived") and mass-reassign affected objects before hiding them from standard views.

Copilot uses AI. Check for mistakes.
backgroundColor?: string, // HEX or rgba for fill/badge
opacity: number, // 0..1
icon?: { text?: string, url?: string },
pattern?: string, // e.g., hatching when combined
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The comment about "hatching when combined" is unclear. Consider adding more detail about what "combined" means in this context and how the pattern is applied when multiple categories are present on an object.

Suggested change
pattern?: string, // e.g., hatching when combined
pattern?: string, // Optional fill pattern (e.g., diagonal hatching) applied on top of the base color when an object has multiple categories to indicate a combined state

Copilot uses AI. Check for mistakes.

### Assigning categories to objects
- Update `objects.categories` during object create/edit.
- Limit assignment count (configurable, e.g., ≤10) for UX control.
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The magic number "10" for the assignment count limit is mentioned without justification. Consider adding a brief explanation of why this limit was chosen or clarifying that it's an example value that should be configurable based on UX needs.

Suggested change
- Limit assignment count (configurable, e.g., ≤10) for UX control.
- Limit assignment count (configurable, e.g., ≤10) for UX control; **10 is an example default and the actual limit should be tuned per product/UX requirements**.

Copilot uses AI. Check for mistakes.
- Child priority may slightly decrease relative to parent, but explicit values always override inheritance.

## UX Policies
- Limit simultaneously selected filters (e.g., ≤8) and show a counter.
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The magic number "8" for simultaneously selected filters is mentioned without justification. Consider adding a brief explanation of why this limit was chosen or clarifying that it's an example value that should be configurable based on UX testing.

Suggested change
- Limit simultaneously selected filters (e.g., ≤8) and show a counter.
- Limit simultaneously selected filters (e.g., start with ≤8 to avoid clutter) and show a counter; treat this as a configurable UX value to be validated via user testing.

Copilot uses AI. Check for mistakes.
- In admin UI, flag conflicts (two categories with the same priority/order) and suggest fixes.

## Risks and Limitations
- Deep trees may require UI pagination/virtualization; cap depth (e.g., 5 levels) or use lazy loading.
Copy link

Copilot AI Dec 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The magic number "5" for the depth cap is mentioned without justification. Consider adding a brief explanation of why this depth limit was chosen or whether it's based on performance considerations or UX research.

Suggested change
- Deep trees may require UI pagination/virtualization; cap depth (e.g., 5 levels) or use lazy loading.
- Deep trees may require UI pagination/virtualization; cap depth (e.g., 5 levels, based on typical screen real estate and breadcrumb usability) or use lazy loading, and revisit this limit based on UX/performance testing.

Copilot uses AI. Check for mistakes.
@skywinder skywinder changed the title Translate category system spec to English spec : category system Jan 5, 2026
skywinder and others added 3 commits January 6, 2026 02:50
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants