@cakemail-org/cakemail-cli 1.5.0 β 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/settings.local.json +12 -0
- package/.env.example +40 -0
- package/.env.test.example +45 -0
- package/CHANGELOG.md +1031 -0
- package/README.md +319 -15
- package/audit-formats.js +128 -0
- package/cakemail.rb +20 -0
- package/dist/cli.js +27 -10
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +16 -6
- package/dist/client.js.map +1 -1
- package/dist/commands/account.js +1 -1
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/attributes.js +1 -1
- package/dist/commands/attributes.js.map +1 -1
- package/dist/commands/campaigns.d.ts.map +1 -1
- package/dist/commands/campaigns.js +103 -8
- package/dist/commands/campaigns.js.map +1 -1
- package/dist/commands/config.d.ts.map +1 -1
- package/dist/commands/config.js +63 -4
- package/dist/commands/config.js.map +1 -1
- package/dist/commands/contacts.d.ts.map +1 -1
- package/dist/commands/contacts.js +91 -12
- package/dist/commands/contacts.js.map +1 -1
- package/dist/commands/emails.js +1 -1
- package/dist/commands/emails.js.map +1 -1
- package/dist/commands/interests.d.ts +5 -0
- package/dist/commands/interests.d.ts.map +1 -0
- package/dist/commands/interests.js +172 -0
- package/dist/commands/interests.js.map +1 -0
- package/dist/commands/lists.d.ts.map +1 -1
- package/dist/commands/lists.js +6 -8
- package/dist/commands/lists.js.map +1 -1
- package/dist/commands/logs.d.ts +5 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +237 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/reports.js +1 -1
- package/dist/commands/reports.js.map +1 -1
- package/dist/commands/segments.js +1 -1
- package/dist/commands/segments.js.map +1 -1
- package/dist/commands/senders.d.ts.map +1 -1
- package/dist/commands/senders.js +11 -8
- package/dist/commands/senders.js.map +1 -1
- package/dist/commands/suppressed.js +1 -1
- package/dist/commands/suppressed.js.map +1 -1
- package/dist/commands/tags.d.ts +5 -0
- package/dist/commands/tags.d.ts.map +1 -0
- package/dist/commands/tags.js +124 -0
- package/dist/commands/tags.js.map +1 -0
- package/dist/commands/templates.js +1 -1
- package/dist/commands/templates.js.map +1 -1
- package/dist/commands/transactional-templates.d.ts +5 -0
- package/dist/commands/transactional-templates.d.ts.map +1 -0
- package/dist/commands/transactional-templates.js +354 -0
- package/dist/commands/transactional-templates.js.map +1 -0
- package/dist/commands/webhooks.js +1 -1
- package/dist/commands/webhooks.js.map +1 -1
- package/dist/utils/auth.d.ts +8 -1
- package/dist/utils/auth.d.ts.map +1 -1
- package/dist/utils/auth.js +39 -11
- package/dist/utils/auth.js.map +1 -1
- package/dist/utils/config-file.d.ts +7 -0
- package/dist/utils/config-file.d.ts.map +1 -1
- package/dist/utils/config-file.js +15 -0
- package/dist/utils/config-file.js.map +1 -1
- package/dist/utils/config.d.ts +2 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +12 -4
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/errors.js +1 -1
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/list-defaults.d.ts +33 -0
- package/dist/utils/list-defaults.d.ts.map +1 -0
- package/dist/utils/list-defaults.js +52 -0
- package/dist/utils/list-defaults.js.map +1 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +36 -13
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/progress.d.ts.map +1 -1
- package/dist/utils/progress.js +32 -4
- package/dist/utils/progress.js.map +1 -1
- package/dist/utils/spinner.d.ts +17 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +43 -0
- package/dist/utils/spinner.js.map +1 -0
- package/docs/DOCUMENTATION-STANDARD.md +1068 -0
- package/docs/README.md +161 -0
- package/docs/developer/ARCHITECTURE.md +516 -0
- package/docs/developer/AUTH.md +204 -0
- package/docs/developer/CONTRIBUTING.md +227 -0
- package/docs/developer/DOCUMENTATION_SUMMARY.md +346 -0
- package/docs/developer/PROJECT_INDEX.md +365 -0
- package/docs/planning/API_COVERAGE.md +1045 -0
- package/docs/planning/BACKLOG.md +1159 -0
- package/docs/planning/PROFILE_SYSTEM_TASKS.md +287 -0
- package/docs/planning/UX_IMPLEMENTATION_PLAN.md +691 -0
- package/docs/planning/archive/RELEASE_CHECKLIST_v1.3.0.md +332 -0
- package/docs/planning/archive/RELEASE_v1.3.0.md +428 -0
- package/docs/planning/archive/cakemail-cli-ux-improvements.md +438 -0
- package/docs/planning/cakemail-profile-system-plan.md +1121 -0
- package/docs/testing/AI_USER_SIMULATION_DESIGN.md +1342 -0
- package/docs/testing/KENOGAMI_BIDIRECTIONAL_FLOW.md +1517 -0
- package/docs/testing/KENOGAMI_TRUTH_RECONCILIATION_SYSTEM.md +1369 -0
- package/docs/user-manual/.obsidian/app.json +1 -0
- package/docs/user-manual/.obsidian/appearance.json +1 -0
- package/docs/user-manual/.obsidian/core-plugins.json +33 -0
- package/docs/user-manual/.obsidian/workspace.json +167 -0
- package/docs/user-manual/01-getting-started/01-installation.md +214 -0
- package/docs/user-manual/01-getting-started/02-quick-start.md +432 -0
- package/docs/user-manual/01-getting-started/03-authentication.md +448 -0
- package/docs/user-manual/01-getting-started/04-configuration.md +430 -0
- package/docs/user-manual/01-getting-started/05-output-formats.md +447 -0
- package/docs/user-manual/02-core-concepts/01-accounts.md +514 -0
- package/docs/user-manual/02-core-concepts/02-profile-system.md +771 -0
- package/docs/user-manual/02-core-concepts/03-smart-defaults.md +485 -0
- package/docs/user-manual/02-core-concepts/04-authentication-methods.md +435 -0
- package/docs/user-manual/02-core-concepts/05-pagination-filtering.md +600 -0
- package/docs/user-manual/02-core-concepts/06-error-handling.md +718 -0
- package/docs/user-manual/02-core-concepts/07-api-coverage.md +483 -0
- package/docs/user-manual/03-email-operations/01-senders.md +490 -0
- package/docs/user-manual/03-email-operations/02-templates.md +444 -0
- package/docs/user-manual/03-email-operations/03-transactional-emails.md +706 -0
- package/docs/user-manual/03-email-operations/04-email-tracking.md +407 -0
- package/docs/user-manual/04-campaign-management/01-campaigns-basics.md +394 -0
- package/docs/user-manual/04-campaign-management/02-campaign-scheduling.md +630 -0
- package/docs/user-manual/04-campaign-management/03-campaign-testing.md +997 -0
- package/docs/user-manual/04-campaign-management/04-campaign-lifecycle.md +709 -0
- package/docs/user-manual/04-campaign-management/05-campaign-links.md +934 -0
- package/docs/user-manual/05-contact-management/01-lists.md +836 -0
- package/docs/user-manual/05-contact-management/02-contacts.md +1035 -0
- package/docs/user-manual/05-contact-management/03-custom-attributes.md +788 -0
- package/docs/user-manual/05-contact-management/04-segments.md +1028 -0
- package/docs/user-manual/05-contact-management/05-contact-import-export.md +1031 -0
- package/docs/user-manual/06-analytics-reporting/01-campaign-analytics.md +867 -0
- package/docs/user-manual/06-analytics-reporting/02-account-reports.md +227 -0
- package/docs/user-manual/07-integrations/01-webhooks-integration.md +259 -0
- package/docs/user-manual/07-integrations/02-automation.md +326 -0
- package/docs/user-manual/08-advanced-usage/01-scripting-patterns.md +672 -0
- package/docs/user-manual/08-advanced-usage/02-bulk-operations.md +932 -0
- package/docs/user-manual/08-advanced-usage/03-ci-cd-integration.md +892 -0
- package/docs/user-manual/08-advanced-usage/04-performance-optimization.md +766 -0
- package/docs/user-manual/09-command-reference/01-config.md +776 -0
- package/docs/user-manual/09-command-reference/02-account.md +652 -0
- package/docs/user-manual/09-command-reference/03-lists.md +958 -0
- package/docs/user-manual/09-command-reference/04-contacts.md +1408 -0
- package/docs/user-manual/09-command-reference/05-attributes.md +617 -0
- package/docs/user-manual/09-command-reference/06-segments.md +894 -0
- package/docs/user-manual/09-command-reference/07-senders.md +803 -0
- package/docs/user-manual/09-command-reference/08-templates.md +818 -0
- package/docs/user-manual/09-command-reference/09-campaigns.md +1250 -0
- package/docs/user-manual/09-command-reference/10-emails.md +807 -0
- package/docs/user-manual/09-command-reference/11-reports.md +1135 -0
- package/docs/user-manual/09-command-reference/12-webhooks.md +773 -0
- package/docs/user-manual/09-command-reference/13-suppressed.md +797 -0
- package/docs/user-manual/09-command-reference/14-interests.md +630 -0
- package/docs/user-manual/09-command-reference/15-tags.md +584 -0
- package/docs/user-manual/09-command-reference/16-logs.md +656 -0
- package/docs/user-manual/09-command-reference/17-transactional-templates.md +850 -0
- package/docs/user-manual/10-troubleshooting/01-common-errors.md +457 -0
- package/docs/user-manual/10-troubleshooting/02-authentication-issues.md +558 -0
- package/docs/user-manual/10-troubleshooting/03-connection-problems.md +634 -0
- package/docs/user-manual/10-troubleshooting/04-debugging.md +725 -0
- package/docs/user-manual/11-appendix/04-faq.md +484 -0
- package/docs/user-manual/11-appendix/05-glossary.md +250 -0
- package/docs/user-manual/README.md +0 -0
- package/package.json +13 -47
- package/src/cli.ts +125 -0
- package/src/client.ts +16 -0
- package/src/commands/account.ts +267 -0
- package/src/commands/accounts.ts +78 -0
- package/src/commands/actions.ts +249 -0
- package/src/commands/attributes.ts +139 -0
- package/src/commands/campaign-blueprints.ts +106 -0
- package/src/commands/campaigns.ts +469 -0
- package/src/commands/config.ts +77 -0
- package/src/commands/contacts.ts +612 -0
- package/src/commands/custom-attributes.ts +127 -0
- package/src/commands/dkims.ts +117 -0
- package/src/commands/domains.ts +82 -0
- package/src/commands/email-apis.ts +569 -0
- package/src/commands/emails.ts +197 -0
- package/src/commands/forms.ts +283 -0
- package/src/commands/interests.ts +155 -0
- package/src/commands/links.ts +38 -0
- package/src/commands/lists.ts +406 -0
- package/src/commands/logos.ts +71 -0
- package/src/commands/logs.ts +386 -0
- package/src/commands/reports.ts +306 -0
- package/src/commands/segments.ts +158 -0
- package/src/commands/senders.ts +204 -0
- package/src/commands/sub-accounts.ts +271 -0
- package/src/commands/suppressed-emails.ts +234 -0
- package/src/commands/suppressed.ts +198 -0
- package/src/commands/system-emails.ts +85 -0
- package/src/commands/tags.ts +146 -0
- package/src/commands/tasks.ts +116 -0
- package/src/commands/templates.ts +189 -0
- package/src/commands/tokens.ts +83 -0
- package/src/commands/transactional-emails.ts +374 -0
- package/src/commands/transactional-templates.ts +385 -0
- package/src/commands/users.ts +506 -0
- package/src/commands/webhooks.ts +172 -0
- package/src/commands/workflow-blueprints.ts +123 -0
- package/src/commands/workflows.ts +265 -0
- package/src/types/profile.ts +93 -0
- package/src/utils/auth.ts +272 -0
- package/src/utils/config-file.ts +96 -0
- package/src/utils/config.ts +134 -0
- package/src/utils/confirm.ts +32 -0
- package/src/utils/defaults.ts +99 -0
- package/src/utils/errors.ts +116 -0
- package/src/utils/interactive.ts +91 -0
- package/src/utils/list-defaults.ts +74 -0
- package/src/utils/output.ts +190 -0
- package/src/utils/progress.ts +320 -0
- package/src/utils/spinner.ts +22 -0
- package/tests/IMPLEMENTATION_STATUS.md +258 -0
- package/tests/PTY_SETUP.md +118 -0
- package/tests/PTY_TESTING_GUIDE.md +507 -0
- package/tests/README.md +244 -0
- package/tests/fixtures/api-responses/campaigns.json +34 -0
- package/tests/fixtures/test-config.json +13 -0
- package/tests/helpers/cli-runner.ts +128 -0
- package/tests/helpers/mock-server.ts +301 -0
- package/tests/helpers/pty-runner.ts +181 -0
- package/tests/integration/campaigns-real-api.test.ts +196 -0
- package/tests/integration/setup-integration.ts +50 -0
- package/tests/pty/campaigns.test.ts +241 -0
- package/tests/setup.ts +34 -0
- package/tsconfig.json +15 -0
- package/vitest.config.ts +28 -0
|
@@ -0,0 +1,1159 @@
|
|
|
1
|
+
# Cakemail CLI - Master Backlog
|
|
2
|
+
|
|
3
|
+
**Last Updated:** 2025-10-14
|
|
4
|
+
**Current Version:** 1.6.0
|
|
5
|
+
**Project Status:** Active Development
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## π Overview
|
|
10
|
+
|
|
11
|
+
This document tracks all planned work for the Cakemail CLI across multiple dimensions:
|
|
12
|
+
- **UX Improvements** (v1.4.0 - v1.7.0)
|
|
13
|
+
- **API Coverage Expansion** (v1.3.0 - v1.6.0+)
|
|
14
|
+
- **Profile System** (v1.5.0)
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## β
Recently Completed
|
|
19
|
+
|
|
20
|
+
### v1.6.0 - Testing Infrastructure + Bug Fixes β
SHIPPED (2025-10-14)
|
|
21
|
+
|
|
22
|
+
**Status:** β
COMPLETED AND SHIPPED
|
|
23
|
+
**Test Coverage:** 0% β 6% (with infrastructure for 100%)
|
|
24
|
+
|
|
25
|
+
#### Testing Infrastructure Added
|
|
26
|
+
- [x] **Vitest Test Framework** - Modern test runner with coverage reporting
|
|
27
|
+
- [x] **Integration Tests** - 5 passing tests against real Cakemail API
|
|
28
|
+
- [x] **PTY Test Infrastructure** - Simulate real terminal sessions with colors/spinners
|
|
29
|
+
- [x] **Mock HTTP Server** - Express-based server for isolated subprocess testing
|
|
30
|
+
- [x] **Test Documentation** - Complete guides (PTY_TESTING_GUIDE.md, PTY_SETUP.md)
|
|
31
|
+
- [x] **Test Scripts** - npm test, test:integration, test:pty, test:coverage, test:ci
|
|
32
|
+
|
|
33
|
+
#### Bug Fixes
|
|
34
|
+
- [x] **Pagination** - Support new SDK pagination format (nested pagination object)
|
|
35
|
+
- [x] **Table Rendering** - Fix column width calculation to handle undefined values
|
|
36
|
+
|
|
37
|
+
#### Key Features
|
|
38
|
+
- **Real API Testing** - Integration tests validate against live Cakemail API
|
|
39
|
+
- **Terminal Simulation** - PTY tests verify exact user experience (colors, spinners, prompts)
|
|
40
|
+
- **Mock Server** - Express server enables realistic subprocess testing without external dependencies
|
|
41
|
+
- **CI/CD Ready** - Full test suite for automated testing pipelines
|
|
42
|
+
- **Node Version Aware** - Clear documentation for Node 18-20 requirement for PTY tests
|
|
43
|
+
|
|
44
|
+
**Impact:** Established comprehensive testing infrastructure for ongoing quality assurance
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
### v1.6.0 - API Coverage Expansion β
SHIPPED (2025-10-11)
|
|
49
|
+
|
|
50
|
+
**Status:** β
COMPLETED AND SHIPPED
|
|
51
|
+
**Coverage:** 108 β 136 commands (46% β 59% coverage)
|
|
52
|
+
|
|
53
|
+
#### New Command Groups (30 commands total)
|
|
54
|
+
- [x] Tags (5 commands) - List, show, create, update, delete tags
|
|
55
|
+
- [x] Interests (5 commands) - List, show, create, update, delete interests
|
|
56
|
+
- [x] Contact Interests (2 commands) - Add/remove interests from contacts (bulk operations)
|
|
57
|
+
- [x] Campaign Enhancements (3 commands) - Show HTML, stats, extended filtering
|
|
58
|
+
- [x] Activity Logs (3 commands) - Campaign logs, list logs, show log entry
|
|
59
|
+
- [x] Transactional Templates (12 commands) - Full CRUD + send/test/render operations
|
|
60
|
+
|
|
61
|
+
#### Key Features
|
|
62
|
+
- **Tags Management** - Create and assign tags to contacts
|
|
63
|
+
- **Interests Management** - Track subscriber interests with bulk operations
|
|
64
|
+
- **Transactional Templates** - Complete template lifecycle with variable support
|
|
65
|
+
- **Activity Logs** - Campaign and list activity tracking with filtering
|
|
66
|
+
- **Campaign Stats** - Direct access to campaign statistics
|
|
67
|
+
- **Auto-Detection** - List ID auto-detection for transactional templates
|
|
68
|
+
|
|
69
|
+
**Impact:** Major API coverage increase, reaching 59% of total Cakemail API (136/232 commands)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
### v1.5.0 - Profile System β
SHIPPED (2025-10-11)
|
|
74
|
+
|
|
75
|
+
**Status:** β
COMPLETED AND SHIPPED
|
|
76
|
+
|
|
77
|
+
#### Profile System Implementation (All Phases Complete)
|
|
78
|
+
- [x] **Phase 1: Foundation** - Profile schema, config storage, profile selection
|
|
79
|
+
- [x] **Phase 2: Output Adaptation** - Color schemes, date formats, error messages, tips
|
|
80
|
+
- [x] **Phase 3: Behavior Adaptation** - Interactive prompts, confirmations, progress indicators
|
|
81
|
+
- [x] **Phase 4: Polish & Testing** - `--profile` flag, `--batch` flag, preview command
|
|
82
|
+
|
|
83
|
+
#### New Profile Management Commands (6 commands)
|
|
84
|
+
- [x] `config profile` - Show current profile and settings
|
|
85
|
+
- [x] `config profile-set <type>` - Switch profiles (developer|marketer|balanced)
|
|
86
|
+
- [x] `config preview <type>` - Preview profile without switching
|
|
87
|
+
- [x] `config set <key> <value>` - Customize individual settings
|
|
88
|
+
- [x] `config reset` - Reset to profile defaults
|
|
89
|
+
- [x] `config show` - Show complete configuration
|
|
90
|
+
|
|
91
|
+
#### Three User Profiles
|
|
92
|
+
- [x] **Developer Profile** - JSON, minimal colors, no prompts, no confirmations
|
|
93
|
+
- [x] **Marketer Profile** - Compact, rich colors, prompts, confirmations, tips
|
|
94
|
+
- [x] **Balanced Profile** - Table, moderate colors, auto-detect (default)
|
|
95
|
+
|
|
96
|
+
#### Interactive Features
|
|
97
|
+
- [x] Smart environment detection (TTY, CI, batch mode)
|
|
98
|
+
- [x] Interactive campaign creation with list/sender selection
|
|
99
|
+
- [x] Interactive list creation with name prompt
|
|
100
|
+
- [x] Profile-aware confirmations for destructive operations
|
|
101
|
+
- [x] Profile-aware progress indicators
|
|
102
|
+
- [x] Auto-detection of single resources
|
|
103
|
+
|
|
104
|
+
#### Configuration System
|
|
105
|
+
- [x] Config stored in `~/.cakemail/config.json`
|
|
106
|
+
- [x] Automatic migration from `.env`
|
|
107
|
+
- [x] Profile selection in auth flow
|
|
108
|
+
- [x] Lazy evaluation for runtime overrides
|
|
109
|
+
- [x] Configuration priority: CLI flags > Env vars > Overrides > Profile > Defaults
|
|
110
|
+
|
|
111
|
+
#### Global Flags
|
|
112
|
+
- [x] `--profile <type>` - Override profile for single command
|
|
113
|
+
- [x] `--batch` - Explicit scripting mode (disable all prompts)
|
|
114
|
+
|
|
115
|
+
**Documentation:**
|
|
116
|
+
- [x] Complete CHANGELOG entry with examples
|
|
117
|
+
- [x] Updated README with Profile System section
|
|
118
|
+
- [x] Interactive usage examples
|
|
119
|
+
- [x] Profile management commands documented
|
|
120
|
+
|
|
121
|
+
**Impact:** Transformative UX improvement - CLI now adapts to user type (developer vs marketer)
|
|
122
|
+
|
|
123
|
+
---
|
|
124
|
+
|
|
125
|
+
### v1.4.0 - Seamless Authentication & Enhanced Output β
SHIPPED (2025-10-11)
|
|
126
|
+
|
|
127
|
+
### Seamless Authentication & Multi-Tenant Support
|
|
128
|
+
- [x] Interactive authentication prompts
|
|
129
|
+
- [x] Multi-tenant account management (5 commands)
|
|
130
|
+
- [x] Account context management with `.env` persistence
|
|
131
|
+
- [x] Account commands: show, list, use, test, logout
|
|
132
|
+
|
|
133
|
+
### Progress Indicators
|
|
134
|
+
- [x] Visual progress bars for bulk operations
|
|
135
|
+
- [x] Polling progress with elapsed time
|
|
136
|
+
- [x] Multi-step progress indicators
|
|
137
|
+
- [x] `--no-wait` flag for async operations
|
|
138
|
+
|
|
139
|
+
### Enhanced Error Handling
|
|
140
|
+
- [x] User-friendly error messages with context
|
|
141
|
+
- [x] HTTP status code mapping (400, 401, 403, 404, 409, 422, 429, 500, 502, 503)
|
|
142
|
+
- [x] Pre-flight validation helpers
|
|
143
|
+
- [x] Colored output with actionable help text
|
|
144
|
+
|
|
145
|
+
### Interactive Confirmations
|
|
146
|
+
- [x] Interactive Y/N prompts for all delete operations (13 commands)
|
|
147
|
+
- [x] Visual danger indicators (β )
|
|
148
|
+
- [x] Context-specific details about consequences
|
|
149
|
+
- [x] `--force` flag for automation
|
|
150
|
+
|
|
151
|
+
### Smart Defaults
|
|
152
|
+
- [x] Auto-detect list ID when only one exists (14 commands)
|
|
153
|
+
- [x] Auto-detect sender ID when only one confirmed sender exists (1 command)
|
|
154
|
+
- [x] Session caching with 5-minute TTL
|
|
155
|
+
- [x] Helpful suggestions when multiple resources exist
|
|
156
|
+
|
|
157
|
+
### Enhanced Output Formatting β¨ NEW
|
|
158
|
+
- [x] JSON syntax highlighting with color-coded keys/values
|
|
159
|
+
- [x] Color-coded status badges with emoji indicators
|
|
160
|
+
- [x] Relative time formatting for dates
|
|
161
|
+
- [x] Number formatting with thousands separators
|
|
162
|
+
- [x] Enhanced pagination display with navigation hints
|
|
163
|
+
- [x] Better null/empty value handling
|
|
164
|
+
- [x] Smart field truncation
|
|
165
|
+
- [x] Bold column headers and improved table styling
|
|
166
|
+
- [x] Compact mode with status badges inline
|
|
167
|
+
- [x] Warning method added to OutputFormatter
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## π― Current Focus
|
|
172
|
+
|
|
173
|
+
### Active Work
|
|
174
|
+
- **Status:** Just completed Testing Infrastructure + Bug Fixes (v1.6.0) β
|
|
175
|
+
- **Next Decision:** Choose next feature from backlog
|
|
176
|
+
|
|
177
|
+
### What We Just Shipped (v1.6.0)
|
|
178
|
+
- β
Comprehensive testing infrastructure (Vitest, integration tests, PTY tests)
|
|
179
|
+
- β
Bug fixes for pagination and table rendering
|
|
180
|
+
- β
30 new commands across 6 feature areas (from earlier in v1.6.0)
|
|
181
|
+
- β
Tags and Interests management
|
|
182
|
+
- β
Transactional templates with full lifecycle
|
|
183
|
+
- β
Activity logs and campaign enhancements
|
|
184
|
+
- β
59% API coverage achieved (136/232 commands)
|
|
185
|
+
- β
6% test coverage established with room to grow to 100%
|
|
186
|
+
|
|
187
|
+
### Quick Wins Available (< 3 days each)
|
|
188
|
+
- Natural date parsing (2-3 days)
|
|
189
|
+
- Email preview (1-2 days)
|
|
190
|
+
- ~~Campaign enhancements~~ β
v1.6.0
|
|
191
|
+
- ~~Tags commands~~ β
v1.6.0
|
|
192
|
+
- ~~Interests commands~~ β
v1.6.0
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## π Backlog by Category
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## 1οΈβ£ UX Improvements (v1.4.0 - v1.7.0)
|
|
201
|
+
|
|
202
|
+
Based on: `UX_IMPLEMENTATION_PLAN.md`
|
|
203
|
+
|
|
204
|
+
### v1.4.0 - Critical UX Foundations β
IN PROGRESS
|
|
205
|
+
|
|
206
|
+
**Status:** ~90% Complete
|
|
207
|
+
**Remaining Items:**
|
|
208
|
+
|
|
209
|
+
#### β Interactive Auth Setup
|
|
210
|
+
**Priority:** CRITICAL
|
|
211
|
+
**Effort:** Medium (3-5 days)
|
|
212
|
+
**Status:** NOT STARTED (Auth works via .env, needs interactive setup)
|
|
213
|
+
|
|
214
|
+
**What:**
|
|
215
|
+
- `cakemail auth setup` - Interactive credential configuration
|
|
216
|
+
- `cakemail auth status` - Show current auth status
|
|
217
|
+
- `cakemail auth logout` - Clear stored credentials
|
|
218
|
+
- Config file: `~/.cakemail/config.json` with encryption
|
|
219
|
+
|
|
220
|
+
**Implementation:**
|
|
221
|
+
- Create `src/commands/auth.ts`
|
|
222
|
+
- Create `src/utils/config-manager.ts`
|
|
223
|
+
- Modify `src/utils/config.ts`
|
|
224
|
+
- Libraries: Already have `inquirer`, need config encryption
|
|
225
|
+
|
|
226
|
+
**Why Not Done:**
|
|
227
|
+
- Current `.env` approach works
|
|
228
|
+
- Interactive setup is nice-to-have, not critical
|
|
229
|
+
- May be superseded by profile system
|
|
230
|
+
|
|
231
|
+
**Decision Needed:** Skip or implement before profile system?
|
|
232
|
+
|
|
233
|
+
#### β Natural Date Parsing
|
|
234
|
+
**Priority:** HIGH
|
|
235
|
+
**Effort:** Low (2-3 days)
|
|
236
|
+
**Status:** NOT STARTED
|
|
237
|
+
|
|
238
|
+
**What:**
|
|
239
|
+
- Accept "tomorrow 10am", "next monday", "+2 days"
|
|
240
|
+
- Use `chrono-node` for parsing
|
|
241
|
+
- Show confirmation: "Parsed 'tomorrow 10am' as Oct 12, 2025 10:00 AM"
|
|
242
|
+
|
|
243
|
+
**Files:**
|
|
244
|
+
- Create `src/utils/date-parser.ts`
|
|
245
|
+
- Modify `src/commands/campaigns.ts` (schedule, reschedule)
|
|
246
|
+
- Modify `src/commands/reports.ts` (date filtering)
|
|
247
|
+
|
|
248
|
+
**Libraries:**
|
|
249
|
+
- `chrono-node` - Natural language date parsing
|
|
250
|
+
- `date-fns` - Date manipulation (already have)
|
|
251
|
+
|
|
252
|
+
**Decision Needed:** Include in v1.4.0 or defer to v1.5.0?
|
|
253
|
+
|
|
254
|
+
#### β Quickstart Wizard
|
|
255
|
+
**Priority:** CRITICAL
|
|
256
|
+
**Effort:** High (5-7 days)
|
|
257
|
+
**Status:** NOT STARTED
|
|
258
|
+
|
|
259
|
+
**What:**
|
|
260
|
+
- `cakemail quickstart` - Guided onboarding to send first email
|
|
261
|
+
- Steps: Check auth β Get/create sender β Get/create list β Add test contact β Send test email
|
|
262
|
+
- Interactive wizard with progress indicators
|
|
263
|
+
|
|
264
|
+
**Files:**
|
|
265
|
+
- Create `src/commands/quickstart.ts`
|
|
266
|
+
- Create `src/utils/wizard-helpers.ts`
|
|
267
|
+
|
|
268
|
+
**Dependencies:**
|
|
269
|
+
- Interactive auth setup (or can skip with .env)
|
|
270
|
+
- Smart defaults (β
already have)
|
|
271
|
+
|
|
272
|
+
**Decision Needed:** Critical for onboarding, but requires auth setup first?
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
### v1.5.0 - Enhanced Usability
|
|
277
|
+
|
|
278
|
+
**Status:** NOT STARTED
|
|
279
|
+
**Estimated:** 2-3 weeks
|
|
280
|
+
|
|
281
|
+
#### Email Preview
|
|
282
|
+
**Priority:** HIGH
|
|
283
|
+
**Effort:** Low (1-2 days)
|
|
284
|
+
|
|
285
|
+
**What:**
|
|
286
|
+
- `cakemail campaigns preview <id>` - Open campaign in browser
|
|
287
|
+
- `cakemail templates preview <id>` - Open template in browser
|
|
288
|
+
- Use `open` library to launch browser
|
|
289
|
+
|
|
290
|
+
**Files:**
|
|
291
|
+
- Create `src/utils/preview.ts`
|
|
292
|
+
- Modify campaign/template commands
|
|
293
|
+
|
|
294
|
+
#### Interactive Mode for Missing Fields
|
|
295
|
+
**Priority:** HIGH
|
|
296
|
+
**Effort:** Medium (3-5 days)
|
|
297
|
+
|
|
298
|
+
**What:**
|
|
299
|
+
- If required field missing, prompt interactively (marketer profile)
|
|
300
|
+
- Example: `cakemail campaigns create` β prompts for name, list, sender
|
|
301
|
+
- Skip in non-TTY environments
|
|
302
|
+
|
|
303
|
+
**Files:**
|
|
304
|
+
- Create `src/middleware/interactive-prompts.ts`
|
|
305
|
+
- Modify all command files
|
|
306
|
+
|
|
307
|
+
#### Confirmation for Dangerous Operations β
DONE
|
|
308
|
+
- [x] Implemented in v1.4.0
|
|
309
|
+
|
|
310
|
+
#### Rich Table Output β
DONE
|
|
311
|
+
- [x] Implemented in v1.4.0
|
|
312
|
+
|
|
313
|
+
#### Search/Find Commands
|
|
314
|
+
**Priority:** MEDIUM
|
|
315
|
+
**Effort:** Medium (3-4 days)
|
|
316
|
+
|
|
317
|
+
**What:**
|
|
318
|
+
- `cakemail campaigns find <query>` - Fuzzy search campaigns
|
|
319
|
+
- `cakemail templates find <query>` - Fuzzy search templates
|
|
320
|
+
- `cakemail senders find <query>` - Fuzzy search senders
|
|
321
|
+
|
|
322
|
+
**Libraries:**
|
|
323
|
+
- `fuzzysort` - Fuzzy search
|
|
324
|
+
|
|
325
|
+
#### Smart File Handling
|
|
326
|
+
**Priority:** LOW
|
|
327
|
+
**Effort:** Medium (2-3 days)
|
|
328
|
+
|
|
329
|
+
**What:**
|
|
330
|
+
- Auto-detect HTML/text from files
|
|
331
|
+
- Parse HTML with `cheerio`
|
|
332
|
+
- Validate HTML before upload
|
|
333
|
+
|
|
334
|
+
**Files:**
|
|
335
|
+
- Create `src/utils/file-parser.ts`
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
### v1.6.0 - Power User Features
|
|
340
|
+
|
|
341
|
+
**Status:** NOT STARTED
|
|
342
|
+
**Estimated:** 2-3 weeks
|
|
343
|
+
|
|
344
|
+
#### Configuration Management
|
|
345
|
+
**Priority:** HIGH
|
|
346
|
+
**Effort:** Medium (3-4 days)
|
|
347
|
+
|
|
348
|
+
**What:**
|
|
349
|
+
- `cakemail config list` - Show all config
|
|
350
|
+
- `cakemail config get <key>` - Get value
|
|
351
|
+
- `cakemail config set <key> <value>` - Set value
|
|
352
|
+
- `cakemail config reset` - Reset to defaults
|
|
353
|
+
|
|
354
|
+
**Files:**
|
|
355
|
+
- Create `src/commands/config.ts`
|
|
356
|
+
- Expand `src/utils/config-manager.ts`
|
|
357
|
+
|
|
358
|
+
#### Shell Completion
|
|
359
|
+
**Priority:** MEDIUM
|
|
360
|
+
**Effort:** Medium (2-3 days)
|
|
361
|
+
|
|
362
|
+
**What:**
|
|
363
|
+
- `cakemail completion bash` - Generate bash completion
|
|
364
|
+
- `cakemail completion zsh` - Generate zsh completion
|
|
365
|
+
- Auto-complete commands, flags, IDs
|
|
366
|
+
|
|
367
|
+
**Libraries:**
|
|
368
|
+
- `omelette` or built-in completion
|
|
369
|
+
|
|
370
|
+
#### Bulk Operations Enhancement
|
|
371
|
+
**Priority:** MEDIUM
|
|
372
|
+
**Effort:** Medium (3-4 days)
|
|
373
|
+
|
|
374
|
+
**What:**
|
|
375
|
+
- Progress bars for imports/exports
|
|
376
|
+
- Batch API calls
|
|
377
|
+
- Resume interrupted operations
|
|
378
|
+
|
|
379
|
+
**Libraries:**
|
|
380
|
+
- `cli-progress`
|
|
381
|
+
|
|
382
|
+
#### Dry Run Mode
|
|
383
|
+
**Priority:** MEDIUM
|
|
384
|
+
**Effort:** Medium (2-3 days)
|
|
385
|
+
|
|
386
|
+
**What:**
|
|
387
|
+
- `--dry-run` flag for all write operations
|
|
388
|
+
- Show what would happen without executing
|
|
389
|
+
|
|
390
|
+
**Files:**
|
|
391
|
+
- Create `src/middleware/dry-run.ts`
|
|
392
|
+
|
|
393
|
+
#### Aliases
|
|
394
|
+
**Priority:** LOW
|
|
395
|
+
**Effort:** Low (1-2 days)
|
|
396
|
+
|
|
397
|
+
**What:**
|
|
398
|
+
- `cakemail c list` β `cakemail campaigns list`
|
|
399
|
+
- `cakemail ls` β `cakemail lists list`
|
|
400
|
+
- Custom user aliases
|
|
401
|
+
|
|
402
|
+
**Files:**
|
|
403
|
+
- Create `src/commands/alias.ts`
|
|
404
|
+
|
|
405
|
+
#### Template Scaffolding
|
|
406
|
+
**Priority:** LOW
|
|
407
|
+
**Effort:** Medium (2-3 days)
|
|
408
|
+
|
|
409
|
+
**What:**
|
|
410
|
+
- `cakemail init` - Generate project structure
|
|
411
|
+
- Template library with common patterns
|
|
412
|
+
|
|
413
|
+
**Files:**
|
|
414
|
+
- Create `src/commands/init.ts`
|
|
415
|
+
|
|
416
|
+
---
|
|
417
|
+
|
|
418
|
+
### v1.7.0+ - Nice to Have
|
|
419
|
+
|
|
420
|
+
**Status:** NOT STARTED
|
|
421
|
+
**Estimated:** Ongoing
|
|
422
|
+
|
|
423
|
+
- Enhanced help with examples
|
|
424
|
+
- Improved default output
|
|
425
|
+
- Better scripting support (exit codes, quiet mode, verbose mode)
|
|
426
|
+
- Update notifications
|
|
427
|
+
- `--watch` mode for real-time updates
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## 2οΈβ£ API Coverage Expansion (v1.3.0 - v1.7.0+)
|
|
432
|
+
|
|
433
|
+
Based on: `API_COVERAGE.md`
|
|
434
|
+
|
|
435
|
+
**Current Coverage:** 136 / 232 commands (59%)
|
|
436
|
+
**Target v1.7.0:** 180+ / 232 commands (78%+)
|
|
437
|
+
|
|
438
|
+
### v1.3.0 - Analytics & Data Operations β
COMPLETED
|
|
439
|
+
|
|
440
|
+
**Status:** β
SHIPPED (2025-10-11)
|
|
441
|
+
**Added:** 47 new commands (56 β 103 commands)
|
|
442
|
+
|
|
443
|
+
- [x] Reports & Analytics (12 commands)
|
|
444
|
+
- [x] Contact Import/Export (9 commands)
|
|
445
|
+
- [x] Segments (6 commands)
|
|
446
|
+
- [x] Custom Attributes (4 commands)
|
|
447
|
+
- [x] Suppression List (7 commands)
|
|
448
|
+
- [x] Extended List Operations (7 commands)
|
|
449
|
+
- [x] Extended Email API (2 commands)
|
|
450
|
+
|
|
451
|
+
**Coverage:** 24% β 44% (103/232 commands)
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
### v1.6.0 - API Coverage Expansion β
COMPLETED (2025-10-11)
|
|
456
|
+
|
|
457
|
+
**Status:** β
SHIPPED
|
|
458
|
+
**API Coverage:** 46% β 59% (108 β 136 commands)
|
|
459
|
+
|
|
460
|
+
**Completed:**
|
|
461
|
+
- [x] Account management (5 commands) - show, list, use, test, logout [v1.4.0]
|
|
462
|
+
- [x] Tags (5 commands) - list, show, create, update, delete [v1.6.0]
|
|
463
|
+
- [x] Interests (5 commands) - list, show, create, update, delete [v1.6.0]
|
|
464
|
+
- [x] Contact Interests (2 commands) - add-interests, remove-interests [v1.6.0]
|
|
465
|
+
- [x] Transactional Templates (12 commands) - Full CRUD + send/test/render [v1.6.0]
|
|
466
|
+
- [x] Activity Logs (3 commands) - campaign, list, show [v1.6.0]
|
|
467
|
+
- [x] Campaign Enhancements (3 commands) - show-html, stats, extended filtering [v1.6.0]
|
|
468
|
+
|
|
469
|
+
**Original Target:** 140 commands (60% coverage)
|
|
470
|
+
**Actual Achievement:** 136 commands (59% coverage) - 96% of target
|
|
471
|
+
**Gap:** 4 commands remaining to reach 60%
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
### v1.7.0+ - Enterprise & Automation
|
|
476
|
+
|
|
477
|
+
**Status:** NOT STARTED
|
|
478
|
+
**Target:** 180+ / 232 commands (78%+ coverage)
|
|
479
|
+
**Gap:** 44+ commands to implement
|
|
480
|
+
|
|
481
|
+
#### Workflows (18 commands)
|
|
482
|
+
**Priority:** MEDIUM
|
|
483
|
+
**Effort:** High (10-15 days)
|
|
484
|
+
|
|
485
|
+
```bash
|
|
486
|
+
# Workflow management
|
|
487
|
+
cakemail workflows list
|
|
488
|
+
cakemail workflows create --name "Welcome Series"
|
|
489
|
+
cakemail workflows update <id>
|
|
490
|
+
cakemail workflows delete <id>
|
|
491
|
+
cakemail workflows activate <id>
|
|
492
|
+
cakemail workflows deactivate <id>
|
|
493
|
+
cakemail workflows lock <id>
|
|
494
|
+
cakemail workflows unlock <id>
|
|
495
|
+
|
|
496
|
+
# Workflow actions
|
|
497
|
+
cakemail workflows actions <workflow-id>
|
|
498
|
+
cakemail workflows action-create <workflow-id>
|
|
499
|
+
cakemail workflows action-update <workflow-id> <action-id>
|
|
500
|
+
cakemail workflows action-delete <workflow-id> <action-id>
|
|
501
|
+
cakemail workflows action-test <workflow-id> <action-id>
|
|
502
|
+
|
|
503
|
+
# Workflow analytics
|
|
504
|
+
cakemail workflows report <workflow-id> <action-id>
|
|
505
|
+
cakemail workflows logs <workflow-id> <action-id>
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
#### Account & User Management (13 commands) - PARTIALLY DONE
|
|
509
|
+
**Priority:** MEDIUM
|
|
510
|
+
**Effort:** Medium (6-8 days)
|
|
511
|
+
**Status:** 5/13 done (account commands)
|
|
512
|
+
|
|
513
|
+
**Remaining:**
|
|
514
|
+
```bash
|
|
515
|
+
# Account management (5 done, 3 remaining)
|
|
516
|
+
cakemail account update
|
|
517
|
+
cakemail account convert-to-org
|
|
518
|
+
|
|
519
|
+
# Sub-accounts (8 remaining)
|
|
520
|
+
cakemail sub-accounts list
|
|
521
|
+
cakemail sub-accounts create
|
|
522
|
+
cakemail sub-accounts suspend <id>
|
|
523
|
+
|
|
524
|
+
# Users (8 remaining)
|
|
525
|
+
cakemail users list
|
|
526
|
+
cakemail users create
|
|
527
|
+
cakemail users update <id>
|
|
528
|
+
cakemail users delete <id>
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
#### Domain & DKIM (7 commands)
|
|
532
|
+
**Priority:** MEDIUM
|
|
533
|
+
**Effort:** Medium (4-5 days)
|
|
534
|
+
|
|
535
|
+
```bash
|
|
536
|
+
cakemail domains show
|
|
537
|
+
cakemail domains update
|
|
538
|
+
cakemail domains validate
|
|
539
|
+
cakemail dkim list
|
|
540
|
+
cakemail dkim create --domain example.com
|
|
541
|
+
cakemail dkim delete <id>
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
#### Forms (5 commands)
|
|
545
|
+
**Priority:** LOW
|
|
546
|
+
**Effort:** Low (2-3 days)
|
|
547
|
+
|
|
548
|
+
```bash
|
|
549
|
+
cakemail forms list
|
|
550
|
+
cakemail forms create
|
|
551
|
+
cakemail forms update <id>
|
|
552
|
+
cakemail forms delete <id>
|
|
553
|
+
cakemail forms analytics <id>
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
#### Remaining Low-Priority Services
|
|
557
|
+
- Tasks (3 commands)
|
|
558
|
+
- System Emails (3 commands)
|
|
559
|
+
- Links (1 command)
|
|
560
|
+
- Logos (2 commands)
|
|
561
|
+
- Token (3 commands)
|
|
562
|
+
- Relay Management (6 commands)
|
|
563
|
+
|
|
564
|
+
---
|
|
565
|
+
|
|
566
|
+
## 3οΈβ£ Profile System (v1.5.0) β
COMPLETED
|
|
567
|
+
|
|
568
|
+
Based on: `cakemail-profile-system-plan.md` and `PROFILE_SYSTEM_TASKS.md`
|
|
569
|
+
|
|
570
|
+
**Status:** β
SHIPPED (2025-10-11)
|
|
571
|
+
**Actual Time:** Completed in single session
|
|
572
|
+
**Priority:** HIGH (transformative for UX)
|
|
573
|
+
|
|
574
|
+
### Phase 1: Foundation β
COMPLETED
|
|
575
|
+
- [x] Create profile schema and types
|
|
576
|
+
- [x] Implement config file storage (~/.cakemail/config.json)
|
|
577
|
+
- [x] Add profile selection to auth setup
|
|
578
|
+
- [x] Create profile loading mechanism
|
|
579
|
+
- [x] Add profile management commands
|
|
580
|
+
- [x] Update getConfig() to support profiles
|
|
581
|
+
- [x] Testing & Documentation
|
|
582
|
+
|
|
583
|
+
### Phase 2: Output Adaptation β
COMPLETED
|
|
584
|
+
- [x] Profile-aware output formatter
|
|
585
|
+
- [x] Implement color schemes (minimal/rich/moderate/none)
|
|
586
|
+
- [x] Profile-specific date formatting (iso8601/friendly/relative)
|
|
587
|
+
- [x] Profile-aware error messages (technical vs friendly)
|
|
588
|
+
- [x] Tips and hints system
|
|
589
|
+
- [x] Update all commands to use profile-aware output
|
|
590
|
+
- [x] Testing & Documentation
|
|
591
|
+
|
|
592
|
+
### Phase 3: Behavior Adaptation β
COMPLETED
|
|
593
|
+
- [x] Interactive prompt system with environment detection
|
|
594
|
+
- [x] Make confirmations profile-aware
|
|
595
|
+
- [x] Add interactive prompts to campaigns create
|
|
596
|
+
- [x] Add interactive prompts to lists create
|
|
597
|
+
- [x] Progress indicators profile awareness
|
|
598
|
+
- [x] Scripting mode detection (TTY, CI, batch)
|
|
599
|
+
- [x] Testing interactive mode
|
|
600
|
+
- [x] Documentation
|
|
601
|
+
|
|
602
|
+
### Phase 4: Polish & Testing β
COMPLETED
|
|
603
|
+
- [x] Add --profile override flag
|
|
604
|
+
- [x] Add --batch flag
|
|
605
|
+
- [x] Profile preview command
|
|
606
|
+
- [x] No migration needed (pre-public release)
|
|
607
|
+
- [x] Build verification
|
|
608
|
+
- [x] Documentation overhaul (CHANGELOG, README)
|
|
609
|
+
|
|
610
|
+
**Total Actual Time:** Single development session (faster than estimated)
|
|
611
|
+
|
|
612
|
+
**Profiles Implemented:**
|
|
613
|
+
- **Developer:** JSON output, no interactivity, minimal colors, technical errors, ISO8601 dates
|
|
614
|
+
- **Marketer:** Compact output, rich colors, interactive prompts, friendly errors, relative dates
|
|
615
|
+
- **Balanced:** Table output, moderate colors, auto interactivity, balanced errors, friendly dates (default)
|
|
616
|
+
|
|
617
|
+
**Files Created:**
|
|
618
|
+
- `src/types/profile.ts` - Profile type system
|
|
619
|
+
- `src/utils/config-file.ts` - Config file management
|
|
620
|
+
- `src/utils/interactive.ts` - Interactive prompt system
|
|
621
|
+
- `src/commands/config.ts` - Profile management commands
|
|
622
|
+
|
|
623
|
+
**Files Enhanced:**
|
|
624
|
+
- `src/cli.ts` - Profile flags and integration
|
|
625
|
+
- `src/utils/config.ts` - Profile loading
|
|
626
|
+
- `src/utils/output.ts` - Profile-aware output
|
|
627
|
+
- `src/utils/errors.ts` - Profile-aware errors
|
|
628
|
+
- `src/utils/confirm.ts` - Profile-aware confirmations
|
|
629
|
+
- `src/commands/campaigns.ts` - Interactive create
|
|
630
|
+
- `src/commands/lists.ts` - Interactive create
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
634
|
+
## π Priority Matrix
|
|
635
|
+
|
|
636
|
+
Based on **Impact Γ Urgency** scoring:
|
|
637
|
+
|
|
638
|
+
### π΄ CRITICAL (Do Now)
|
|
639
|
+
1. ~~**Complete v1.6.0 API Coverage**~~ β
COMPLETED (30 commands added)
|
|
640
|
+
2. **Quickstart Wizard** - Critical for new user onboarding (currently no guided flow)
|
|
641
|
+
|
|
642
|
+
### π‘ HIGH (Do Next)
|
|
643
|
+
3. ~~**Profile System**~~ β
COMPLETED (v1.5.0)
|
|
644
|
+
4. **Natural Date Parsing** - Reduces friction significantly
|
|
645
|
+
5. **Email Preview** - Frequently requested feature
|
|
646
|
+
6. **Interactive Auth Setup** - Makes onboarding smoother
|
|
647
|
+
|
|
648
|
+
### π’ MEDIUM (Do Later)
|
|
649
|
+
7. **v1.7.0 API Coverage** - Workflows, Domain/DKIM (enterprise features)
|
|
650
|
+
8. **Search/Find Commands** - Nice quality of life improvement
|
|
651
|
+
9. ~~**Configuration Management**~~ β
COMPLETED (v1.5.0 Profile System)
|
|
652
|
+
10. **Shell Completion** - Developer convenience
|
|
653
|
+
|
|
654
|
+
### βͺ LOW (Nice to Have)
|
|
655
|
+
11. **Template Scaffolding**
|
|
656
|
+
12. **Aliases**
|
|
657
|
+
13. **Forms Management**
|
|
658
|
+
14. **Update Notifications**
|
|
659
|
+
|
|
660
|
+
---
|
|
661
|
+
|
|
662
|
+
## π Effort Estimates
|
|
663
|
+
|
|
664
|
+
### By Category
|
|
665
|
+
|
|
666
|
+
**UX Improvements:**
|
|
667
|
+
- v1.4.0 remaining: ~15-20 days
|
|
668
|
+
- v1.5.0: ~15-20 days
|
|
669
|
+
- v1.6.0: ~15-20 days
|
|
670
|
+
- v1.7.0+: Ongoing
|
|
671
|
+
- **Profile System:** ~70-80 days (14-16 weeks)
|
|
672
|
+
|
|
673
|
+
**API Coverage:**
|
|
674
|
+
- ~~v1.6.0 (30 commands)~~ β
COMPLETED
|
|
675
|
+
- v1.7.0+ (44+ commands): ~25-30 days
|
|
676
|
+
|
|
677
|
+
**Total Backlog:** ~100-150 days (20-30 weeks of full-time work)
|
|
678
|
+
|
|
679
|
+
### Quick Wins (< 3 days each)
|
|
680
|
+
- Natural date parsing (2-3 days)
|
|
681
|
+
- Email preview (1-2 days)
|
|
682
|
+
- ~~Campaign enhancements~~ β
v1.6.0
|
|
683
|
+
- ~~Tags commands~~ β
v1.6.0
|
|
684
|
+
- ~~Interests commands~~ β
v1.6.0
|
|
685
|
+
- Aliases (1-2 days)
|
|
686
|
+
|
|
687
|
+
### Medium Effort (3-7 days each)
|
|
688
|
+
- Interactive auth setup (3-5 days)
|
|
689
|
+
- ~~Interactive mode for missing fields~~ β
v1.5.0
|
|
690
|
+
- Search/find commands (3-4 days)
|
|
691
|
+
- ~~Configuration management~~ β
v1.5.0
|
|
692
|
+
- ~~Transactional templates~~ β
v1.6.0
|
|
693
|
+
- ~~Campaign logs~~ β
v1.6.0
|
|
694
|
+
- Smart file handling (2-3 days)
|
|
695
|
+
|
|
696
|
+
### Large Effort (> 7 days each)
|
|
697
|
+
- Quickstart wizard (5-7 days)
|
|
698
|
+
- ~~Profile system~~ β
v1.5.0 (70-80 days / 14-16 weeks)
|
|
699
|
+
- Workflows (10-15 days)
|
|
700
|
+
- Bulk operations enhancement (3-4 days base, ongoing)
|
|
701
|
+
|
|
702
|
+
---
|
|
703
|
+
|
|
704
|
+
## π― Recommended Roadmap
|
|
705
|
+
|
|
706
|
+
### Current Progress (v1.6.0)
|
|
707
|
+
β
**Completed:**
|
|
708
|
+
- v1.5.0 Profile System (3 profiles, interactive prompts, configuration management)
|
|
709
|
+
- v1.6.0 API Coverage (30 commands: tags, interests, transactional templates, logs)
|
|
710
|
+
- 136/232 commands = 59% API coverage
|
|
711
|
+
|
|
712
|
+
### Option A: Quick UX Wins + v1.7.0 API Coverage (Recommended)
|
|
713
|
+
|
|
714
|
+
**Timeline:** 3-4 months
|
|
715
|
+
|
|
716
|
+
1. **Quick UX Wins** (2-3 weeks)
|
|
717
|
+
- Natural date parsing
|
|
718
|
+
- Email preview
|
|
719
|
+
- Search/find commands
|
|
720
|
+
- Interactive auth setup
|
|
721
|
+
|
|
722
|
+
2. **v1.7.0 API Coverage** (8-10 weeks)
|
|
723
|
+
- Workflows (18 commands)
|
|
724
|
+
- Account/User Management (13 commands)
|
|
725
|
+
- Domain/DKIM (7 commands)
|
|
726
|
+
- Forms (5 commands)
|
|
727
|
+
- Target: 136 β 180+ commands (59% β 78% coverage)
|
|
728
|
+
|
|
729
|
+
3. **Polish & Ship** (2-3 weeks)
|
|
730
|
+
- Shell completion
|
|
731
|
+
- Final UX polish
|
|
732
|
+
- Documentation
|
|
733
|
+
|
|
734
|
+
**Result:** v1.7.0 with 78% API coverage + enhanced UX
|
|
735
|
+
|
|
736
|
+
---
|
|
737
|
+
|
|
738
|
+
### Option B: Enterprise Features First
|
|
739
|
+
|
|
740
|
+
**Timeline:** 3-4 months
|
|
741
|
+
|
|
742
|
+
1. **v1.7.0 API Coverage** (8-10 weeks)
|
|
743
|
+
- Focus on enterprise features (Workflows, Account/User, Domain/DKIM)
|
|
744
|
+
- 136 β 180+ commands
|
|
745
|
+
|
|
746
|
+
2. **Quick UX Wins** (2-3 weeks)
|
|
747
|
+
- Natural date parsing
|
|
748
|
+
- Email preview
|
|
749
|
+
- Interactive auth
|
|
750
|
+
|
|
751
|
+
3. **Advanced Features** (4-5 weeks)
|
|
752
|
+
- Search/find commands
|
|
753
|
+
- Shell completion
|
|
754
|
+
- Bulk operations enhancement
|
|
755
|
+
|
|
756
|
+
**Result:** v1.7.0 with 78% API coverage, defer advanced UX
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
### Option C: UX Excellence Path
|
|
761
|
+
|
|
762
|
+
**Timeline:** 2-3 months
|
|
763
|
+
|
|
764
|
+
1. **Complete UX Suite** (4-5 weeks)
|
|
765
|
+
- Quickstart wizard
|
|
766
|
+
- Natural date parsing
|
|
767
|
+
- Email preview
|
|
768
|
+
- Interactive auth setup
|
|
769
|
+
- Search/find commands
|
|
770
|
+
- Smart file handling
|
|
771
|
+
|
|
772
|
+
2. **Developer Experience** (2-3 weeks)
|
|
773
|
+
- Shell completion
|
|
774
|
+
- Aliases
|
|
775
|
+
- Dry run mode
|
|
776
|
+
- Better scripting support
|
|
777
|
+
|
|
778
|
+
3. **Defer API Coverage** to v1.7.0
|
|
779
|
+
|
|
780
|
+
**Result:** v1.7.0 with exceptional UX, 59% API coverage (defer to v1.8.0)
|
|
781
|
+
|
|
782
|
+
---
|
|
783
|
+
|
|
784
|
+
## π‘ Decision Framework
|
|
785
|
+
|
|
786
|
+
### When to Choose API Coverage
|
|
787
|
+
- Users asking for specific missing features
|
|
788
|
+
- Need enterprise features (workflows, domains)
|
|
789
|
+
- Want higher headline number (78% vs 60%)
|
|
790
|
+
- Have specific integration requirements
|
|
791
|
+
|
|
792
|
+
### When to Choose Profile System
|
|
793
|
+
- Want to dramatically improve UX for non-developers
|
|
794
|
+
- New user adoption is priority
|
|
795
|
+
- Want to differentiate from other CLIs
|
|
796
|
+
- Have time for transformative work
|
|
797
|
+
|
|
798
|
+
### When to Choose Quick Wins
|
|
799
|
+
- Need to ship something fast
|
|
800
|
+
- Want to validate direction
|
|
801
|
+
- Building momentum
|
|
802
|
+
- Testing user response
|
|
803
|
+
|
|
804
|
+
---
|
|
805
|
+
|
|
806
|
+
## π Notes
|
|
807
|
+
|
|
808
|
+
**Current State (v1.6.0):**
|
|
809
|
+
- 136 commands implemented (59% API coverage)
|
|
810
|
+
- β
Complete Profile System with 3 profiles
|
|
811
|
+
- β
Interactive prompts and confirmations
|
|
812
|
+
- β
Tags, Interests, Transactional Templates, Activity Logs
|
|
813
|
+
- Strong UX foundation: auth, errors, smart defaults, enhanced output
|
|
814
|
+
- Missing: Quickstart wizard, natural date parsing, advanced API coverage
|
|
815
|
+
|
|
816
|
+
**Key Decisions Needed:**
|
|
817
|
+
1. Focus on UX wins (Option C) or push to 78% API coverage (Option A/B)?
|
|
818
|
+
2. Implement quickstart wizard now or after v1.7.0?
|
|
819
|
+
3. Interactive auth setup - priority or skip?
|
|
820
|
+
4. Natural date parsing - high priority or defer?
|
|
821
|
+
|
|
822
|
+
**Dependencies:**
|
|
823
|
+
- ~~Profile system~~ β
COMPLETED (v1.5.0)
|
|
824
|
+
- Quickstart wizard works better with interactive auth setup
|
|
825
|
+
- Natural date parsing is independent
|
|
826
|
+
- v1.7.0 API coverage doesn't block UX features
|
|
827
|
+
|
|
828
|
+
---
|
|
829
|
+
|
|
830
|
+
## π How to Use This Backlog
|
|
831
|
+
|
|
832
|
+
### For Planning
|
|
833
|
+
- Review priority matrix
|
|
834
|
+
- Choose option (A/B/C) based on goals
|
|
835
|
+
- Break down into 2-week sprints
|
|
836
|
+
- Track progress weekly
|
|
837
|
+
|
|
838
|
+
### For Tracking
|
|
839
|
+
- Mark items [x] when complete
|
|
840
|
+
- Update estimates as you learn
|
|
841
|
+
- Add new items as discovered
|
|
842
|
+
- Review quarterly
|
|
843
|
+
|
|
844
|
+
### For Communication
|
|
845
|
+
- Show stakeholders the roadmap
|
|
846
|
+
- Explain trade-offs clearly
|
|
847
|
+
- Get feedback on priorities
|
|
848
|
+
- Share progress updates
|
|
849
|
+
|
|
850
|
+
---
|
|
851
|
+
|
|
852
|
+
## π Documentation & Marketing (Post-Implementation)
|
|
853
|
+
|
|
854
|
+
**Every completed feature requires:**
|
|
855
|
+
|
|
856
|
+
### 1. Technical Documentation
|
|
857
|
+
- [ ] Update README.md with new commands
|
|
858
|
+
- [ ] Add examples to command help text
|
|
859
|
+
- [ ] Update ARCHITECTURE.md if patterns change
|
|
860
|
+
- [ ] Add to API_COVERAGE.md if API feature
|
|
861
|
+
|
|
862
|
+
### 2. User Documentation
|
|
863
|
+
- [ ] Write user guide section
|
|
864
|
+
- [ ] Add how-to examples
|
|
865
|
+
- [ ] Create troubleshooting section if needed
|
|
866
|
+
- [ ] Add FAQ entries for common questions
|
|
867
|
+
|
|
868
|
+
### 3. CHANGELOG.md Entry
|
|
869
|
+
**Must include:**
|
|
870
|
+
- **What was added** - Clear feature description
|
|
871
|
+
- **Why it matters** - Business value / user benefit
|
|
872
|
+
- **How to use** - Basic example
|
|
873
|
+
- **Breaking changes** - If any
|
|
874
|
+
|
|
875
|
+
**Example:**
|
|
876
|
+
```markdown
|
|
877
|
+
## [1.5.0] - 2025-10-20
|
|
878
|
+
|
|
879
|
+
### Added - Natural Date Parsing
|
|
880
|
+
|
|
881
|
+
**What:** Accept human-readable dates like "tomorrow 10am", "next Monday", "+2 days"
|
|
882
|
+
**Why:** Removes friction from scheduling - no need to calculate ISO 8601 dates
|
|
883
|
+
**Example:**
|
|
884
|
+
cakemail campaigns schedule 123 --date "tomorrow 10am"
|
|
885
|
+
Parsed "tomorrow 10am" as Oct 12, 2025 10:00 AM EDT
|
|
886
|
+
β Campaign scheduled
|
|
887
|
+
```
|
|
888
|
+
|
|
889
|
+
### 4. Marketing Materials
|
|
890
|
+
|
|
891
|
+
**For Each Major Feature (v1.5.0+):**
|
|
892
|
+
|
|
893
|
+
#### Release Announcement
|
|
894
|
+
**Format:** Blog post / Email / Social media
|
|
895
|
+
**Sections:**
|
|
896
|
+
- Problem statement (what pain point does this solve?)
|
|
897
|
+
- Solution overview (what we built)
|
|
898
|
+
- Key benefits (3-5 bullet points)
|
|
899
|
+
- Visual examples (screenshots/GIFs)
|
|
900
|
+
- How to get started
|
|
901
|
+
- Call to action
|
|
902
|
+
|
|
903
|
+
**Example for Natural Date Parsing:**
|
|
904
|
+
```markdown
|
|
905
|
+
# Say Goodbye to ISO 8601 Date Confusion
|
|
906
|
+
|
|
907
|
+
**The Problem:**
|
|
908
|
+
Scheduling campaigns required calculating ISO 8601 timestamps like
|
|
909
|
+
"2025-10-12T10:00:00-04:00" - frustrating and error-prone.
|
|
910
|
+
|
|
911
|
+
**The Solution:**
|
|
912
|
+
Cakemail CLI now understands natural dates:
|
|
913
|
+
- "tomorrow 10am"
|
|
914
|
+
- "next Monday at 2pm"
|
|
915
|
+
- "+3 days"
|
|
916
|
+
|
|
917
|
+
**Key Benefits:**
|
|
918
|
+
β Faster scheduling - no date calculations needed
|
|
919
|
+
β Fewer errors - see exactly what you're scheduling
|
|
920
|
+
β More intuitive - write dates like you think
|
|
921
|
+
|
|
922
|
+
**Example:**
|
|
923
|
+
$ cakemail campaigns schedule 123 --date "tomorrow 10am"
|
|
924
|
+
Parsed "tomorrow 10am" as Oct 12, 2025 10:00 AM EDT
|
|
925
|
+
β Campaign scheduled
|
|
926
|
+
|
|
927
|
+
**Get Started:**
|
|
928
|
+
npm update -g @cakemail-org/cakemail-cli
|
|
929
|
+
|
|
930
|
+
**Learn More:** [link to docs]
|
|
931
|
+
```
|
|
932
|
+
|
|
933
|
+
#### Feature Comparison Table
|
|
934
|
+
**For major features, create before/after comparison:**
|
|
935
|
+
|
|
936
|
+
| Before | After | Improvement |
|
|
937
|
+
|--------|-------|-------------|
|
|
938
|
+
| Calculate ISO date | Type "tomorrow 10am" | 90% faster |
|
|
939
|
+
| Manual timezone math | Auto-detected | Zero errors |
|
|
940
|
+
| Check calendar app | Natural language | Intuitive |
|
|
941
|
+
|
|
942
|
+
#### Video/GIF Demo
|
|
943
|
+
**30-60 second demonstration:**
|
|
944
|
+
1. Show old painful way
|
|
945
|
+
2. Show new easy way
|
|
946
|
+
3. Highlight time saved
|
|
947
|
+
|
|
948
|
+
#### Social Media Posts
|
|
949
|
+
**Twitter/LinkedIn templates:**
|
|
950
|
+
|
|
951
|
+
**Short version (Twitter):**
|
|
952
|
+
```
|
|
953
|
+
π New in Cakemail CLI v1.5:
|
|
954
|
+
Natural date parsing!
|
|
955
|
+
|
|
956
|
+
Before: "2025-10-12T10:00:00-04:00"
|
|
957
|
+
After: "tomorrow 10am"
|
|
958
|
+
|
|
959
|
+
π¦ npm update -g @cakemail-org/cakemail-cli
|
|
960
|
+
π https://docs.cakemail.com/cli
|
|
961
|
+
|
|
962
|
+
#EmailMarketing #DevTools #CLI
|
|
963
|
+
```
|
|
964
|
+
|
|
965
|
+
**Long version (LinkedIn):**
|
|
966
|
+
```
|
|
967
|
+
We just shipped a game-changer for Cakemail CLI users π
|
|
968
|
+
|
|
969
|
+
v1.5.0 introduces natural date parsing. Instead of calculating
|
|
970
|
+
ISO 8601 timestamps, just write dates like you think:
|
|
971
|
+
|
|
972
|
+
β Before:
|
|
973
|
+
cakemail campaigns schedule 123 --date "2025-10-12T10:00:00-04:00"
|
|
974
|
+
|
|
975
|
+
β
After:
|
|
976
|
+
cakemail campaigns schedule 123 --date "tomorrow 10am"
|
|
977
|
+
|
|
978
|
+
The CLI parses your intent, shows you exactly what will happen,
|
|
979
|
+
and handles all the timezone math.
|
|
980
|
+
|
|
981
|
+
Simple. Fast. Error-free.
|
|
982
|
+
|
|
983
|
+
Update now:
|
|
984
|
+
npm update -g @cakemail-org/cakemail-cli
|
|
985
|
+
|
|
986
|
+
#EmailMarketing #DeveloperTools #CLI #ProductivityHack
|
|
987
|
+
```
|
|
988
|
+
|
|
989
|
+
### 5. User Manual Section Template
|
|
990
|
+
|
|
991
|
+
**For each new command group:**
|
|
992
|
+
|
|
993
|
+
```markdown
|
|
994
|
+
# [Feature Name] Guide
|
|
995
|
+
|
|
996
|
+
## Overview
|
|
997
|
+
[2-3 sentence description of what this enables]
|
|
998
|
+
|
|
999
|
+
## Prerequisites
|
|
1000
|
+
- [Required accounts/permissions]
|
|
1001
|
+
- [Required data/setup]
|
|
1002
|
+
|
|
1003
|
+
## Quick Start
|
|
1004
|
+
|
|
1005
|
+
### Basic Usage
|
|
1006
|
+
[Simplest possible example with explanation]
|
|
1007
|
+
|
|
1008
|
+
### Common Scenarios
|
|
1009
|
+
|
|
1010
|
+
#### Scenario 1: [User goal]
|
|
1011
|
+
[Step-by-step with commands and explanations]
|
|
1012
|
+
|
|
1013
|
+
#### Scenario 2: [User goal]
|
|
1014
|
+
[Step-by-step with commands and explanations]
|
|
1015
|
+
|
|
1016
|
+
## Command Reference
|
|
1017
|
+
|
|
1018
|
+
### command-name
|
|
1019
|
+
**Description:** [What it does]
|
|
1020
|
+
**Usage:** cakemail command-name [options]
|
|
1021
|
+
**Options:**
|
|
1022
|
+
- `--flag` - Description
|
|
1023
|
+
**Examples:**
|
|
1024
|
+
[3-5 real-world examples with context]
|
|
1025
|
+
|
|
1026
|
+
## Tips & Best Practices
|
|
1027
|
+
- [Tip 1]
|
|
1028
|
+
- [Tip 2]
|
|
1029
|
+
- [Tip 3]
|
|
1030
|
+
|
|
1031
|
+
## Troubleshooting
|
|
1032
|
+
|
|
1033
|
+
### Error: [Common error message]
|
|
1034
|
+
**Cause:** [Why this happens]
|
|
1035
|
+
**Solution:** [How to fix]
|
|
1036
|
+
|
|
1037
|
+
## Related Commands
|
|
1038
|
+
- [command-1] - [When to use]
|
|
1039
|
+
- [command-2] - [When to use]
|
|
1040
|
+
```
|
|
1041
|
+
|
|
1042
|
+
### 6. Marketing Checklist Per Feature
|
|
1043
|
+
|
|
1044
|
+
When completing ANY feature from backlog:
|
|
1045
|
+
|
|
1046
|
+
**Week of Completion:**
|
|
1047
|
+
- [ ] Write CHANGELOG entry with examples
|
|
1048
|
+
- [ ] Update README.md
|
|
1049
|
+
- [ ] Update user manual/docs site
|
|
1050
|
+
|
|
1051
|
+
**Week After Release:**
|
|
1052
|
+
- [ ] Write release announcement blog post
|
|
1053
|
+
- [ ] Create before/after comparison table
|
|
1054
|
+
- [ ] Record demo video/GIF (30-60 sec)
|
|
1055
|
+
- [ ] Prepare social media posts (Twitter, LinkedIn)
|
|
1056
|
+
|
|
1057
|
+
**Two Weeks After Release:**
|
|
1058
|
+
- [ ] Publish blog post
|
|
1059
|
+
- [ ] Post to social media
|
|
1060
|
+
- [ ] Share in relevant communities (Reddit, HN if major)
|
|
1061
|
+
- [ ] Email existing users (if major feature)
|
|
1062
|
+
- [ ] Update comparison pages vs competitors
|
|
1063
|
+
|
|
1064
|
+
**One Month After Release:**
|
|
1065
|
+
- [ ] Gather user feedback
|
|
1066
|
+
- [ ] Update docs based on questions
|
|
1067
|
+
- [ ] Create FAQ entries from support tickets
|
|
1068
|
+
- [ ] Plan iteration if needed
|
|
1069
|
+
|
|
1070
|
+
---
|
|
1071
|
+
|
|
1072
|
+
## π Integration with Other Documents
|
|
1073
|
+
|
|
1074
|
+
### CHANGELOG.md β β BACKLOG.md Synchronization
|
|
1075
|
+
|
|
1076
|
+
**Rule:** CHANGELOG = Past, BACKLOG = Future
|
|
1077
|
+
|
|
1078
|
+
**Process:**
|
|
1079
|
+
|
|
1080
|
+
1. **Feature Planning** (now)
|
|
1081
|
+
```markdown
|
|
1082
|
+
# BACKLOG.md
|
|
1083
|
+
### Natural Date Parsing
|
|
1084
|
+
**Status:** NOT STARTED
|
|
1085
|
+
**Priority:** HIGH
|
|
1086
|
+
```
|
|
1087
|
+
|
|
1088
|
+
2. **Development**
|
|
1089
|
+
```markdown
|
|
1090
|
+
# BACKLOG.md
|
|
1091
|
+
### Natural Date Parsing
|
|
1092
|
+
**Status:** IN PROGRESS
|
|
1093
|
+
```
|
|
1094
|
+
|
|
1095
|
+
3. **Completion**
|
|
1096
|
+
```markdown
|
|
1097
|
+
# BACKLOG.md
|
|
1098
|
+
### Natural Date Parsing
|
|
1099
|
+
**Status:** β
COMPLETED
|
|
1100
|
+
|
|
1101
|
+
# CHANGELOG.md
|
|
1102
|
+
## [Unreleased]
|
|
1103
|
+
### Added - Natural Date Parsing
|
|
1104
|
+
- Accept "tomorrow 10am", "next Monday", "+2 days"
|
|
1105
|
+
- Uses chrono-node for parsing
|
|
1106
|
+
- Shows confirmation of parsed date
|
|
1107
|
+
```
|
|
1108
|
+
|
|
1109
|
+
4. **Release**
|
|
1110
|
+
```markdown
|
|
1111
|
+
# BACKLOG.md
|
|
1112
|
+
[Remove or mark β
SHIPPED v1.5.0]
|
|
1113
|
+
|
|
1114
|
+
# CHANGELOG.md
|
|
1115
|
+
## [1.5.0] - 2025-10-20
|
|
1116
|
+
### Added - Natural Date Parsing
|
|
1117
|
+
[Full description with examples]
|
|
1118
|
+
```
|
|
1119
|
+
|
|
1120
|
+
### Cross-Reference Guide
|
|
1121
|
+
|
|
1122
|
+
**When working on a feature:**
|
|
1123
|
+
1. Find it in BACKLOG.md (current status)
|
|
1124
|
+
2. Read detailed plan in:
|
|
1125
|
+
- UX_IMPLEMENTATION_PLAN.md (for UX features)
|
|
1126
|
+
- API_COVERAGE.md (for API features)
|
|
1127
|
+
- PROFILE_SYSTEM_PLAN.md (for profile features)
|
|
1128
|
+
3. Implement following ARCHITECTURE.md patterns
|
|
1129
|
+
4. Update BACKLOG.md status β β
COMPLETED
|
|
1130
|
+
5. Add to CHANGELOG.md β [Unreleased]
|
|
1131
|
+
6. Create docs/marketing per checklist above
|
|
1132
|
+
|
|
1133
|
+
**All information is self-contained:**
|
|
1134
|
+
- BACKLOG.md has full feature descriptions
|
|
1135
|
+
- References to other docs are for ADDITIONAL detail only
|
|
1136
|
+
- A new AI can work from BACKLOG.md alone
|
|
1137
|
+
|
|
1138
|
+
---
|
|
1139
|
+
|
|
1140
|
+
**Last Updated:** 2025-10-11
|
|
1141
|
+
**Next Review:** When v1.4.0 decision is made
|
|
1142
|
+
**Owner:** FranΓ§ois Lane
|
|
1143
|
+
|
|
1144
|
+
---
|
|
1145
|
+
|
|
1146
|
+
## π Quick Reference
|
|
1147
|
+
|
|
1148
|
+
**For New AI Onboarding:**
|
|
1149
|
+
1. Read [PROJECT_INDEX.md](PROJECT_INDEX.md) first
|
|
1150
|
+
2. Then read this file (BACKLOG.md)
|
|
1151
|
+
3. Check [CHANGELOG.md](CHANGELOG.md) to see what's been built
|
|
1152
|
+
4. You now have 90% of context needed
|
|
1153
|
+
|
|
1154
|
+
**For Current Work:**
|
|
1155
|
+
- See "π― Current Focus" section above
|
|
1156
|
+
- Check "Priority Matrix" for what to do next
|
|
1157
|
+
- Read detailed plan for chosen feature
|
|
1158
|
+
- Follow implementation β documentation β marketing process
|
|
1159
|
+
|