Skip to content

Commit 67bb4e9

Browse files
committed
docs(dirtree): annotate every file/dir with its purpose; track .dirtree-state
Added one-line purpose notes for ~86 entries (all source, configs, tests, utils, web, docs, and directories) via 'dirtree annotate', and un-ignored .dirtree-state so the metadata is version-controlled. No CODE_MINIMAP.md existed to supersede.
1 parent 99a0f62 commit 67bb4e9

2 files changed

Lines changed: 92 additions & 1 deletion

File tree

.dirtree-state

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
# Dirtree: Stateful directory trees in the CLI for humans and LLMs. https://github.com/pmarreck/dirtree
2+
ver=1.2
3+
depth=3
4+
color=false
5+
6+
annotate=[
7+
.envrc = direnv: auto-enter the Nix dev shell
8+
.github = GitHub Actions CI configuration
9+
.github/workflows/ci.yml = GitHub Actions: nix build/test (linux/darwin), cross-compile, windows
10+
.gitignore = Git ignore rules
11+
.nojekyll = Disable Jekyll on GitHub Pages so symlinks/underscored paths are served
12+
AGENTS.md = TDD and workflow discipline for AI agents working in this repo
13+
CHARACTER_WIDTHS.md = Notes on terminal character-width (East Asian Width) handling
14+
CLAUDE.md = Repository-specific instructions for Claude Code
15+
COMPARISON_WITH_BAT.md = Feature/behavior comparison against the bat pager
16+
C_VS_LUAJIT_PERFORMANCE.md = Performance notes comparing the C and LuaJIT implementations
17+
FUTURE_WORK.md = Roadmap and ideas not yet scheduled
18+
LICENSE = Project license
19+
Makefile = Build targets: native C, WASM (emcc), APE (cosmocc), PGO
20+
NEXT_STEPS.md = Short-term planned next steps
21+
README.md = Project overview, usage, and cross-implementation performance table
22+
README_IMPLEMENTATIONS.md = Per-implementation details and how they relate
23+
WEB_README.md = Docs for the web/WASM browser demo
24+
bin = Runnable CLI entry points (Lua/Node) + prebuilt APE binary and the runtime map
25+
bin/character_map.txt = Symlink -> ../character_map.txt (runtime map for the Lua CLI)
26+
bin/printable-binary = LuaJIT CLI (the original reference implementation)
27+
bin/printable-binary-node.js = Node.js CLI (ESM)
28+
bin/printable_binary_ape.com = Prebuilt Actually-Portable-Executable (Cosmopolitan) C binary
29+
bm = Ad-hoc benchmark scripts (C vs Lua vs Zig)
30+
bm/benchmark-zig-opt = Zig optimization benchmark
31+
bm/benchmark_c_vs_lua.sh = C vs Lua benchmark script
32+
bm/benchmark_comparison.lua = Cross-implementation comparison benchmark (Lua)
33+
build = Convenience build script
34+
build.zig = Zig build: CLI, C-ABI static lib (PIC), unit tests
35+
build.zig.zon = Zig package manifest
36+
character_map.txt = SOURCE OF TRUTH byte->glyph map (256 lines, ## comments) all builds derive from
37+
character_map_embedded.h = Generated C embedding of character_map.txt (via utils/generate_embedded_map.lua)
38+
docs = GitHub Pages web demo (symlinks to root) + design plans
39+
docs/character_map.txt = Symlink -> ../character_map.txt
40+
docs/index.html = Symlink -> ../index.html
41+
docs/plans/2026-02-03-double-encode-detection-design.md = Design doc: double-encode detection
42+
docs/printable_binary.js = Symlink -> ../js/printable_binary.js
43+
flake.lock = Pinned flake input revisions
44+
flake.nix = Nix packages (native/zig/wasm/ape) + Garnix checks (test-c/zig/js/ffi/leak/...)
45+
index.html = Root web demo page (served by GitHub Pages from /)
46+
js = Shared JavaScript module used by the Node CLI and the browser demo
47+
js/printable_binary.js = Shared JS module (encode/decode/parseMap) for the Node CLI and browser
48+
lib = Vendored Lua helper libraries
49+
lib/xxhash32.lua = xxHash32 implementation in Lua
50+
package.json = Node ESM manifest (type:module) for the JS implementation
51+
printable_binary.js = Symlink -> js/printable_binary.js so the root web page can import it
52+
src = Core implementations: standalone C, the C FFI header/CLI, and the Zig core+CLI
53+
src/printable_binary.c = Standalone, dependency-free C implementation + CLI (portable build)
54+
src/printable_binary.h = Public C FFI header -- the real cross-language API (pb_encode/decode/hexlike/...)
55+
src/printable_binary_ffi_main.c = C CLI that dogfoods the FFI by calling the Zig lib through the C ABI
56+
src/zig = Zig core library (logic + pb_* C ABI exports) and the Zig CLI
57+
src/zig/main.zig = Zig CLI (argument parsing + I/O around the Zig core)
58+
src/zig/printable_binary.zig = Zig core: encode/decode/hexlike logic + comptime map + pb_* C ABI exports
59+
test = Test suites: functional, fuzz, benchmark, leak, cross-implementation, unit
60+
test/benchmark_test = Encode/decode throughput benchmark (Zig default, announces impl)
61+
test/fuzz_test = Seeded random-data roundtrip fuzzer (reproducible via --seed)
62+
test/js = JavaScript unit tests (Deno/Node)
63+
test/js/test_printable_binary.js = JS unit tests (Deno/Node)
64+
test/leak_harness.c = FFI-driven leak harness: loops pb_* alloc/free, self-reports RSS
65+
test/leak_test = Memory-leak suite: runs a target long-lived and fails on RSS growth
66+
test/printable-binary-ape-wrapper = Wrapper to invoke the APE binary in tests
67+
test/test = Main cross-implementation functional suite (IMPLEMENTATION_TO_TEST-selectable)
68+
test/test-all = Master runner that exercises every implementation
69+
test/test_ape_arch_slice = APE multi-arch slice verification
70+
test/test_cross_implementation.sh = Cross-implementation output comparison
71+
test/test_node_cli_stats = Node CLI stats/stderr behavior test
72+
test/test_validate.c = C unit tests for pb_validate
73+
test/test_wasm = WASM build validation (via WASI runtime)
74+
utils = Tooling: map generation/auditing, fuzz PRNG, EAW data, analysis scripts
75+
utils/audit_character_map.lua = Audits the character map for conflicts/issues
76+
utils/data = Reference data (Unicode East Asian Width table)
77+
utils/data/EastAsianWidth.txt = Unicode East Asian Width reference data
78+
utils/diagnose.sh = Diagnostic helper
79+
utils/dump-chars.sh = Dump the character map for inspection
80+
utils/generate_embedded_map.lua = Generates character_map_embedded.h from character_map.txt (## aware)
81+
utils/js = One-off JS scripts used while designing/auditing the character map
82+
utils/js/analyze_encoding_sizes.js = One-off: analyze encoded-size distribution
83+
utils/js/compare_all_maps.js = One-off: compare candidate maps
84+
utils/js/compare_maps.js = One-off: compare two maps
85+
utils/js/debug_maps.js = One-off: debug map building
86+
utils/js/debug_test.js = One-off: debugging scratch
87+
utils/js/find_available.js = One-off: find available glyphs
88+
utils/js/find_conflicts.js = One-off: find glyph conflicts
89+
utils/js/find_replacements.js = One-off: find replacement glyphs
90+
utils/prng = LuaJIT PRNG utility for deterministic fuzz data
91+
utils/update_eaw_data.sh = Refresh the Unicode East Asian Width data file
92+
]

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
**/.claude/settings.local.json
22
.DS_Store
33
**/.DS_Store
4-
.dirtree-state
54
.ape-*
65

76
# Compiled binaries (non-APE)

0 commit comments

Comments
 (0)