| title | Feature-to-Code Map |
|---|---|
| audience | developers, contributors |
| prerequisites | PRIK Architecture, Codebase Map |
| related | architecture.md, codebase-map.md, packages/index.md, testing-strategy.md |
| status | maintained |
| publication | reviewed |
This map connects a user-visible capability to its primary source owners, documentation, and focused evidence. It is a change-routing index, not a second support matrix: Architecture defines the stage handoffs, the Codebase Map lists package ownership, and the public feature matrix states the support boundary and limitations.
Links in the documentation column are reviewed pages.
Find the capability, read its documentation, start with the leftmost owner, and run its focused evidence. Use the Architecture when the change crosses a stage boundary.
| Capability | Relevant documentation | Change route | Focused evidence |
|---|---|---|---|
| Fortran inspection and semantic IR | Parsers | prik/parsers/fortran/parser.py → prik/semantics/fortran2ir.py → prik/semantics/models.py |
tests/fortran/source_parsing/parsing/, tests/fortran/semantic_ir/semantics/ |
| CLI commands and reports | Beginner workflow | prik/cli.py → prik/parsers/fortran/cli.py |
tests/fortran/command_line_interface/pipeline/, tests/docs/test_examples.py |
| Source preparation and target types | Preprocessing | prik/preprocessing/source.py → prik/preprocessing/fortran.py → prik/preprocessing/probes/fortran_types.py → prik/semantics/scalar_types.py → prik/codegen/primitive_scalar_types.py |
tests/fortran/source_preprocessing/preprocessing/, tests/fortran/data_types/ |
Semantic .pyi generation and editing |
.pyi contracts | prik/parsers/pyi/parser.py → prik/semantics/pyi2ir.py → prik/pipeline/pyi.py → prik/printers/pyi.py |
tests/fortran/semantic_pyi_format/parsing/, tests/fortran/semantic_pyi_format/semantics/, tests/fortran/semantic_pyi_format/pipeline/ |
| Source-first extension builds | Building the shared library | prik/pipeline/build.py → prik/pipeline/wrapper.py → prik/compiler/compilers.py |
tests/fortran/building_shared_library/end_to_end/test_source_build_modes.py, tests/fortran/building_shared_library/end_to_end/test_multi_source_builds.py |
| Contract-first extension builds | .pyi contracts | prik/pipeline/build.py → prik/pipeline/pyi.py → prik/semantics/pyi2ir.py |
tests/fortran/semantic_pyi_format/end_to_end/test_authoritative_contract_runtime.py, tests/fortran/pyi_contracts/exports_and_modules/ |
| Calls, results, and optional arguments | Functions, subroutines | prik/semantics/fortran2ir.py → prik/policy/completion.py → prik/planning/planner.py → prik/codegen/c/binding.py and prik/codegen/fortran/bridge.py |
tests/fortran/functions/, tests/fortran/optional_arguments/, tests/fortran/pyi_contracts/calls_and_results/ |
| Arrays | Arrays | prik/semantics/fortran2ir.py → prik/policy/completion.py → prik/planning/planner.py → prik/codegen/c/binding.py and prik/codegen/fortran/bridge.py |
tests/fortran/arrays/ |
| Modules, interfaces, constants, and exported names | Modules, interfaces, enumerations | prik/parsers/fortran/parser.py → prik/semantics/fortran2ir.py → prik/policy/exports.py → prik/naming/policy.py |
tests/fortran/modules/, tests/fortran/generic_interfaces/, tests/fortran/pyi_contracts/exports_and_modules/ |
| Derived objects, allocatables, pointers, and lifetimes | Derived types, allocatables, pointers, memory management | prik/policy/ownership.py → prik/policy/construction.py → prik/policy/native_array_handles.py → prik/planning/planner.py → prik/runtime/handles.py |
tests/fortran/derived_types/, tests/fortran/allocatables/, tests/fortran/pointers/ |
| Callbacks | Callbacks | prik/policy/models.py → prik/policy/completion.py → prik/planning/planner.py → prik/codegen/c/binding.py and prik/codegen/fortran/bridge.py |
tests/fortran/callbacks/ |
| Projected errors | Error handling | prik/policy/models.py → prik/policy/completion.py → prik/planning/planner.py → prik/codegen/c/binding.py and prik/codegen/fortran/bridge.py |
tests/fortran/error_handling/ |
| Native compilation, extension runtime, and public build API | Compiler, Quality Assurance | prik/__init__.py → prik/pipeline/build.py → prik/compiler/objects.py → prik/compiler/compilers.py → prik/compiler/native_support.py → prik/runtime/native_support/ |
tests/fortran/building_shared_library/end_to_end/test_runtime_compatibility.py, tests/fortran/source_parsing/parsing/test_public_entrypoints.py |
Each change route begins with the first owner for a capability; it is not a complete call graph. When a change crosses a representation boundary, the Architecture identifies the next stage and the relevant architecture component guide gives its local route.