Skip to content

Milestones

List view

  • # Future Phases - **CFR Support**: `@law2md/cfr` package for Code of Federal Regulations (USLM 2.x schema from GPO/govinfo) - **State Statutes**: `@law2md/state-il`, etc. (state-specific XML/HTML parsers) - **Incremental Updates**: Detect release point changes and only re-convert modified titles - **MCP Server**: Expose as an MCP tool for AI agents to query legal text on demand - **Embedding Pipeline**: Optional integration with embedding models (OpenAI, Cohere) to produce pre-computed vectors alongside Markdown - **Diff Support**: Generate diffs between release points showing what changed

    Overdue by 22 day(s)
    Due by March 31, 2026
  • # Phase 4: Polish & Publish **Goal**: Documentation, CI/CD, npm publish, GitHub release. - Write comprehensive README.md with usage examples - Write CONTRIBUTING.md - Write OUTPUT_FORMAT.md (specification for downstream consumers) - Write EXTENDING.md (guide for adding new source types) - Implement `law2md index` command for standalone index generation - Configure GitHub Actions CI (lint, typecheck, test on PR) - Configure Changesets for versioning - Configure npm publish workflow - Add snapshot tests for output stability - Add integration test that converts Title 1 end-to-end - Publish `law2md` to npm registry - Create GitHub release with changelog **Exit criteria**: `npx law2md download --title 1 && npx law2md convert ./downloads/usc01.xml` works out of the box. All packages published to npm.

    Overdue by 22 day(s)
    Due by March 31, 2026
    1/1 issues closed
  • # Phase 3: Scale & Download **Goal**: Handle large titles (26, 42), add download capability, performance optimization. - Implement streaming file output (emit sections as they complete, don't hold full title AST) - Implement `law2md download` command - URL pattern construction for OLRC release points - Zip download and extraction via `yauzl` - Current release point detection (scrape or hardcode with override) - Implement `--concurrency` for parallel file writes - Memory profiling with Title 26 (IRC) and Title 42 - Implement progress reporting (section count, elapsed time, memory) - Implement `--dry-run` mode - Handle edge cases: repealed sections, reserved sections, transferred sections - Handle appendix titles (Title 5 Appendix, Title 11 Appendix) **Exit criteria**: `law2md download --all && law2md convert ./downloads -o ./output` completes for all 54 titles without OOM. Title 26 processes in < 5 minutes on commodity hardware.

    Overdue by 22 day(s)
    Due by March 31, 2026
    1/1 issues closed
  • # Phase 2: Content **Goal**: Handle all USLM content elements, cross-references, notes, and tables. - Implement handlers for all hierarchical levels (subsection through subsubitem) - Implement `<chapeau>` / `<continuation>` / `<proviso>` handling - Implement `<ref>` → Markdown link conversion with link resolver - Implement `<quotedContent>` → blockquote - Implement `<def>` / `<term>` → definition formatting - Implement `<table>` (XHTML namespace) → Markdown table - Implement `<layout>` (column-oriented) → Markdown table - Implement note extraction with topic-based filtering - Implement `<sourceCredit>` extraction - Implement `--include-notes`, `--include-amendments`, etc. flags - Implement chapter-level granularity mode - Generate `_meta.json` index files - Test with Title 1 (simple) and Title 5 (moderate complexity) **Exit criteria**: All content elements in Title 1 and Title 5 render correctly. Notes are filterable. Cross-references resolve to relative links within the output.

    Overdue by 22 day(s)
    Due by March 31, 2026
    1/1 issues closed
  • # Phase 1: Foundation **Goal**: Monorepo scaffold, core XML parsing, basic section-level Markdown output for Title 1. - Initialize Turborepo workspace with `core`, `usc`, `cli` packages - Configure TypeScript (strict, ESM, path aliases) - Configure tsup builds, vitest, eslint, prettier - Implement SAX-based XML parser in `@law2md/core` - Define USLM namespace constants and element type enums - Define intermediate AST node types - Implement AST builder (XML events → AST) - Implement basic Markdown renderer (AST → string) - Implement YAML frontmatter generation - Implement section-level file writer - Create `law2md convert` command (local file input only) - Test with `usc01.xml` — verify section output matches expected **Exit criteria**: `law2md convert usc01.xml -o ./output` produces correct section-level Markdown for all of Title 1 with frontmatter.

    Overdue by 1 month(s)
    Due by February 28, 2026
    1/1 issues closed