Skip to content

Feature/maturity attribution - #115

Open
meganrm wants to merge 33 commits into
mainfrom
feature/maturity-attribution
Open

Feature/maturity attribution#115
meganrm wants to merge 33 commits into
mainfrom
feature/maturity-attribution

Conversation

@meganrm

@meganrm meganrm commented Aug 13, 2026

Copy link
Copy Markdown
Collaborator

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.

  • New feature (non-breaking change which adds functionality)

Steps to Verify:

  1. npm start
  2. see maturity labels
  3. look at admin site, see drop down

Screenshots (optional):

Screenshot 2026-08-12 at 5 34 46 PM Screenshot 2026-08-12 at 5 34 53 PM

meganrm and others added 29 commits June 4, 2026 12:16
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>
@netlify

netlify Bot commented Aug 13, 2026

Copy link
Copy Markdown

Deploy Preview for project-idea-board ready!

Name Link
🔨 Latest commit e95261a
🔍 Latest deploy log https://app.netlify.com/projects/project-idea-board/deploys/6a877ed35755e00008f6619f
😎 Deploy Preview https://deploy-preview-115--project-idea-board.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@meganrm
meganrm requested review from interim17 and a lite review from Copilot August 13, 2026 00:35

Copilot AI 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.

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 maturity to 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 maturity frontmatter 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 thread src/style/idea-roll.module.css Outdated
Comment on lines +20 to +23
.tagEyebrowWrapper {
display: flex;
justify-content: space-between;
}

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.

This seems true?

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>

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.

We have little to no attention paid to keyboard nav, I'd argue we should basically ignore it until we get to a more complete place and then do a concentrated accessibility pass rather than add it in piece meal right now.

@interim17 interim17 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.

Feature seems good, but I'd like to discuss committing specs and plans and align on that for future agentic work.

The comment about keyboard nav is also an interesting one to me. I would like this site to be accessible, AntD is not the greatest choice for that, but I think it could be a nice thing to prioritize once we feel a bit more fleshed out.

Comment on lines +1 to +9
# Maturity Label Implementation Plan

> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.

**Goal:** Add a `maturity` field to ideas that renders as a light-to-dark teal pill badge (with tooltip) in both the idea list eyebrow row and the idea detail metadata strip.

**Architecture:** New `maturity` frontmatter field on idea `.md` files, exposed in GraphQL via a resolver that defaults to `"speculative"` for existing ideas. A shared `MaturityBadge` component reads from a `maturityLevels` constants file and renders an Ant Design `Tooltip`-wrapped pill. Both `IdeaRoll` and `idea-post` template wire in the badge.

**Tech Stack:** Gatsby 5, React 18, TypeScript, Ant Design v5, Vitest, Decap CMS, CSS Modules

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.

So this PR is both a feature but also a way of documenting this agentic process.

With human work, this kind of documentation doesn't live in the repo it lives in project boards, and I'm not sure it feels useful to commit this process document to the repo permanently.

What are the pros and cons of committing plans and specs as we go? Would be interested to discuss this.

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>

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.

We have little to no attention paid to keyboard nav, I'd argue we should basically ignore it until we get to a more complete place and then do a concentrated accessibility pass rather than add it in piece meal right now.

Comment on lines -4 to -8
resources:
- released-emt-dataset
program:
- EMT
date: 2025-10-28T19:10:00.000Z

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.

why were these removed?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

they were just reordered

@meganrm
meganrm requested a review from interim17 August 20, 2026 22:25
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.

3 participants