Files
ruoyi-vue-pro/docs/education/migration/issues/README.md

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.