LogicStamp Fox Mascot
Early Access

Help Us Build This

Get Early Access

We'll send you updates as we add features and improve LogicStamp

LogicStamp is live, and we're looking for early users to help us improve

LogicStamp is currently built and maintained primarily by Amit Levi, with early contributions from the community. I'd love more collaborators - your feedback and ideas directly shape what we build next.

πŸ—ΊοΈ Roadmap

Here's what we're building next. Your feedback will help us prioritize what matters most.

Roadmap

Planned features, improvements, and known limitations. See CHANGELOG.md for release notes.

Current Status

Version: v0.8.7 (Beta)

Recent milestones:

  • Biome baseline and CI linting (v0.8.7) - Added biome.json, Biome lint/format scripts and dependency setup, updated contributing docs for lint/format workflows, applied a one-time formatting baseline across the codebase, and added a Biome lint step to CI. No runtime or behavioral changes intended
  • Runtime caches, NodeNext/ESM alignment, dependency refresh (v0.8.6) - Encapsulated tokenizer and package.json caches behind runtime/loader helpers. Switched TypeScript module and moduleResolution to NodeNext, added conditional exports (types + import), normalized bin paths, and updated dependencies to current compatible versions
  • Watch lock, file lock, secrets, compare fixes (v0.8.5) - Watch: synchronous isRegenerating flag and queued change processing instead of a promise-based lock race. File lock: exclusive write helper with cleanup on failed write/close; Windows PID liveness via tasklist (with safe fallbacks) instead of process.kill(pid, 0). Secret scanner: case-insensitive AWS/GitHub/PEM patterns. skip invalid match indices before snippets. Compare: exportKind treats exports.named as named only when it is a non-empty array
  • CLI packaging, paths, and token summary (v0.8.4) - logicstamp-context registered as npm bin (fixes npx logicstamp-context). centralized normalizeEntryId / toForwardSlashes across CLI, watch, pack loader, and AST; stamp context summary shows the current mode’s exact token count vs raw source with savings % (use --compare-modes for full breakdown). tag-based npm publish via GitHub Actions and updated contributing/release docs
  • Secret scanner & watch reliability (v0.8.3) - Long-line skip and regex optimizations in secret detection. watch logging, full rebuild fallback after incremental errors, async/error hardening
  • Documentation layout, watch perf, path boundaries (v0.8.2) - Core docs under docs/guides/ and docs/reference/ with link updates; style/framework docs aligned with CLI; watch mode avoids Array.from on the contract map (direct Map iteration per change); centralized isPathWithinRoot for pack loader and hash-lock
  • CLI argument validation and robustness fixes (v0.8.1) - Numeric arg validation for --depth/--max-nodes, safe compare normalization, token savings bounds
  • --strict flag for compare (v0.8.0) - Exit code 1 on breaking changes
  • Git baseline comparison (v0.7.2) - --baseline git:<ref> for drift detection
  • Full contract comparison (v0.7.2) - State, variables, API signatures, prop/emit types
  • Strict watch enhancements (v0.7.1) - Session tracking, --strict-watch, --verbose
  • Watch mode (v0.4.1) - Incremental rebuilds, change detection
  • Backend support (v0.4.0) - Express.js, NestJS

Bug Fixes & Accuracy

High Priority

ItemStatusNotes
Emit Detectionβœ… v0.3.7Only extracts prop-based handlers. See limitations.md
Dynamic Class Parsingβœ… Phase 1 (v0.3.9), 🟑 Phase 2 planned~70-80% coverage. Phase 2: object lookups, cross-file refs. See limitations.md

Medium Priority

ItemStatusNotes
CSS-in-JSβœ… v0.5.1All major libs: styled-components, Emotion, MUI, ShadCN, Radix, Framer, Chakra, Ant Design
Third-Party Info🟑 Phase 1 donePackage names + versions. Phase 2: prop types from .d.ts
TypeScript Types🟑 PartialMissing: generics, complex unions/intersections. See limitations.md
Project-Level InsightsπŸ”΄ Not startedCross-folder relationships, project-wide stats in context_main.json

Low Priority

ItemStatusNotes
Test File AnalysisπŸ”΄ Not startedExcluded by design. Optional flag if requested.
Comment Extraction🟑 PartialJSDoc only. Missing: //, /* */, TODOs
Runtime Behavior HintsπŸ”΄ Not startedExpected limitation (static analysis)

