Orientation notes for AI agents working in the SEED Platform™ repo, specifically around the frontend migration currently in progress. (This file intentionally does not attempt to document the whole Django backend — only the frontend split relevant to migration work.)
This Django repo currently serves two separate single-page apps side by side:
- Legacy AngularJS 1.x app — lives in-tree at
seed/static/seed/and is served under/app/(seeseed.urls, wired up inconfig/urls.py). Its route table (URL → template → controller) isseed/static/seed/js/seed.js; controllers are injs/controllers/, templates inpartials/. - New Angular app — lives in the
ng_seed/seed-angulargit submodule (https://github.com/SEED-platform/seed-angular), a separate repo with its own history. It's served under/ng-app/as a static SPA (ng_seed/views.py::seed_angularserves itsindex.htmlfor any non-file request under that path). Because it's a submodule, changes to it are committed and reviewed in that repo, not here —cd ng_seed/seed-angularto work on it, and its own.github/copilot-instructions.mdapplies once you're inside that directory.
The end goal is to retire seed/static/seed/ once every page has an equivalent in
ng_seed/seed-angular. Both apps currently run in parallel; there is no automatic redirect from
one to the other yet, so don't assume migrating a page's UI is enough to make it "live" — routing/
cutover is a separate decision.
This repo's active integration branch is develop — that is where main is stale (it lags
develop by hundreds of commits, e.g. it predates the pyproject.toml dependency migration,
Django v6, and Postgres 18 upgrades) and is not a safe base for new work despite the name.
- Before creating any branch or PR here, confirm the actual default branch rather than assuming
main:gh repo view SEED-platform/seed --json defaultBranchRef(or checkgit remote show originunder "HEAD branch"). As of this writing it isdevelop. - Always branch from an up-to-date
origin/develop(git fetch origin develop && git checkout -b <branch> origin/develop), not from a possibly-stale localmain. A localmainthat hasn't been pulled recently can be far behind without any error or warning — branching from it silently drags a huge, unrelated diff into your PR (e.g. files that look "deleted" simply because your stale base never had them). - After pushing, verify the PR actually landed with the base you expect and a minimal diff:
gh pr view <number> --json baseRefName,additions,deletions,changedFiles.gh pr createtargets the repo's default branch automatically, which may silently differ from whatever local branch you happened to branch from. - This guidance is specific to this repo (
SEED-platform/seed). Theng_seed/seed-angularsubmodule's default branch ismain— verify independently there rather than assuming the same convention applies, since the two repos can (and currently do) differ.
If you're asked to migrate a page/feature from the legacy AngularJS app to the new Angular app:
- Read
ng_seed/seed-angular/MIGRATION.mdfirst — it has the step-by-step playbook (how to find the legacy route/controller/partial, how to map it to the new app's structure and conventions, template conversion cheat sheet, translation reuse) and a tracked checklist of pages that still need to be ported. - Do the actual Angular work inside
ng_seed/seed-angular(a separate git checkout/submodule), following that repo's own conventions inDEVELOPER.mdand.github/copilot-instructions.md. - Don't delete or modify the legacy AngularJS source in
seed/static/seed/as part of a migration change unless explicitly asked to — it keeps serving/app/traffic until the team decides to retire a given route.