83 lines
6.7 KiB
Markdown
83 lines
6.7 KiB
Markdown
# Education Migration Tickets
|
|
|
|
This directory turns [`GOAL.md`](../GOAL.md) into executable, blocker-aware vertical slices.
|
|
|
|
## Workflow
|
|
|
|
1. Work only tickets whose blockers are complete.
|
|
2. Start each implementation ticket in a fresh context after reading `GOAL.md`, the ticket, relevant decisions, and current Git status.
|
|
3. Preserve the dirty working tree. Implementation is serial unless an isolated worktree and integration plan are explicit.
|
|
4. Apply TDD at the ticket's declared seams.
|
|
5. Use `flyway-postgresql` for every schema, index, constraint, seed, baseline, backfill, or Flyway configuration change.
|
|
6. Close with focused tests, `git diff --check`, and `mvn -pl yudao-server -am -DskipTests clean compile`.
|
|
7. Report exact commands and results. Never report PostgreSQL migration success without an actual successful PostgreSQL run.
|
|
|
|
## Status vocabulary
|
|
|
|
- `done`: implemented and verified to the ticket's current acceptance criteria.
|
|
- `in-progress`: currently being implemented.
|
|
- `ready`: all blockers complete and no unresolved decision prevents work.
|
|
- `blocked`: depends on another ticket or product decision.
|
|
- `decision`: produces a recorded decision rather than production behavior.
|
|
|
|
## Ticket graph
|
|
|
|
```text
|
|
EDU-000 Phase 0 artifacts done
|
|
├── EDU-001 Safe question content done, follow-up coverage remains
|
|
├── EDU-002 Practice regression baseline done
|
|
│ ├── EDU-016 PostgreSQL persistence tests done; temporary bridge blocked on EDU-005/EDU-006
|
|
│ └── EDU-006 Practice schema Flyway done
|
|
│ ├── EDU-007 Create/restore practice done
|
|
│ ├── EDU-008 Idempotent answer save done
|
|
│ └── EDU-009 Atomic submit/report done
|
|
├── EDU-003 Tenant resolution decision done
|
|
│ └── EDU-004 Tenant/identity security done; ingress/IP-only probing throttle remains operational blocker
|
|
└── EDU-005 PostgreSQL/Flyway takeover decision done
|
|
|
|
EDU-009 + provider/content decisions
|
|
└── EDU-010 Tenant content publication done (bounded JAVA_READ publication scope delivered)
|
|
└── EDU-011 Import/export/assets/scanning bounded capability delivered; production adapters/export artifacts deferred
|
|
|
|
EDU-004
|
|
└── EDU-012 Classes and education relationships implemented (bounded class/invitation capability)
|
|
|
|
Commerce ownership decisions
|
|
└── EDU-013 Education commercialization bounded entitlement/binding capability implemented; platform events deferred
|
|
|
|
All owner/contract decisions
|
|
└── EDU-014 Extended learning waves bounded representative wave delivered; blocked families explicitly deferred
|
|
└── EDU-015 Operational independence contracts implemented; release/deployment evidence remains
|
|
|
|
EDU-003 + tenant-admin inventory
|
|
└── EDU-017 Tenant appearance/theme bounded appearance/settings/theme lifecycle delivered; integrations/secrets/codes deferred
|
|
└── EDU-018 Native payment/social admin Pay/System controllers, RBAC, and Vben pages reused
|
|
├── EDU-019 Learning activation codes bounded generation/redemption, entitlement composition, and Vben page delivered
|
|
└── EDU-020 Native Pay activation Pay module plus tenant App/Channel schema and parent isolation delivered
|
|
└── EDU-021 Legacy Pay import explicit tenant-account mapping into native Pay with redacted audit delivered
|
|
└── EDU-022 Native Pay transactions tenant order/refund/notify ledgers and native UI delivered
|
|
└── EDU-023 Legacy Pay transactions reconciled terminal import and redacted audit delivered
|
|
└── EDU-024 Native Pay Transfer/Wallet tenant ledgers and native UI delivered
|
|
└── EDU-025 Native Mall Product tenant catalog and native UI delivered
|
|
└── EDU-026 Native Mall Promotion coupon templates/instances and native UI delivered
|
|
└── EDU-027 Native Mall Trade order core and native UI delivered
|
|
└── EDU-028 Native checkout discount/reward activities and native UI delivered
|
|
└── EDU-029 Native Trade delivery and native UI delivered
|
|
└── EDU-030 Native Trade after-sale and corrected native UI delivered
|
|
└── EDU-031 Native Trade brokerage and corrected native UI delivered
|
|
└── EDU-032 Native Promotion Seckill and corrected native UI delivered
|
|
└── EDU-033 Native Promotion Combination and corrected native UI delivered
|
|
```
|
|
|
|
## Recommended execution order
|
|
|
|
1. Complete production release evidence for **EDU-015** using the Pilot runbook and target-only `JAVA_READ` deployment.
|
|
2. Add deferred EDU-011 scanner/parser/export adapters only when their owning platform contracts and deployment are available.
|
|
3. Add automatic EDU-013 fulfillment only after Mall/Pay/CRM expose the recorded public events; keep manual trusted fulfillment and access fail-closed meanwhile.
|
|
4. EDU-025 activates native Product, EDU-026 activates coupons, EDU-027 activates the normal Trade order core, EDU-028 activates discount/reward, EDU-029 activates delivery, EDU-030 activates after-sale/Pay Refund, EDU-031 activates native brokerage, EDU-032 activates native Seckill, and EDU-033 activates native Combination activities, group records, atomic capacity, exact RBAC, and corrected administration pages. Continue with Bargain/Point and other Promotion families, source referral CRM/settlement-proof import, explicit legacy product/coupon/order/refund import, automatic Mall/Pay fulfillment, refund-driven entitlement revocation, production export/runbook evidence, legacy activation-code import, tenant PNVS, and encrypted generic secret storage as separate slices.
|
|
5. Select the next EDU-014 family only after its entitlement, privacy, and owner decisions are recorded.
|
|
|
|
## Phase 0 completion caveat
|
|
|
|
Phase 0 artifacts exist, but several architecture and product decisions remain open. `EDU-000` is considered complete as an inventory deliverable, not as resolution of every decision it discovered.
|