Skip to content

Test init command against example repository catalog #125

@miohansen

Description

@miohansen

Test init command against example repository catalog

Overview

Validate the eac init --scan --ai-provider claude-api functionality against the example repositories listed in .claude/commands/migrate-repo.md to ensure proper module detection, configuration generation, and multi-language support.

Test Repositories

Go Projects

  • cobra - https://github.com/spf13/cobra - CLI library (single module)
  • hugo - https://github.com/gohugoio/hugo - Static site generator (monorepo)
  • traefik - https://github.com/traefik/traefik - Cloud native reverse proxy (multi-module)

Python Projects

  • flask - https://github.com/pallets/flask - Web framework (single module)
  • django - https://github.com/django/django - Web framework (monorepo structure)
  • requests - https://github.com/psf/requests - HTTP library (simple structure)

Rust Projects

  • ripgrep - https://github.com/BurntSushi/ripgrep - Fast grep tool (Cargo workspace)
  • tokio - https://github.com/tokio-rs/tokio - Async runtime (complex monorepo)
  • serde - https://github.com/serde-rs/serde - Serialization framework (multi-crate)

TypeScript/JavaScript Projects

  • vscode - https://github.com/microsoft/vscode - Code editor (large monorepo)
  • react - https://github.com/facebook/react - UI library (monorepo with multiple packages)
  • next.js - https://github.com/vercel/next.js - React framework (monorepo)

.NET Projects

  • roslyn - https://github.com/dotnet/roslyn - C# compiler (solution with multiple projects)
  • aspnetcore - https://github.com/dotnet/aspnetcore - ASP.NET Core framework

Java Projects

  • spring-boot - https://github.com/spring-projects/spring-boot - Application framework (Gradle multi-module)
  • elasticsearch - https://github.com/elastic/elasticsearch - Search engine (Gradle build)

Test Process

For each repository:

  1. Clone repository:

    git clone <repo-url> /c/source/ready-to-release/<repo-name>
    cd /c/source/ready-to-release/<repo-name>
  2. Run init with AI:

    eac init --scan --ai-provider claude-api
  3. Verify results:

    • .eac/repository.yml created with correct structure
    • Modules detected correctly (count matches expected)
    • Language and build tools identified correctly
    • Module descriptions are meaningful (AI-generated)
    • Repository type (mono/poly) is appropriate
    • No errors or warnings during scan
  4. Validate config:

    eac show modules
    cat .eac/repository.yml

Expected Outcomes

Single Module Repos

  • Should detect 1 module
  • Module name should match project name
  • Component type should be appropriate (library, cli-tool, etc.)

Monorepos

  • Should detect multiple modules
  • Module boundaries should align with package managers (go.mod, package.json, etc.)
  • Dependencies between modules should be inferred (if possible)

Complex Projects

  • Should handle nested modules correctly
  • Should skip vendor/node_modules directories
  • Should handle multiple languages in same repo

Success Criteria

  • At least 80% of test repositories initialize without errors
  • Module detection accuracy is >90%
  • AI-generated descriptions are contextually relevant
  • Scanner handles all supported languages (Go, Python, Rust, TypeScript, .NET, Java)
  • Smart re-initialization works (run eac init twice on same repo)

Known Issues to Watch For

  • Large repos (vscode, elasticsearch) may be slow to scan
  • Some repos may have unusual structures that scanner misses
  • AI provider rate limits if testing many repos quickly
  • Nested package.json files in node_modules should be skipped

Related

Labels

testing, init-command, quality-assurance, validation

Metadata

Metadata

Assignees

Labels

Type

Projects

Status

In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions