Problem
When running repowise init on a Luau/Roblox project (using Rojo project structure), the dependency graph produces 0 edges across 21 source files. Repowise's parser doesn't recognize Luau's require() paths (e.g., require(script.Parent.ModuleName) or Rojo-resolved paths like require(game.ReplicatedStorage.Packages.Signal)).
As a result:
- The dependency graph is 21 disconnected nodes with 0 edges
- Only 2 pages are generated (repo overview + architecture diagram) instead of per-module docs
get_dependency_path() returns no connections between any modules
- The overview misidentifies the tech stack (calls
.luau files "TypeScript")
Proposed Solution
Add a Luau file parser that understands:
require(script.Parent.X) / require(script.X) relative instance paths
require(game.Service.Path.Module) absolute instance paths
- Rojo project JSON mapping (
default.project.json) to resolve filesystem paths to Roblox instance trees and back
.luau / .lua file extensions as a distinct language (Luau), not TypeScript
Alternatives Considered
- Rojo project JSON as a hint file — Repowise could read
default.project.json to understand the filesystem-to-instance mapping without needing full Luau AST parsing
- Regex-based extraction — simple pattern matching on
require(...) calls to extract dependency names, even without full path resolution
Additional Context
- Rojo is the standard tool for syncing filesystem Luau code to Roblox Studio
- Luau is a gradually-typed language derived from Lua, used exclusively by the Roblox engine
- Typical project structure:
src/client/, src/server/, src/shared/ mapped via default.project.json
- Tested with:
repowise init --provider gemini --concurrency 1 -y (v0.1.31)
- The decision extraction from docs (22 records) worked well — the gap is purely in source code parsing and language detection
-Opus 4.6
Problem
When running
repowise initon a Luau/Roblox project (using Rojo project structure), the dependency graph produces 0 edges across 21 source files. Repowise's parser doesn't recognize Luau'srequire()paths (e.g.,require(script.Parent.ModuleName)or Rojo-resolved paths likerequire(game.ReplicatedStorage.Packages.Signal)).As a result:
get_dependency_path()returns no connections between any modules.luaufiles "TypeScript")Proposed Solution
Add a Luau file parser that understands:
require(script.Parent.X)/require(script.X)relative instance pathsrequire(game.Service.Path.Module)absolute instance pathsdefault.project.json) to resolve filesystem paths to Roblox instance trees and back.luau/.luafile extensions as a distinct language (Luau), not TypeScriptAlternatives Considered
default.project.jsonto understand the filesystem-to-instance mapping without needing full Luau AST parsingrequire(...)calls to extract dependency names, even without full path resolutionAdditional Context
src/client/,src/server/,src/shared/mapped viadefault.project.jsonrepowise init --provider gemini --concurrency 1 -y(v0.1.31)-Opus 4.6