Framework Expansion

Near-Term

ItemStatusNotes
Backend Supportβœ… v0.4.0Express, NestJS. Routes, HTTP methods, API signatures. Future: Fastify, Koa, Hapi.
JavaScript & JSXπŸ”΄ Not startedAdd .js/.jsx. JSDoc type inference. High priority
Watch Modeβœ… v0.4.1Incremental rebuilds, debouncing, status file, --strict-watch. See watch.md

Future

ItemStatusNotes
Vue SFC🟑 PartialVue 3 TS/TSX done. Missing: .vue file parsing. High
SvelteπŸ”΄ Not started.svelte files. Medium
PythonπŸ”΄ PlannedDepends on conditional schema. FastAPI, Django, Flask. Medium
JavaπŸ”΄ PlannedDepends on conditional schema. Spring Boot. Medium

Future Enhancements

Comparison & Drift Detection

Git Baseline βœ… v0.7.2 β€” Compare against any git ref: stamp context compare --baseline git:main. Uses worktrees; generates context at baseline + current, then compares. Hash-only changes filtered in git mode (TS resolution differences). Works with branches, tags, commits. Limitations: local refs only, no caching. See compare.md for hash behavior, use cases, and full details.

Enhanced Compare βœ… v0.7.2 β€” Full contract comparison: state, variables, API signatures, prop/emit type changes. Matches watch mode behavior.

Compare export classification βœ… v0.8.5 β€” exportKind classifies named exports only when exports.named is a non-empty array; malformed shapes map to none instead of a false named match.

Schema & Architecture

Conditional Schema by Language πŸ”΄ Planned β€” Make UIFContract schema conditional on kind (e.g., style only for frontend, apiSignature required for backend). Prerequisite for Python/Java. Depends on JS/JSX support first. High priority.

  • Tokenizer/package cache encapsulation βœ… v0.8.6 β€” Replaced module-level tokenizer and package.json caches with TokenizerRuntime and PackageJsonLoader, plus create* / clear* helpers re-exported from the package root.

Performance & Optimization

  • Context summary token display βœ… v0.8.4 β€” Summary uses the current mode’s measured token count only (no blended heuristics), compares to raw source with savings %, and points to --compare-modes for per-mode detail.

  • Formal benchmarks πŸ”΄ Planned β€” Today: stamp context --compare-modes already compares bundle token costs across modes on your repo (optional context_compare_modes.json with --stats). Planned work adds published baselines and methodology: fixed reference corpora, reproducible tables, CI or scheduled runs, and assistant-side task evals. Two tracks where possible:

    • Tool / runtime β€” Cold/warm stamp context, watch incremental cost, memory, scaling with repo size.
    • LLM / workflow (with vs without LogicStamp) β€” The main question: do models do better when given LogicStamp bundles than when they only see raw source (or minimal repo context)? Planned evals hold tasks and prompts fixed, vary only the context channel (bundles vs baseline), and report metrics such as task success, prop/API factual accuracy, tokens to a correct answer, and hallucination rate. Complements per-repo token comparison from --compare-modes; extends the docs with published numbers others can reproduce on reference corpora.
  • Incremental watch optimization βœ… v0.8.2

    • Avoid unnecessary array allocations during incremental rebuilds
    • Direct Map iteration for contract lookups reduces per-change overhead
    • Improves performance for large codebases in watch mode

