# pm3py roadmap β€” design & implementation plans This directory is the project roadmap: dated design docs (`*-design.md`) and implementation plans (`*-plan.md`). Each file is a self-contained spec β€” problem, approach, concrete steps, tests, risks. > **Status column is best-effort**, inferred from the codebase and memory at the time of > writing (2026-07-05). Correct it if a plan's real state differs. Legend: > βœ… landed Β· πŸ”„ in progress Β· πŸ“‹ planned Β· πŸ“Ž reference/ongoing. ## ISO 14443-A sim expansion | Plan | Status | Summary | |------|--------|---------| | [2026-07-05-14a-live-trace-plan](2026-07-05-14a-live-trace-plan.md) | πŸ”„ | Live reader↔tag trace for the 14a sim (firmware ring + `EmLogTrace` capture + pm3py consumer). Code complete; flush + direct-send-capture fixes awaiting hardware verify. | | [2026-07-05-14a-custom-commands-design](2026-07-05-14a-custom-commands-design.md) | πŸ“‹ | **Design:** how to serve custom 14a-3 (NTAG I2C SECTOR_SELECT + cross-sector reads) and 14a-4 (vendor ISO-DEP APDUs) commands β€” table-first L3 + WTX-L4 hybrid layered on the native-EML sim. | | [2026-07-05-14a-custom-commands-plan](2026-07-05-14a-custom-commands-plan.md) | πŸ“‹ | **Plan:** sequenced L3 + L4 tracks β€” `sim_table` hook, sector-offset graft, WTX relay, `TableCompiler` extension, tests. | ## Sim framework & response table | Plan | Status | Summary | |------|--------|---------| | [2026-03-17-stateful-table-firmware-design](2026-03-17-stateful-table-firmware-design.md) | βœ… | Response-table sim in firmware BigBuf: stateful `sim_table` + `sim_crypto`, group/auth state. | | [2026-03-17-stateful-table-firmware-plan](2026-03-17-stateful-table-firmware-plan.md) | βœ… | Implementation of the above (15693 sim fully working: inventory, NDEF, NXP custom commands). | | [2026-03-17-table-compiler-update-plan](2026-03-17-table-compiler-update-plan.md) | βœ… | `TableCompiler` / `ResponseTable` β€” compile per-IC responses into the 120-byte entry format. | ## Trace & sniff | Plan | Status | Summary | |------|--------|---------| | [2026-03-17-trace-formatter-design](2026-03-17-trace-formatter-design.md) | βœ… | `TraceFormatter` β€” colored, decoded, column-wrapped trace output (sim/reader/sniff modes). | | [2026-03-17-trace-formatter-plan](2026-03-17-trace-formatter-plan.md) | βœ… | Implementation of the trace formatter. | | [2026-03-18-ndef-trace-decode](2026-03-18-ndef-trace-decode.md) | βœ… | NDEF TLV/record decode for trace annotation. | | [2026-03-19-live-sniff-design](2026-03-19-live-sniff-design.md) | βœ… | Live streaming sniff (firmware `CMD_HF_SNIFF_STREAM` + `SniffSession`). | | [2026-03-19-live-sniff-plan](2026-03-19-live-sniff-plan.md) | βœ… | Implementation of live sniff. | ## Package refactor & migration | Plan | Status | Summary | |------|--------|---------| | [2026-03-18-refactor-design](2026-03-18-refactor-design.md) | βœ… | Split the monolith into `core/`, `trace/`, `sniff/`, `sim/`, `transponders/`. | | [2026-03-18-refactor-progress](2026-03-18-refactor-progress.md) | βœ… | Progress log for the refactor (complete, all on master). | | [2026-03-18-sim-migration](2026-03-18-sim-migration.md) | βœ… | Migrate the sim framework into the new package layout. | ## Firmware maintenance | Plan | Status | Summary | |------|--------|---------| | [2026-07-03-firmware-upstream-rebase-plan](2026-07-03-firmware-upstream-rebase-plan.md) | πŸ“Ž | Rebase the `proxmark3-pm3py` fork against upstream PM3 (atomic single-file-commit workflow). | --- ### Conventions - **Naming:** `YYYY-MM-DD--{design,plan}.md`. A design doc explains *why* and *what*; a plan doc gives sequenced, implementation-grade steps. Small features may have only a `-plan.md`. - **Firmware changes** land as atomic single-file commits anchored to stable symbols (not line numbers) for easy rebase against upstream β€” see the firmware-upstream-rebase plan. - **Provenance:** plans produced with multi-agent design workflows note it in a Provenance section.