| Language | Entry page | Status |
|---|---|---|
| Rust | ComparisonStory_rs_textfinder_opt.html | available |
| C++ | ComparisonStory_CppTextFinder.html | available |
| C# | not yet written | planned |
| Python | not yet written | planned |
| Role | C++ | C# | Python | Rust |
|---|---|---|---|---|
| Argument parsing | CommandLine/ | CommandLine/ | CommandLine/ | RustCmdLine/ |
| Directory traversal | DirNav/ | DirNav/ | DirNav/ | RustDirNav/ |
| Result formatting | Output/ | Output/ | Output/ | (merged into EntryPoint) |
| Executable / wiring | EntryPoint/ | EntryPoint/ | EntryPoint/ | EntryPoint/ |
| Independent verifier | (planned) | (planned) | (planned) | RustTfVerify/ |
RustTfVerify.
| Implementation | Language / Standard | Build System |
|---|---|---|
| CppTextFinder | C++23 (named modules) | CMake 3.28+ |
| CsTextFinder | C# / .NET 10 | dotnet / CsTextFinder.sln |
| PyTextFinder | Python 3.x | none (interpreted) |
| rs_textfinder / rs_textfinder_opt | Rust, edition 2018 | Cargo |
Constitution.md governs agent work across all four
implementations: edits are confined to the TextFinder/ subtree, and
any request whose scope, target implementation, or intended effect is ambiguous is
answered with a question rather than a guess. Each implementation
(CppTextFinder/, CsTextFinder/, PyTextFinder/,
rs_textfinder_opt/) then carries its own Constitution.md
that governs design decisions specific to that language. The discipline keeps the
four variants aligned closely enough for the cross-language comparison to be
meaningful.
Constitution.md files (under
CppTextFinder/, CsTextFinder/,
PyTextFinder/, rs_textfinder_opt/, etc.) govern the
design of each implementation. This document governs agent behavior across
all of them.
Code/Projects/TextFinder/ and its subdirectories.Code/ folders, root-level HTML/CSS/JS, or shared site assets
— without explicit authorization for that specific change.class across source files. Median = average of the 10th and 11th
sorted values.
| TextFinder | Files Visited | Files Matched | Min (s) | Median (s) | Max (s) |
|---|---|---|---|---|---|
| PyTextFinder | 1196 | 656 | 0.222 | 0.281 | 0.715 |
| EntryPointOpt | 1196 | 656 | 0.536 | 0.610 | 1.034 |
| CppTextFinder | 1196 | 656 | 0.568 | 0.647 | 0.706 |
| CsTextFinder | 1196 | 656 | 0.827 | 1.053 | 1.456 |
| EntryPoint | 1196 | 656 | 0.873 | 0.905 | 1.402 |
code_metrics.py from the Projects directory.
Lines = total line count (code + comments + blanks).
Scopes = scope-opening tokens: { count for brace
languages; lines ending with : for Python.
| File | Lines | Scopes |
|---|---|---|
| CommandLine\src\CmdLine.ixx | 126 | 29 |
| CommandLine\src\test.cpp | 225 | 79 |
| DirNav\src\DirNav.ixx | 126 | 19 |
| DirNav\src\test.cpp | 491 | 82 |
| EntryPoint\src\main.cpp | 67 | 8 |
| EntryPoint\src\test.cpp | 435 | 59 |
| generate_part.py | 339 | 28 |
| Output\src\Output.ixx | 110 | 17 |
| Output\src\test.cpp | 469 | 70 |
| TOTAL | 2388 | 391 |
| File | Lines | Scopes |
|---|---|---|
| CommandLine\CmdLine.cs | 91 | 11 |
| CommandLine\Test.cs | 50 | 12 |
| DirNav\DirNav.cs | 87 | 16 |
| DirNav\Test.cs | 184 | 47 |
| EntryPoint\Program.cs | 57 | 14 |
| EntryPoint\Test.cs | 138 | 35 |
| generate_part.py | 159 | 14 |
| Output\Output.cs | 66 | 20 |
| Output\Test.cs | 166 | 37 |
| TOTAL | 998 | 206 |
| File | Lines | Scopes |
|---|---|---|
| CommandLine\cmd_line.py | 90 | 20 |
| CommandLine\test_cmd_line.py | 70 | 20 |
| DirNav\dir_nav.py | 80 | 23 |
| DirNav\test_dir_nav.py | 153 | 35 |
| EntryPoint\PyTextFinder.py | 70 | 9 |
| EntryPoint\test_main.py | 115 | 35 |
| generate_part.py | 156 | 12 |
| Output\output.py | 57 | 20 |
| Output\test_output.py | 114 | 33 |
| TOTAL | 905 | 207 |
| File | Lines | Scopes |
|---|---|---|
| RustCmdLine\examples\test1.rs | 43 | 15 |
| RustCmdLine\src\cmd_line_lib.rs | 242 | 52 |
| RustDirNav\examples\test1.rs | 77 | 14 |
| RustDirNav\src\dir_nav_lib.rs | 294 | 53 |
| EntryPoint\src\text_finder.rs | 297 | 77 |
| RustTfVerify\src\main.rs | 760 | 137 |
| TOTAL | 1715 | 348 |
| File | Lines | Scopes |
|---|---|---|
| RustCmdLine\examples\test1.rs | 43 | 15 |
| RustCmdLine\src\cmd_line_lib.rs | 243 | 52 |
| RustDirNav\examples\test1.rs | 77 | 14 |
| RustDirNav\src\dir_nav_lib.rs | 292 | 52 |
| EntryPoint\src\text_finder.rs | 319 | 78 |
| RustTfVerify\src\main.rs | 760 | 137 |
| TOTAL | 1736 | 348 |