Skip to content

feat(platform): Slice D nav polish + 4 follow-up UX goal intakes - #217

Open
vladprrs wants to merge 2 commits into
mainfrom
feat/platform-ux-nav-recovery
Open

feat(platform): Slice D nav polish + 4 follow-up UX goal intakes#217
vladprrs wants to merge 2 commits into
mainfrom
feat/platform-ux-nav-recovery

Conversation

@vladprrs

@vladprrs vladprrs commented May 16, 2026

Copy link
Copy Markdown
Owner

Summary

  • Slice D navigation polish (apps/platform/ui-module, apps/platform/blueprint) — closes T026/T027 of the platform-full-ux-scenarios recovery audit: route-aware PlatformSidebar/PlatformTopbar driven from /route/path + /route/params, PlatformDataTable columns gain hrefTemplateMap for per-row link dispatch (audit screen routes by targetType), project-version screen gets templated Back to project + Deployments actions, PlatformAPIExplorer gains graphHrefTemplate / pdmHrefTemplate so Overview links to Graph/Data-model screens. Updates docs/current/owners/apps/platform.md with the new nav-shell + cross-link contracts and reflects the reopened goal state in platform-full-ux-scenarios/state.yaml.
  • 4 follow-up goal intakes under docs/goals/: platform-navigation-crosslinks-ux, platform-data-model-explorer, platform-project-dashboard-overview, cv-extract-platform-client-auth0-bootstrap-e2e — planning artifacts only (goal.md + state.yaml + notes), no code in this slice.

