FuncPipe Code Route Map¶
flowchart TD
pressure["Course or review pressure"] --> map["Code Route Map"]
map --> packages["Source packages"]
packages --> proofs["Proof tests"]
proofs --> next["Focused inspection route"]
flowchart TD
question["Ask a package or concept question"] --> start["Open the first listed package"]
start --> corroborate["Open the paired proof files"]
corroborate --> refine["Refine the question before widening the route"]
Use this guide when a course page tells you to "inspect the capstone" but you still need one concrete route into the current source tree. The point is to keep learners out of directory wandering and move them from concept to package to proof with one stable map.
Start with the question you have¶
| If you are asking... | Open these source packages first | Then open these proofs |
|---|---|---|
| Where do the pure helpers and composition primitives live? | src/funcpipe_rag/fp/, src/funcpipe_rag/result/, src/funcpipe_rag/streaming/, src/funcpipe_rag/tree/ |
tests/unit/fp/, tests/unit/result/, tests/unit/streaming/, tests/unit/tree/ |
| Where does the RAG-specific domain model live? | src/funcpipe_rag/core/, src/funcpipe_rag/rag/, src/funcpipe_rag/rag/domain/ |
tests/unit/rag/ |
| Where do configured pipelines and policy choices live? | src/funcpipe_rag/pipelines/, src/funcpipe_rag/policies/ |
tests/unit/pipelines/, tests/unit/policies/ |
| Where do effect descriptions and execution boundaries begin? | src/funcpipe_rag/domain/, src/funcpipe_rag/domain/effects/, src/funcpipe_rag/boundaries/, src/funcpipe_rag/infra/ |
tests/unit/domain/ |
| Where do library bridges and compatibility layers live? | src/funcpipe_rag/interop/ |
tests/unit/interop/ |
Short routes by course pressure¶
Purity, substitution, and local reasoning¶
src/funcpipe_rag/fp/core.pysrc/funcpipe_rag/core/rag_types.pytests/unit/fp/test_core_chunk_roundtrip.pytests/unit/fp/test_core_state_machine.py
Data-first APIs and explicit configuration¶
src/funcpipe_rag/rag/rag_api.pysrc/funcpipe_rag/rag/config.pysrc/funcpipe_rag/pipelines/configured.pytests/unit/rag/test_api.pytests/unit/pipelines/test_configured_pipeline.py
Iterators, laziness, and streaming pressure¶
src/funcpipe_rag/rag/chunking.pysrc/funcpipe_rag/rag/streaming_rag.pysrc/funcpipe_rag/streaming/fanout.pysrc/funcpipe_rag/streaming/time.pytests/unit/streaming/test_streaming.py
Failure handling, validation, and explicit context¶
src/funcpipe_rag/result/src/funcpipe_rag/fp/validation.pysrc/funcpipe_rag/fp/effects/tests/unit/result/tests/unit/fp/test_configurable.pytests/unit/result/test_option_result.py
Ports, adapters, resource safety, and async work¶
src/funcpipe_rag/domain/capabilities.pysrc/funcpipe_rag/domain/effects/src/funcpipe_rag/boundaries/src/funcpipe_rag/infra/adapters/tests/unit/domain/
Interop and long-lived project review¶
src/funcpipe_rag/interop/src/funcpipe_rag/pipelines/cli.pysrc/funcpipe_rag/boundaries/shells/cli.pytests/unit/interop/tests/unit/pipelines/test_cli_overrides.py
When this guide is the wrong tool¶
- Use
FIRST_SESSION_GUIDE.mdwhen the whole capstone still feels too large. - Use
PACKAGE_GUIDE.mdwhen you want the package-reading order rather than the concept-to-code route. - Use
SOURCE_TO_PROOF_MAP.mdwhen you already know the package and need the fastest proof surface.