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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions