Skip to content

Conversation

@Soundchazer2k
Copy link
Owner

@Soundchazer2k Soundchazer2k commented Nov 12, 2025

What changed & why

  • Add style_scope "collaboration" to schema to represent intentional duos/studios (e.g., Mouse & Kelley, Hipgnosis, Siegel & Shuster).
  • Validator: warn on multi-artist artist strings only when style_scope is "single-artist"; keep warnings off for "movement" and "collaboration".
  • Validator: path normalization fix for group directory checks (Windows-safe).
  • Flip three style cards to style_scope: collaboration to reflect historical collaboration.
  • Docs: new docs/NOTES.md entry and PRD section on the style data model and validator behavior.

Validation / Build outputs

  • pnpm run validate:styles → All style markdowns passed validation.
  • pnpm run build:manifest → Indexed: 211 Skipped: 1 Collections: 32.

Risks & rollback

  • Low risk: schema extension is backwards-compatible; validator only reduces false positives. Roll back by reverting commits on this branch.

Follow-ups

  • If desired, note collaboration scope in README’s contributor guidelines.
  • Optionally add a README validator to CI as planned in AGENTS.md.

Summary by Sourcery

Extend the style frontmatter schema with a collaboration scope and enhance the validator to reduce false positives, then update three existing style cards to use the new scope and document these changes.

New Features:

  • Add a new "collaboration" option to the style_scope field to explicitly represent duo or studio styles

Enhancements:

  • Update the style validator to only warn on multi-artist names when style_scope is "single-artist"
  • Normalize file paths in the validator for Windows-safe group directory checks

Documentation:

  • Add a NOTES.md entry and expand the PRD to document the updated style data model and validator behavior

@sourcery-ai
Copy link

sourcery-ai bot commented Nov 12, 2025

Reviewer's Guide

This PR introduces a new “collaboration” scope in the style frontmatter schema, updates the validation logic to only warn on multi-artist names when the scope is “single-artist”, fixes cross‐platform path checks in the validator, flips three existing style cards to use the collaboration scope (with associated ratio updates), and adds documentation outlining the style data model and validator behavior.

Entity relationship diagram for style cards with collaboration scope

erDiagram
    STYLE_CARD {
      id string
      group string
      display_name string
      artist string
      movement string
      style_scope string
      ratios string[]
      modes string[]
    }
    COLLABORATION_STYLE_CARD {
      style_scope string
      artist string
      movement string
      ratios string[]
    }
    STYLE_CARD ||--|| COLLABORATION_STYLE_CARD : has
Loading

Class diagram for updated style frontmatter schema

classDiagram
class Frontmatter {
  +string id
  +string group
  +string display_name
  +string artist
  +string movement
  +"single-artist"|"movement"|"collaboration" style_scope
  +string[] ratios
  +string[] modes
}
Frontmatter : style_scope = "single-artist" (default)
Loading

Flow diagram for updated validator logic on multi-artist names

flowchart TD
    A["Start validation"] --> B["Read frontmatter.artist"]
    B --> C["Check if artist string looks multi-artist"]
    C --> D["Check style_scope"]
    D -->|"single-artist"| E["Warn: multi-artist string not allowed"]
    D -->|"movement or collaboration"| F["No warning"]
Loading

File-Level Changes

Change Details Files
Extend frontmatter schema to include collaboration scope
  • Add “collaboration” option to style_scope enum
  • Retain default of “single-artist”
scripts/schema.ts
Enhance validator logic for path normalization and gating warnings
  • Introduce helper to normalize file paths for Windows compatibility
  • Require exact or nested directory match for group checks
  • Only warn on multi-artist artist strings when style_scope is “single-artist”
scripts/validate-style.ts
Update existing style cards to use collaboration scope and adjust ratios
  • Change style_scope from single-artist to collaboration on three style files
  • Update hipgnosis card ratios from 2:1 to 16:9 where applicable
styles/psychedelic_art/mouse_kelley_psychedelic_collage.md
styles/record_covers/hipgnosis_surrealist_staging.md
styles/golden_age_comics/siegel_shuster_foundational_superhero.md
Add documentation for style data model and validator behavior
  • Insert Style Data Model & Validation section in PRD.md
  • Create NOTES.md entry describing collaboration scope and validator updates
docs/PRD.md
docs/NOTES.md

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Hey there - I've reviewed your changes - here's some feedback:

  • Consider extracting the path normalization logic (the norm helper) into a shared utility or using path.posix to keep scripts consistent rather than inlining regex replacements in validate-style.ts.
  • Update the README or style-template to document the new "collaboration" style_scope so contributors know to set it when adding duo or studio styles.
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- Consider extracting the path normalization logic (the norm helper) into a shared utility or using path.posix to keep scripts consistent rather than inlining regex replacements in validate-style.ts.
- Update the README or style-template to document the new "collaboration" style_scope so contributors know to set it when adding duo or studio styles.

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.

@Soundchazer2k Soundchazer2k merged commit 25faea8 into main Nov 12, 2025
3 checks passed
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.

2 participants