Test plan

  • bun run --filter @rntme/platform-ui typecheck → 0 errors
  • bun run --filter @rntme/platform-ui test → 50 pass / 0 fail / 208 expects
  • bun run --filter @rntme/platform-blueprint typecheck → 0 errors
  • bun run --filter @rntme/platform-blueprint test → 103 pass / 0 fail / 452 expects
  • Operator browser verification on platform.rntme.com after release Dokploy redeploy (out of scope for this PR — tracked by the platform-full-ux-scenarios goal's outstanding work)

🤖 Generated with Claude Code

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced navigation across project screens with contextual action buttons
    • Route-aware sidebar and automatic breadcrumb generation
    • Cross-navigation links between data model, API, UI, and deployment explorer views
    • Clickable links in audit log targets and deployment tables
  • Refactor

    • Updated navigation configuration to use dynamic route-based templates
  • Documentation

    • Added guides for platform navigation and data model explorer workflows

Review Change Stack

vladprrs added 2 commits May 16, 2026 10:56
… audit row link dispatch, project-version back-link, API explorer cross-links

Implements T026/T027 of platform-full-ux-scenarios recovery audit:

- PlatformSidebar/PlatformTopbar read /route/path + /route/params from state
  store; cross-link templates live in layout/screen specs. Sidebar items take
  hrefTemplate + matchPattern (drops hard-coded active flags). Topbar
  crumbsFromRoute derives breadcrumbs from path with in-component label table.
- PlatformDataTable columns accept hrefTemplateMap {typeField, byType} so audit
  rows dispatch to the right detail route by targetType; unmatched types stay
  text rather than rendering broken hrefs.
- Project-version screen gets templated Back-to-project + Deployments header
  actions.
- PlatformAPIExplorer takes graphHrefTemplate/pdmHrefTemplate so Overview pane
  renders Source artifact / Handler / Request|Response schema as links to
  Graph and Data-model screens; api.spec.json opts in.

Updates platform-full-ux-scenarios state.yaml to reflect the reopened
goal (status: active, active_task: T027) and recovery audit findings.
- platform-navigation-crosslinks-ux: scoped repair of platform navigation
  and cross-links to align apps/platform with .tmp/rntme-ux-design.agent.final.md
- platform-data-model-explorer: bring data-model explorer to .tmp/rntme
  platform/data-model-explorer UX (UI + handlers + PDM/QSM data flow)
- platform-project-dashboard-overview: end-to-end project dashboard slice
  per .tmp/rntme platform/project-dashboard-overview, including handlers
  and deploy/release flow
- cv-extract-platform-client-auth0-bootstrap-e2e: recovery goal to finish
  cv-extract platform-client publish/deploy/smoke/dashboard proof using the
  approved persistent Auth0 test automation grant
@coderabbitai

coderabbitai Bot commented May 16, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This PR extends the platform UI to support dynamic, route-aware navigation through template-based link resolution. Sidebar and topbar components now derive active states and breadcrumbs from runtime routes, header actions use hrefTemplate for cross-navigation, data table columns dispatch row-specific links via type-based templates, and the API explorer renders schema/handler fields as cross-links. Comprehensive updates to specs, components, tests, and documentation establish the new invariants.

Changes

Route-Aware Platform Navigation and Cross-Linking

Layer / File(s) Summary
Blueprint UI specs: navigation templates and header actions
apps/platform/blueprint/services/app/ui/layouts/main.spec.json, apps/platform/blueprint/services/app/ui/screens/{api,audit,data-model,deployment,deployments,graph,project-version,ui}.spec.json
Navigation items updated from static href + active flag to hrefTemplate + optional matchPattern; topbar switches from explicit crumbs array to crumbsFromRoute: true; screen headers gain actions arrays with templated back-links and cross-explorer navigation (data-model, api, ui, graph); audit events table adds targetId column with hrefTemplateMap keyed by targetType.
PlatformSidebar & PlatformTopbar: route-aware link resolution and breadcrumbs
apps/platform/ui-module/src/components.tsx (NavItem schema, sidebar resolution, topbar breadcrumbs)
NavItem gains hrefTemplate and matchPattern fields; sidebar reads /route/params and /route/path to resolve item links, compute active state via pattern/href match or legacy active flag; topbar derives breadcrumbs from path segments (skipping auth/callback) when crumbsFromRoute enabled, resolves action hrefTemplate against route params with # fallback.
DataTable hrefTemplateMap and PlatformAPIExplorer cross-link templates
apps/platform/ui-module/src/components.tsx (DataTableColumn, resolveColumnHref, PlatformAPIExplorer props, resolveCrossLink, renderAPIDetail, renderOverviewPane)
DataTableColumn adds hrefTemplateMap for per-row dispatch by row[typeField]; resolveColumnHref chooses href from map/template/literal; PlatformAPIExplorer accepts graphHrefTemplate + pdmHrefTemplate to render Overview handler/source-artifact/schema rows as links; new resolveCrossLink helper resolves templates only when both template and extra values exist.
Component tests: sidebar/topbar/datatable/explorer route-aware behavior
apps/platform/ui-module/test/components.test.tsx
Sidebar tests verify hrefTemplate resolution, active-state matching (pattern prefix, exact href, legacy flag), and route-aware rendering; topbar tests check crumb derivation from path with auth-segment skipping and action template resolution; datatable test validates hrefTemplateMap per-row dispatch (known type → anchor, unknown type → text); API explorer tests confirm cross-link templates render Overview rows as links with correct href when provided, plain text when absent.
Blueprint tests & platform ownership documentation
apps/platform/blueprint/test/platform-ui.test.ts, docs/current/owners/apps/platform.md
Manifest tests assert sidebar items use route-templated hrefTemplate, topbar uses crumbsFromRoute, header actions exclude self-navigation, deployments id column links to detail, audit targetId routes by type, project-version includes back/deployments links, and API explorer receives cross-link templates; ownership doc documents route-aware sidebar/topbar reading /route/path//route/params, breadcrumb/action template support, datatable type-dispatch patterns, API explorer cross-link template behavior, and deferred deploy-target link.
Goal charters and state: navigation repair and cross-linking effort tracking
docs/goals/platform-navigation-crosslinks-ux/{goal.md,notes/{T001,T002}-*.md,state.yaml}, docs/goals/platform-project-dashboard-overview/{goal.md,notes/T001-*.md,state.yaml}, docs/goals/cv-extract-platform-client-auth0-bootstrap-e2e/{goal.md,notes/T015-*.md}, docs/goals/platform-data-model-explorer/{goal.md,notes/{T001,T002}-*.md,state.yaml}
Project management and task records documenting scout identification of broken static sidebar/breadcrumbs, judge approval for route-aware sidebar/topbar (Slice A+B) and deferred SPA/audit polish (Slices C+D), worker implementation of hrefTemplate/matchPattern navigation and topbar breadcrumb derivation, parallel dashboard and data-model explorer work, and final completion audits mapping UX requirements to implementation with production verification evidence.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Possibly related PRs

  • vladprrs/rntme#197: Main PR #198 is related to #197 because it builds on the newly ported rntme UI artifacts (the apps/platform/blueprint/services/app/ui layout/screen JSONs and DataTable-based UI wiring introduced in #197) by adding route-aware hrefTemplate/matchPattern navigation, breadcrumbs-from-route, and per-row/cross-link behaviors that extend the UI specs and components created in #197.

Poem

🐰 Hop-skip through the routes, no more static walls,
Templates resolve where the sidebar calls,
Breadcrumbs spring fresh from the path you roam,
Cross-links light the way—explorer, find home!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 21.43% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically summarizes the main changes: Slice D navigation polish (route-aware sidebar/topbar, hrefTemplate support, breadcrumb derivation) plus four new goal intake documents.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch feat/platform-ux-nav-recovery

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

ESLint skipped: no ESLint configuration detected in root package.json. To enable, add eslint to devDependencies.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/goals/platform-project-dashboard-overview/state.yaml (1)

714-720: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Final verification metadata is left unknown despite completed goal.

Since this state file is the canonical board truth, keeping checks.last_verification as unknown makes audit replay harder. Please populate it with the latest concrete verification task/commands (or explicitly reference the authoritative receipt task ID).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/goals/platform-project-dashboard-overview/state.yaml` around lines 714 -
720, The checks.last_verification block currently has placeholder/unknown
values; update checks.last_verification.result to the concrete outcome (e.g.,
"passed"/"failed"), set checks.last_verification.task to the authoritative
verification task ID or receipt task reference, and fill
checks.last_verification.commands with the exact verification commands (or a
pointer to their location) so the canonical state contains the latest concrete
verification metadata; ensure dirty_fingerprint is updated if the verification
changed the artifact fingerprint.
🧹 Nitpick comments (1)
docs/goals/platform-data-model-explorer/goal.md (1)

33-33: 💤 Low value

Optional: Consider hyphenating "end to end".

The phrase "end to end" in "genuinely working end to end" could be hyphenated as "end-to-end" when used as a compound adjective.

✏️ Suggested edit
-Continuous execution: discover the current platform, PDM, QSM, and UX evidence; choose the largest safe vertical implementation slice; implement and verify successive slices until the data-model explorer is genuinely working end to end; review at risk, ambiguity, rejected-verification, and final-completion boundaries.
+Continuous execution: discover the current platform, PDM, QSM, and UX evidence; choose the largest safe vertical implementation slice; implement and verify successive slices until the data-model explorer is genuinely working end-to-end; review at risk, ambiguity, rejected-verification, and final-completion boundaries.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/goals/platform-data-model-explorer/goal.md` at line 33, Update the
phrase "genuinely working end to end" in the sentence starting with "Continuous
execution:" so that "end to end" is hyphenated as "end-to-end" to use the
compound adjective form; ensure the rest of the sentence remains unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@apps/platform/blueprint/services/app/ui/layouts/main.spec.json`:
- Around line 25-27: The Projects navigation entry uses a mismatched
hrefTemplate ("/{orgId}") which routes to the dashboard instead of Projects;
update the "hrefTemplate" value for the Projects nav object to match its
"matchPattern" by changing it to "/{orgId}/projects" so the Projects link
navigates to the correct route (look for the object with "label": "Projects",
"hrefTemplate", and "matchPattern" in the JSON).

In `@apps/platform/blueprint/services/app/ui/screens/deployment.spec.json`:
- Around line 16-18: The "Back to deployments" button's hrefTemplate currently
points to the org root (hrefTemplate = "/{orgId}"); update the hrefTemplate in
deployment.spec.json for that button to the deployments list route (for example
"/{orgId}/deployments") so the Back to deployments action navigates to the
deployments list rather than the org landing page.

In `@apps/platform/ui-module/src/components.tsx`:
- Around line 2211-2222: The code currently maps actions and uses actionHref(a,
routeParams) ?? '#' which yields anchors with href="#" for unresolved links;
change the rendering inside the actions.map (the block using actionHref,
routeParams, key i and className `rntme-btn ...`) to detect when actionHref(...)
returns null/undefined and render a <button> (same className, key, and label,
and preserve any click handler variant behavior) instead of an <a href="#">,
otherwise render the <a> for resolved hrefs; ensure the button is
keyboard-accessible and has type="button" so it does not submit forms
inadvertently.

In
`@docs/goals/platform-navigation-crosslinks-ux/notes/T001-platform-nav-scout.md`:
- Line 17: Update the stated route count in the document: the list containing
`/`, `/login`, `/auth/callback`, `/no-org`, `/:orgId`,
`/:orgId/projects/:projectId`, `/:orgId/projects/:projectId/data-model`, `/api`,
`/ui`, `/graph`, `/:orgId/deploy-targets`,
`/:orgId/projects/:projectId/deployments`, `/:orgId/deployments/:deploymentId`,
`/:orgId/tokens`, `/:orgId/audit`,
`/:orgId/projects/:projectId/versions/:versionId` currently enumerates 16
entries, so change “15 routes” to “16 routes” or remove the explicit count text
entirely to keep the list accurate and avoid future mismatch.

---

Outside diff comments:
In `@docs/goals/platform-project-dashboard-overview/state.yaml`:
- Around line 714-720: The checks.last_verification block currently has
placeholder/unknown values; update checks.last_verification.result to the
concrete outcome (e.g., "passed"/"failed"), set checks.last_verification.task to
the authoritative verification task ID or receipt task reference, and fill
checks.last_verification.commands with the exact verification commands (or a
pointer to their location) so the canonical state contains the latest concrete
verification metadata; ensure dirty_fingerprint is updated if the verification
changed the artifact fingerprint.

---

Nitpick comments:
In `@docs/goals/platform-data-model-explorer/goal.md`:
- Line 33: Update the phrase "genuinely working end to end" in the sentence
starting with "Continuous execution:" so that "end to end" is hyphenated as
"end-to-end" to use the compound adjective form; ensure the rest of the sentence
remains unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3d9aaac4-8824-4284-a980-7f202c8685d9

📥 Commits

Reviewing files that changed from the base of the PR and between 0dbe8bd and 3412852.

📒 Files selected for processing (28)
  • apps/platform/blueprint/services/app/ui/layouts/main.spec.json
  • apps/platform/blueprint/services/app/ui/screens/api.spec.json
  • apps/platform/blueprint/services/app/ui/screens/audit.spec.json
  • apps/platform/blueprint/services/app/ui/screens/data-model.spec.json
  • apps/platform/blueprint/services/app/ui/screens/deployment.spec.json
  • apps/platform/blueprint/services/app/ui/screens/deployments.spec.json
  • apps/platform/blueprint/services/app/ui/screens/graph.spec.json
  • apps/platform/blueprint/services/app/ui/screens/project-version.spec.json
  • apps/platform/blueprint/services/app/ui/screens/ui.spec.json
  • apps/platform/blueprint/test/platform-ui.test.ts
  • apps/platform/ui-module/src/components.tsx
  • apps/platform/ui-module/test/components.test.tsx
  • docs/current/owners/apps/platform.md
  • docs/goals/cv-extract-platform-client-auth0-bootstrap-e2e/goal.md
  • docs/goals/cv-extract-platform-client-auth0-bootstrap-e2e/notes/T015-org-page-empty.md
  • docs/goals/cv-extract-platform-client-auth0-bootstrap-e2e/state.yaml
  • docs/goals/platform-data-model-explorer/goal.md
  • docs/goals/platform-data-model-explorer/notes/T001-scout-map.md
  • docs/goals/platform-data-model-explorer/notes/T002-judge-plan.md
  • docs/goals/platform-data-model-explorer/state.yaml
  • docs/goals/platform-full-ux-scenarios/state.yaml
  • docs/goals/platform-navigation-crosslinks-ux/goal.md
  • docs/goals/platform-navigation-crosslinks-ux/notes/T001-platform-nav-scout.md
  • docs/goals/platform-navigation-crosslinks-ux/notes/T002-judge-slice-AB.md
  • docs/goals/platform-navigation-crosslinks-ux/state.yaml
  • docs/goals/platform-project-dashboard-overview/goal.md
  • docs/goals/platform-project-dashboard-overview/notes/T001-dashboard-map.md
  • docs/goals/platform-project-dashboard-overview/state.yaml

Comment on lines +25 to +27
"label": "Projects",
"hrefTemplate": "/{orgId}",
"matchPattern": "/{orgId}/projects",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Projects nav target points to the wrong route.

At Line 26, "hrefTemplate": "/{orgId}" conflicts with Line 27’s projects match pattern and will send users to dashboard instead of Projects. Use the projects route template here.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/platform/blueprint/services/app/ui/layouts/main.spec.json` around lines
25 - 27, The Projects navigation entry uses a mismatched hrefTemplate
("/{orgId}") which routes to the dashboard instead of Projects; update the
"hrefTemplate" value for the Projects nav object to match its "matchPattern" by
changing it to "/{orgId}/projects" so the Projects link navigates to the correct
route (look for the object with "label": "Projects", "hrefTemplate", and
"matchPattern" in the JSON).

Comment on lines +16 to +18
"label": "Back to deployments",
"variant": "ghost",
"hrefTemplate": "/{orgId}"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Back-to-deployments action routes to org root.

At Line 18, "/{orgId}" does not match the "Back to deployments" intent and will navigate to the org landing page instead of a deployments list route.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/platform/blueprint/services/app/ui/screens/deployment.spec.json` around
lines 16 - 18, The "Back to deployments" button's hrefTemplate currently points
to the org root (hrefTemplate = "/{orgId}"); update the hrefTemplate in
deployment.spec.json for that button to the deployments list route (for example
"/{orgId}/deployments") so the Back to deployments action navigates to the
deployments list rather than the org landing page.

Comment on lines +2211 to +2222
...actions.map((a, i) => {
const href = actionHref(a, routeParams) ?? '#';
return React.createElement(
'a',
{
key: i,
href: a.href ?? '#',
href,
className: `rntme-btn is-small ${a.variant ? `is-${a.variant}` : 'is-ghost'}`,
},
a.label,
),
),
);
}),

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Avoid href="#" fallback for unresolved topbar actions.

Using '#' for missing/unresolved action links can trigger unwanted scroll-to-top and hide template resolution mistakes. Render a button when no href resolves.

Proposed fix
-          ...actions.map((a, i) => {
-            const href = actionHref(a, routeParams) ?? '#';
-            return React.createElement(
-              'a',
-              {
-                key: i,
-                href,
-                className: `rntme-btn is-small ${a.variant ? `is-${a.variant}` : 'is-ghost'}`,
-              },
-              a.label,
-            );
-          }),
+          ...actions.map((a, i) => {
+            const href = actionHref(a, routeParams);
+            const className = `rntme-btn is-small ${a.variant ? `is-${a.variant}` : 'is-ghost'}`;
+            return href
+              ? React.createElement('a', { key: i, href, className }, a.label)
+              : React.createElement('button', { key: i, type: 'button', className }, a.label);
+          }),
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
...actions.map((a, i) => {
const href = actionHref(a, routeParams) ?? '#';
return React.createElement(
'a',
{
key: i,
href: a.href ?? '#',
href,
className: `rntme-btn is-small ${a.variant ? `is-${a.variant}` : 'is-ghost'}`,
},
a.label,
),
),
);
}),
...actions.map((a, i) => {
const href = actionHref(a, routeParams);
const className = `rntme-btn is-small ${a.variant ? `is-${a.variant}` : 'is-ghost'}`;
return href
? React.createElement('a', { key: i, href, className }, a.label)
: React.createElement('button', { key: i, type: 'button', className }, a.label);
}),
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@apps/platform/ui-module/src/components.tsx` around lines 2211 - 2222, The
code currently maps actions and uses actionHref(a, routeParams) ?? '#' which
yields anchors with href="#" for unresolved links; change the rendering inside
the actions.map (the block using actionHref, routeParams, key i and className
`rntme-btn ...`) to detect when actionHref(...) returns null/undefined and
render a <button> (same className, key, and label, and preserve any click
handler variant behavior) instead of an <a href="#">, otherwise render the <a>
for resolved hrefs; ensure the button is keyboard-accessible and has
type="button" so it does not submit forms inadvertently.


## Current Route Inventory (`apps/platform/blueprint/services/app/ui/manifest.json`)

15 routes: `/`, `/login`, `/auth/callback`, `/no-org`, `/:orgId`, `/:orgId/projects/:projectId`, `/:orgId/projects/:projectId/data-model`, `/api`, `/ui`, `/graph`, `/:orgId/deploy-targets`, `/:orgId/projects/:projectId/deployments`, `/:orgId/deployments/:deploymentId`, `/:orgId/tokens`, `/:orgId/audit`, `/:orgId/projects/:projectId/versions/:versionId`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Route count is off by one.

Line 17 says “15 routes” but lists 16 route entries. Please correct the count (or remove the explicit number) to avoid confusion in later planning receipts.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@docs/goals/platform-navigation-crosslinks-ux/notes/T001-platform-nav-scout.md`
at line 17, Update the stated route count in the document: the list containing
`/`, `/login`, `/auth/callback`, `/no-org`, `/:orgId`,
`/:orgId/projects/:projectId`, `/:orgId/projects/:projectId/data-model`, `/api`,
`/ui`, `/graph`, `/:orgId/deploy-targets`,
`/:orgId/projects/:projectId/deployments`, `/:orgId/deployments/:deploymentId`,
`/:orgId/tokens`, `/:orgId/audit`,
`/:orgId/projects/:projectId/versions/:versionId` currently enumerates 16
entries, so change “15 routes” to “16 routes” or remove the explicit count text
entirely to keep the list accurate and avoid future mismatch.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant