AI Publish Advisor
Journal-recommendation tool for a prospective manuscript, planned for the root public site — no legacy entry file, dispatch action, or view exists for it anywhere under main/, class/, or the top-level role-portal PHP files.
| Page | Status | E2E | Enhanced | Legacy Ref | Route | Roles |
|---|---|---|---|---|---|---|
| AI Publish Advisor | New | Yes | — | — | /en/ai-publish-advisor | Public |
| AI Publish Advisor Results | New | Yes | — | — | /en/ai-publish-advisor/results | Public |
| AI Publish Advisor — Data Security | New | Yes | — | — | /en/ai-publish-advisor/data-security | Public |
Features
| Feature | Status | E2E | Description |
|---|---|---|---|
| Prospective author can enter a paper title and abstract to get AI journal recommendations | New | Yes | Both fields are required; submit routes to the results page carrying the entry via sessionStorage rather than a URL or POST. |
| Abstract is validated by live word count with progressive guidance and a visible counter | New | Yes | Counter shows 'N/500'; typing beyond 500 words is blocked client-side, and a secondary 'ready' message appears above 300 words. |
| Author sees a ranked list of recommended journals with key decision metrics | New | Yes | Recommendations come from the Nest recommender endpoint via the recommendJournalsAction server action (apps/web/lib/actions/recommender.ts). |
| Author can click through from a recommendation to the journal site, or to a subject-filtered journal browse | New | — | Subject-badge clicks stop propagation so they navigate to the browse filter instead of the journal site. |
| Author can edit the submitted query or start a fresh advice request from the results page | New | Yes | Edit round-trips title and abstract through sessionStorage; the edit payload is consumed (removed) on form load. |
| Results are cached for the session and guarded against direct entry | New | Yes | There is no shareable results URL — state lives entirely in the browser session. |
| Author sees a skeleton loading state while recommendations are generated and an explicit empty state when none match | New | Yes | Empty array from the recommender renders the empty-state card rather than an error. |
| Author can read a data-security and privacy explainer for the advisor | New | Yes | Covers manuscript-confidentiality assurance, infrastructure, encryption, and incident-response commitments. |
| Landing page markets the tool (feature cards) and offers a browse-all-journals fallback CTA | New | Yes | Gives users who don't want the AI path a direct route to manual journal browsing. |
| Advisor pages are localized (en/ar) with RTL-aware affordances | New | Yes | Every visible string is translation-keyed, including aria labels and validation guidance. |
No legacy rows.
This module has no legacy anchor. Traced the full public dispatch surface for exhaustiveness:
main/index.php (root dispatch — landing/journals/articles, including its inline _action=service JSON branch; no class/index.class.php involvement despite that file's name — class/index.class.php is actually IndexManager, the per-journal "indexing services" (DOAJ/Scopus-style) CRUD used by the role-portal manager.php, unrelated to the root site), main/right.php (sidebar gadgets), main/header.php/footer.php (chrome), main/adm.php, main/pm.php, and main/contact.us.php. Also grepped the whole legacy tree (apps/legacy/js) case-insensitively for advisor, recommend, AI/ML vendor terms (gpt, openai, vertex, artificial), and journal/subject-matching function names in class/journal.class.php, class/article.class.php, and class/subject.class.php — none relate to recommending a journal for a manuscript. The one literal IND_RECOMMEND string found is the classic "recommend this article to a friend" share label, unrelated. Cross-checked apps/legacy/spec/ (including the top-level and journal/ spec files) for any advisor/AI documentation — none exists. This module appears to be a net-new feature with no legacy predecessor; per the design doc it should score as New once Status is populated in a later stage.