How iyadeh/ctf-methodology-trainer works
CTF Methodology Trainer is a local-first app for turning machine writeups into hidden knowledge and guiding evidence-driven penetration-testing practice. The intended learner flow is writeup upload and knowledge preparation, then a PTES-adapted training session with phase/check progression, findings, hypotheses, attempts, and contextual evidence. The README says UI and local database infrastructure exist, but domain persistence is not implemented; sampled screens include demo data and generation-preview fixtures, not a functioning generation pipeline. The graph therefore separates documented capabilities from the implemented training/context services; unsampled UI wiring is not inferred.
Main entry points: index.ts Database client · service.ts Context reconciliation · app-shell.tsx App shell · repository.ts Session persistence
Components 23
Product UI
- App shell
src/components/layout/app-shell.tsx - Training dashboard
src/components/dashboard/dashboard.tsx - Training pages
src/app/training - Writeup upload
src/components/training/writeup-upload.tsx - Generation preview
src/components/training/generation-preview.tsx - Session browser
src/components/training/training-session-browser.tsx - Methodology reference
src/app/methodology/page.tsx - Knowledge view
src/app/knowledge/page.tsx
Training runtime
- Session orchestration
src/modules/training/service.ts - Session persistence
src/modules/training/repository.ts - PTES progression rules
src/modules/methodology/engine.ts - PTES checks
src/modules/methodology/ptes.ts
Evidence and context
- Evidence validation
src/modules/training/evidence-input.ts - Evidence handling
src/modules/training/evidence.ts - Findings and attempts
src/modules/training/evidence-repository.ts - Context reconciliation
src/modules/context/service.ts - Context normalization
src/modules/context/engine.ts - Session context
src/modules/context/repository.ts
Local data infrastructure
- Database client
src/lib/db/index.ts - Domain schema
src/lib/db/schema.ts
Other components
- Learner
- PostgreSQL
- Hidden machine knowledge
Connections 22
- Learner → App shell: uses
- App shell → Training dashboard: presents
- App shell → Training pages: navigates
- Learner → Writeup upload: selects writeup
- Writeup upload → Generation preview: previews states
- Learner → Session browser: browses sessions
- Learner → Methodology reference: reads
- Learner → Knowledge view: views knowledge
- Session orchestration → Session persistence: loads and updates
- Session orchestration → PTES progression rules: evaluates progress
- PTES progression rules → PTES checks: uses checks
- Session persistence → Session context: loads context
- Session persistence → Database client: queries
- Evidence handling → Evidence validation: validates input
- Evidence handling → Findings and attempts: reads and writes
- Context reconciliation → Findings and attempts: locks findings
- Context reconciliation → Context normalization: derives keys
- Context reconciliation → Session context: reconciles context
- Session context → Database client: queries and updates
- Database client → PostgreSQL: connects
- Domain schema → Database client: defines tables
- Hidden machine knowledge → Writeup upload: source writeup