Add the Roadmap section: one roadmap per squad - #7
Open
AndreaSucreG wants to merge 1 commit into
Open
Conversation
`@asucregonzalez/section-roadmap` was held back as personal. What made it personal was assuming a single roadmap, not the code — the plan lives in the host's `content/team/`, so what ships is the machinery and none of the strategy. Squads are files: `content/team/roadmaps/<squad>.json`, one document each. Add a file and it appears in the sidebar; there is nothing to register. A single `content/team/roadmap.json` also works and is what you have before a second squad, so an existing roadmap keeps working untouched. Squad Settings edits what would otherwise mean hand-editing JSON: naming, the strategy and sprint doc links, vision, objectives, sequencing, the status vocabularies, effort and complexity, and capacity. Those vocabularies are referential — initiatives carry their values — so renaming one migrates every reference in the same write, and deleting one still in use is refused with its count rather than silently orphaning the initiatives pointing at it. Impact is a vocabulary rather than free text, so it can be weighed against effort. Unset renders as nothing, not as a default level: an unsized initiative is not a low-priority one. Seeds `content/team/roadmaps/example-squad.json` so the tab renders on a first run instead of an empty state that reads like a breakage. It documents the format it demonstrates, as the other seeded content does — including an initiative with impact deliberately unset, the case most likely to be mistaken for missing data. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 5a8e4e5. Configure here.
| id: 'delivery', label: 'Delivery', icon: '📦', path: '/delivery', visibility: 'shared', | ||
| blurb: 'What you are shipping, and when.', | ||
| children: [ | ||
| { ...roadmapSection, id: 'roadmap', label: 'Roadmap', path: '/delivery/roadmap' }, |
There was a problem hiding this comment.
Delivery home link opens Today
Medium Severity
The Delivery group path is /delivery, but the shell only matches child paths. Home’s Elsewhere card links to that group path, so it renders Today while the address bar still shows /delivery. The header tab works because it navigates to /delivery/roadmap directly. Today avoids this because Day uses the same path as its group.
Reviewed by Cursor Bugbot for commit 5a8e4e5. Configure here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


What this adds
@asucregonzalez/section-roadmapwas one of the sections held back as personal. What made it personal was assuming a single roadmap, not the code — the plan lives in the host'scontent/team/, so what ships is the machinery and none of the strategy.Squads are files.
content/team/roadmaps/<squad>.json, one document each. Add a file and it appears in the sidebar; nothing to register. A singlecontent/team/roadmap.jsonalso works, and is what you have before a second squad — so an existing roadmap keeps working untouched, and creating your first squad migrates it rather than hiding it.Squad Settings
Edits what would otherwise mean hand-editing JSON: naming, the strategy and sprint doc links, vision, objectives, sequencing, the status vocabularies, effort and complexity, and capacity.
Those vocabularies are referential — initiatives carry their values — so:
Impact
A vocabulary rather than free text, so it can be weighed against effort. Unset renders as nothing, not as a default level — an unsized initiative is not a low-priority one.
First run
Seeds
content/team/roadmaps/example-squad.jsonso the tab renders instead of showing an empty state that reads like a breakage. It documents the format it demonstrates, as the other seeded content does — including an initiative with impact deliberately unset, the case most likely to be mistaken for missing data.Verification
pnpm installresolvessection-roadmapfrom npm;tsc --noEmit && vite buildpassesrefreshEnabledstaysfalsehere, so nothing in the new Guide card promises a Regenerate button this app can't serve🤖 Generated with Claude Code
Note
Low Risk
Starter-template wiring plus local JSON content; no auth or shared runtime state beyond new read/write paths under
content/team/.Overview
Adds a new Delivery nav group with a Roadmap tab powered by
@asucregonzalez/section-roadmap, wired like the other installable sections (dependency,src/sections.ts,server/index.tsAPI routes).Roadmap data lives under
content/team/roadmaps/*.json(or a singlecontent/team/roadmap.json); the PR seedsexample-squad.jsonso first open is documented sample data rather than an empty tab. README and Guide document squads-as-files, Squad Settings, and impact-as-vocabulary behavior.Reviewed by Cursor Bugbot for commit 5a8e4e5. Bugbot is set up for automated code reviews on this repo. Configure here.