Skip to content

feat(init): auto-discover monorepo packages from workspace config #333

Description

@BryanFRD

Package
Which package does this affect? [x] cli [ ] schema [ ] docs [ ] ci

Problem / Motivation
When running ferrflow init in a monorepo, the user must manually list all packages. Common workspace managers already declare the package list:

  • npm/pnpm/yarn: workspaces field in root package.json
  • Rust: [workspace] members in root Cargo.toml
  • Go: go.work file
  • Gradle: settings.gradle(.kts) includes

Proposed solution
During ferrflow init, if no config exists, detect the workspace type and auto-populate the package array:

  1. Parse the workspace config file to get package paths
  2. For each discovered package, run the existing auto_detect() logic to find versioned files
  3. Generate the config with all packages pre-filled
  4. In interactive mode, let the user confirm/edit before writing

This removes the biggest friction point in monorepo setup — manually listing every package with its path and versioned files.

Alternatives considered
None considered explicitly — this is the natural shape.

Additional context
None.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions