Implemented OpenSpec and created and updated its artifacts
This commit is contained in:
46
openspec/specs/opportunity-calendar/spec.md
Normal file
46
openspec/specs/opportunity-calendar/spec.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# opportunity-calendar Specification
|
||||
|
||||
## Purpose
|
||||
|
||||
Present the filtered opportunities by close date in a vertically navigable calendar bounded by the chosen Reference.
|
||||
|
||||
## Requirements
|
||||
|
||||
### Requirement: Calendar is a Reference-bounded monthly view
|
||||
Calendar SHALL show a continuous monthly view restricted to the selected Reference, with vertical scrolling and no month/week switch or previous/next navigation buttons. Switching between Overview and Calendar SHALL not fetch opportunities again.
|
||||
|
||||
#### Scenario: Reference spans multiple months
|
||||
- **WHEN** the user opens Calendar for a multi-month Reference
|
||||
- **THEN** all months in the Reference remain reachable by vertical scrolling, including months with no opportunities
|
||||
|
||||
### Requirement: Every daily opportunity has a card
|
||||
Each day SHALL show cards for all matching opportunities with a scrollable daily region when necessary. A hidden-event overflow link SHALL not replace the extra cards.
|
||||
|
||||
#### Scenario: Many opportunities close on one day
|
||||
- **WHEN** the day's cards exceed its available height
|
||||
- **THEN** the user can scroll within the day to reach all cards and the count reflects all matching opportunities
|
||||
|
||||
### Requirement: Initial positioning includes adjacent weeks
|
||||
When today is within Reference, Calendar SHALL position around the current week and adjust visible week sizing to include the preceding and following weeks where the Reference permits. Dates outside Reference SHALL remain excluded.
|
||||
|
||||
#### Scenario: Current week crosses a month boundary
|
||||
- **WHEN** Calendar positions around today and the three-week interval crosses into another month
|
||||
- **THEN** the rendered portions of those weeks are included in the positioning calculation
|
||||
|
||||
### Requirement: Dates retain their calendar-day meaning
|
||||
Calendar SHALL use `EffectiveDate` as a date-only close date without timezone shifts. Opportunities with missing or invalid close dates SHALL remain available in a separate list, and fiscal week labels SHALL use Sunday-start weeks and a June-start fiscal year.
|
||||
|
||||
#### Scenario: API date includes an offset
|
||||
- **WHEN** an opportunity close date contains a timezone offset
|
||||
- **THEN** its card retains the API calendar day instead of shifting to an adjacent day
|
||||
|
||||
#### Scenario: Missing close date
|
||||
- **WHEN** a filtered opportunity has no valid close date
|
||||
- **THEN** it is accessible through the undated-opportunities list
|
||||
|
||||
### Requirement: Calendar details are read-only
|
||||
Opportunity cards SHALL show stage information and open read-only details with the corresponding opportunity link. Calendar labels and controls SHALL be in English.
|
||||
|
||||
#### Scenario: User selects a card
|
||||
- **WHEN** an opportunity card is clicked
|
||||
- **THEN** its details are shown without changing the opportunity in Oracle
|
||||
Reference in New Issue
Block a user