registry  /  roadmapped  /  0.1.0

roadmapped@0.1.0

Project management as flat files in your repo — YAML tasks, a computed roadmap, driven by your AI agent through a CLI and a Claude skill. No database, no SaaS, no account.

Static Scan Results

scanned 1d ago · by rust-scanner

Static analysis flagged 13 finding(s) at 72.0% confidence. This version is warn-only unless an AI or security-team review confirms malicious behavior.

Static reason
One or more suspicious static signals were detected.

Decision evidence

public snapshot
Behavioral surface
Source
ChildProcessDynamicRequireEnvironmentVarsFilesystemNetworkShell
Supply chain
HighEntropyStringsMinifiedObfuscatedUrlStrings
ManifestNo manifest risk signals triggered.
scanned 65 file(s), 1.85 MB of source, external domains: base-ui.com, github.com, reactjs.org, www.w3.org

Source & flagged code

5 flagged · loading source
bin/roadmapped.mjsView file
20L21: const { spawnSync } = await import('node:child_process') L22: const { fileURLToPath, pathToFileURL } = await import('node:url')
High
Child Process

Package source references child process execution.

bin/roadmapped.mjsView on unpkg · L20
20Manifest entrypoint (manifest.bin) carries capability families absent from dist/build output: environment+network, execution+network L20: L21: const { spawnSync } = await import('node:child_process') L22: const { fileURLToPath, pathToFileURL } = await import('node:url') ... L71: const { findHostRoot } = await importPkg('src/lib/paths.ts') L72: const envRoot = process.env.ROADMAPPED_ROOT L73: const hostRoot = envRoot && envRoot.trim() !== '' ? resolve(envRoot) : findHostRoot() ... L94: try { L95: const res = await fetch(`http://localhost:${p}/api/tree`, { signal: AbortSignal.timeout(500) }) L96: const body = res.ok ? await res.json().catch(() => null) : null L97: return body && typeof body.ok === 'boolean' && body.hostRoot === hostRoot ? p : null
High
Entrypoint Build Divergence

Manifest entrypoint contains risky behavior absent from dist/build output.

bin/roadmapped.mjsView on unpkg · L20
20L21: const { spawnSync } = await import('node:child_process') L22: const { fileURLToPath, pathToFileURL } = await import('node:url')
Medium
Dynamic Require

Package source references dynamic require/import behavior.

bin/roadmapped.mjsView on unpkg · L20
src/lib/updateNotifier.tsView file
123const child = spawn(`npm install github:${REPO} && npx roadmapped upgrade`, { L124: cwd: hostRoot, detached: true, stdio: 'ignore', shell: true, L125: })
High
Shell

Package source references shell execution.

src/lib/updateNotifier.tsView on unpkg · L123
122function runUpdate(hostRoot: string): void { L123: const child = spawn(`npm install github:${REPO} && npx roadmapped upgrade`, { L124: cwd: hostRoot, detached: true, stdio: 'ignore', shell: true,
High
Runtime Package Install

Package source invokes a package manager install command at runtime.

src/lib/updateNotifier.tsView on unpkg · L122

Findings

4 High4 Medium5 Low
HighChild Processbin/roadmapped.mjs
HighShellsrc/lib/updateNotifier.ts
HighEntrypoint Build Divergencebin/roadmapped.mjs
HighRuntime Package Installsrc/lib/updateNotifier.ts
MediumDynamic Requirebin/roadmapped.mjs
MediumNetwork
MediumEnvironment Vars
MediumStructural Risk Force Deep Review
LowScripts Present
LowFilesystem
LowObfuscated
LowHigh Entropy Strings
LowUrl Strings