Security & Reliability

  • Path traversal protection hardening βœ… v0.8.2

    • Centralized isPathWithinRoot for consistent project boundary enforcement
    • Prevents file access outside project root in pack loader and hash-lock flows
    • Aligns validation across loadContract, readSourceCode, and related fs operations
  • Path normalization consistency βœ… v0.8.4

    • Standardizes normalizeEntryId and toForwardSlashes across CLI, watch mode, pack loader, and AST handling
    • displayPath() delegates to toForwardSlashes() (bundle diff still uses normalizeName() where appropriate)
  • Secret detection performance & safety βœ… v0.8.3

    • Skips very long lines (1000+ characters) to avoid pathological regex cost
    • Fewer per-line RegExp allocations; simplified overlapping patterns (api[_-]?key, etc.)
  • Secret detection consistency βœ… v0.8.5

    • Case-insensitive matching for AWS-style keys, GitHub token prefixes, and PEM private-key headers (aligned with other patterns)
    • Skip recording a match when match.index or full match text is invalid before building snippets
  • Watch mode error handling βœ… v0.8.3

    • Clearer logging for context load/read failures (respects --quiet)
    • Full rebuild fallback after incremental errors to restore consistent state
    • Hardened async/error paths to avoid masked failures and unhandled rejections
  • Watch mode regeneration lock βœ… v0.8.5

    • Synchronous isRegenerating flag replaces promise-based lock to avoid races when multiple callers process the same file changes
    • while loop drains changes that arrive during regeneration
  • File lock robustness βœ… v0.8.5

    • writeLockFileExclusive() removes empty or partial .lock files if write or close fails after exclusive create
    • Windows: use tasklist to detect whether the lock PID still exists; treat current process as alive; indeterminate tasklist output does not drop valid locks (fixes lost updates under heavy concurrent waiters, e.g. appendWatchLog)
  • βœ… Incremental bundle caching (watch mode)

  • Style verbosity reduction πŸ”΄ β€” Less verbose style for nested components with depth=2; planned --full-style flag for full extraction (distinct from --style-mode full). ~30-40% token reduction.

  • Output size optimization β€” Further token reduction

Configuration & DX

  • NodeNext / ESM package alignment βœ… v0.8.6 β€” tsconfig.json now uses NodeNext for both module and moduleResolution; package exports include types and import; bin paths normalized for cleaner ESM-aware publishing and consumption.
  • βœ… Normalized paths, --verbose (v0.7.1)
  • npm CLI entry (npx) βœ… v0.8.4 β€” package.json bin maps logicstamp-context to the same CLI as stamp, so npx logicstamp-context works reliably.
  • Release & publish workflow βœ… v0.8.4 β€” Tag-based npm publishing in GitHub Actions; contributing guidelines aligned with the new release process.
  • Custom profiles β€” User-defined beyond presets
  • Integration examples β€” Cursor, Claude, Copilot
  • Debugging tools β€” Better diagnostics

Known Limitations

See docs/reference/limitations.md for full details with code evidence.

Summary: Dynamic classes Phase 1 done (~70-80%); TypeScript generics/complex unions missing; third-party prop types missing (names/versions done); no project-level insights; JSDoc only for comments; test files excluded by design.

Coverage: ~95% component contracts, ~100% imports, ~90-95% style metadata.


Contributing

  1. See CONTRIBUTING.md
  2. Open an issue to discuss
  3. Submit a PR

Priority areas: Dynamic class Phase 2, JS/JSX support, third-party prop types, Vue SFC parsing.


Feedback

This roadmap is actively maintained. This is a solo project, so priorities will shift based on what I learn from early users.

For the complete roadmap with detailed implementation plans, see Context ROADMAP.md and MCP ROADMAP.md. For known limitations with code evidence, see Known Limitations.

Looking for contributors! If you're interested in helping build LogicStamp, check out the contributing guide or reach out directly.

Repositories: CLI β€’ MCP Server

Who Should Join?

We're looking for developers who use AI assistants and want to help us make this better

Developers Using AI Assistants

If you're already using Cursor, Copilot, or Claude regularly, you probably know the pain of managing context. Help us make it better.

Teams with React/TypeScript Codebases

LogicStamp works best with React and TypeScript right now. If that's your stack, we'd love to see how it works for your team.

Open Source Maintainers

If you maintain an open source project, we think LogicStamp could help contributors understand your codebase faster. We'd love to test this theory.

People Who Like Trying New Tools

If you enjoy being an early adopter and don't mind the occasional rough edge, we'd love your feedback. We're responsive and actually listen.

Contributors Welcome

This is a solo project, and I'm actively looking for contributors! Whether it's bug fixes, new features, or documentation improvements, your contributions are welcome. Check out the contributing guide to get started.

Developers with Large Codebases

If you're working on a large codebase where context management is a real challenge, LogicStamp could help. We're especially interested in feedback from projects with complex architectures or many components.

Want to Help Us Build This?

We're just getting started. Your feedback will help us figure out what to build next.

Open source CLI β€’ Free to use β€’ Built with your feedback β€’ Looking for contributors