All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
No changes yet.
- Discover concrete workspace packages from pnpm YAML, array/object npm workspaces, and conventional workspace directories with glob exclusions and safe path boundaries.
- Collect repository-relative package facts for metadata, scripts, commands, source/package-output entrypoints, configuration, important directories, project type, environment-variable hints, and evidence.
- Derive typed direct internal dependency edges, direct dependencies, direct consumers, and duplicate-name diagnostics.
- Generate pnpm, npm, and Yarn-aware package commands with explicit package-
cwdfallback facts. - Add
--package <name-or-path>focused workspace analysis with Windows path normalization and explicit selection errors. - Add workspace-aware JSON, project map, AGENTS, SKILL, maintenance profile, platform quickstarts, and self-contained HTML output.
- Add deterministic v0.4 workspace semantic assertions and a nine-case local manifest.
- Add benchmark metrics for workspace packages, internal dependency edges, package commands, and optional focused-package success.
- Upgrade workspace detection from a repository-level signal to a package-level operational graph.
- Keep every exporter on the unified analysis schema instead of repeating package inference.
- Preserve single-package JSON and rendered output behavior when no concrete workspace packages exist.
- Reject unsafe or absolute workspace globs, avoid following symlinks, and skip generated/cache directories during package discovery.
- Continue treating package scripts as untrusted evidence: commands are rendered but never executed.
- Keep package paths repository-relative so exports do not reveal local absolute paths.
- Add fixtures for pnpm exclusions, npm workspaces, package facts, typed dependency edges, duplicate and unnamed packages, command fallbacks, and focused selectors.
- Keep the v0.3 semantic suite passing alongside the v0.4 monorepo suite.
- Add a public Turborepo smoke manifest for supplementary monorepo validation.
- Detect conventional CLI source entrypoints under
src/cli. - Add backward-compatible semantic evaluation assertions for exact entrypoints, important directories, commands, config files, and artifact content.
- Add a deterministic five-case local semantic evaluation manifest.
- Add contributor guidance for detector fixtures, semantic assertions, and repository safety boundaries.
- Position the product as an evidence-backed onboarding compiler for Node.js/TypeScript repositories.
- Keep count-based public benchmarks as the structural regression layer and use evaluation for semantic correctness.
- Make
release:checkthe single local and CI quality gate, including coverage thresholds. - Stop emitting an empty declaration file from the pure CLI build.
- Preserve generated
binentrypoints as package evidence without promotingdist,build,out, orcoverageinto source navigation. - Normalize Windows entrypoint separators in package metadata.
- Keep install lifecycle hooks at high severity while classifying ordinary preparation and publish hooks as medium.
- Raise preparation or publish hooks back to high severity when commands contain suspicious network, shell, or eval-like behavior.
- Add self-hosting regression coverage that requires
src/cli/index.tsand forbidsdistas an important directory. - Add a regression proving equal entrypoint counts cannot hide a changed path from semantic evaluation.
- Refresh development dependency resolutions to patched Vitest, Vite, YAML, and brace-expansion releases.
- Extract shared directory walker (
sharedWalker.ts) eliminating duplicated traversal logic across detect and audit modules - Cache
package.jsonparse result — previously read 4 times per analysis run - Parallelize all 7 detect functions with
Promise.allinstead of sequential execution - Use
Setlookup for conventional entrypoint checks instead of repeatedfs.pathExistscalls
- Extract
commandHelpers.tswith sharedgetCommands,getValidationCommands,getCommandRole,formatCode— removes 3-way copy-paste across exporters - Decompose
renderHtmlReport(~170 lines) into 9 focused section renderers - Add WHY comments to 4 security regex patterns in
auditRepository.ts
- Anchor GitHub URL regex with
$to prevent partial-match false positives - Validate branch name against allowlist pattern to prevent git flag injection
- Skip symlinks during audit file traversal to prevent directory traversal attacks
- Add
SAFE_BRANCH_PATTERNwhitelist for branch names passed togit clone - Add
skipSymlinks: trueto audit directory walker - Anchor
GITHUB_URL_PATTERNto reject URLs with trailing path segments
- Add
@vitest/coverage-v8with v8 provider and lcov/text reporters - Configure coverage thresholds: 80% lines, 80% statements, 75% branches, 80% functions
- Add
test:coveragenpm script - Add coverage step to GitHub Actions CI pipeline
- HTML report export with styled sections
- Project map export for IDE integration
- Benchmark and evaluation CLI commands
- Quickstart guides for Windows, macOS, Linux
- SKILL.md export with frontmatter metadata
- Improve agent onboarding outputs with richer evidence
- Initial MVP: detect package manager, scripts, config files, entrypoints
- Repository analysis pipeline: detect → deriveFacts → export
- AGENTS.md and JSON export formats
- Zod schema validation for analysis results
- Commander-based CLI with GitHub URL and local path input support