63 lines
3.6 KiB
Markdown
63 lines
3.6 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
|
|
```
|
|
|
|
## 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. 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.
|