Feature/maturity attribution - #115
Open
meganrm wants to merge 29 commits into
Open
Conversation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Added maturity: String field to the IdeaPost GraphQL type definition, positioned alphabetically between introduction and nextSteps. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
✅ Deploy Preview for project-idea-board ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a maturity attribution field to idea posts so authors can signal how “baked” an idea is, and displays that maturity in both list and detail views. This fits the Idea Board’s content model by extending idea frontmatter and Gatsby’s GraphQL layer, while keeping Decap CMS authoring straightforward.
Changes:
- Add
maturityto the CMS schema + Gatsby GraphQL schema/resolvers (defaulting to"speculative"when absent). - Introduce
MaturityBadge+ CSS module styling and wire it into the idea list and idea detail template. - Backfill
maturityfrontmatter on a few existing idea markdown files and add unit tests for resolver + maturity config.
Reviewed changes
Copilot reviewed 18 out of 18 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| static/admin/config.yml | Adds required maturity select field for ideas (and expands type options). |
| src/templates/idea-post.tsx | Queries and renders maturity in the post metadata strip via MaturityBadge. |
| src/style/maturity-badge.module.css | New CSS module for maturity badge color ramp + inline variant styling. |
| src/style/idea-roll.module.css | Layout tweaks for title row + spacing to accommodate maturity badge. |
| src/style/idea-post.module.css | Minor cursor styling adjustment for tag UI. |
| src/pages/ideas/dev-example.md | Adds maturity frontmatter to an example idea. |
| src/pages/ideas/2026-02-06-simulations-of-actin-compression-at-monomer-and-fiber-scale.md | Adds maturity frontmatter. |
| src/pages/ideas/2026-02-06-compare-actin-filament-compression-between-different-fiber-scale-simulators.md | Adds maturity frontmatter. |
| src/pages/ideas/2025-10-29-relate-cell-cell-junction-remodeling-to-migration-onset.md | Adds maturity frontmatter and reorders frontmatter keys. |
| src/constants/maturityLevels.ts | Adds central maturity label/hint config and a getter with fallback behavior. |
| src/constants/maturityLevels.test.ts | Adds unit tests covering maturity config labels/hints and fallback. |
| src/components/MaturityBadge.tsx | New badge component that displays maturity with an Ant Design Popover hint. |
| src/components/IdeaRoll.tsx | Queries maturity and renders the badge alongside the idea title in list view. |
| gatsby/schema/base.gql | Extends IdeaPost GraphQL type with maturity: String. |
| gatsby/resolvers/test/resolvers.test.js | Adds resolver tests for defaulting and pass-through behavior. |
| gatsby/resolvers/resolvers.js | Adds maturity resolver defaulting to "speculative" when missing. |
| docs/design/specs/2026-06-04-maturity-label-design.md | Adds design spec for maturity levels, UI behavior, and data model. |
| docs/design/plans/2026-06-04-maturity-label.md | Adds detailed implementation plan for the maturity label feature. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+20
to
+23
| .tagEyebrowWrapper { | ||
| display: flex; | ||
| justify-content: space-between; | ||
| } |
Comment on lines
+24
to
+32
| <Popover title={config.hint} className={popoverStyles.popoverContent}> | ||
| <span | ||
| className={[baseClass, levelClass, className] | ||
| .filter(Boolean) | ||
| .join(" ")} | ||
| > | ||
| {config.label} | ||
| </span> | ||
| </Popover> |
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.
Problem
We've gotten feedback that people feel uncomfortable posting ideas that aren't fully fleshed out, or that if they do, people will take them more seriously than they should.
Solution
Add a maturity label (with @jessicasyu )
Type of change
Please delete options that are not relevant.
Steps to Verify:
Screenshots (optional):