WEBSITE ALPHA · AI-assisted, source-reviewed documentation · Full-stack docs reconciled 2026-08-26
64x64base

Education Features

Laboratory Campus summary of source-defined DotTalk++ education features, student hooks, timed index labs, and pre/post polling hooks.

The Laboratory Campus should expose DotTalk++ education features as runnable labs, not as disconnected reference text. The current source tree already contains enough structure to seed this alpha campus area.

Source Evidence

FeatureSource EvidenceCampus Reading
Education command familysrc/edu/edu_*.cpp and src/cli/shell_commands.cppBuilt-in teaching commands are source-defined and registered through the central command surface.
Reference and retro commandssrc/edu/edu_ascii_table.cpp, src\cli\cmd_retro.cpp, and src\cli\cmd_bbox.cppASCII, RETRO, and BBOX are public education-facing commands and should be treated as campus material.
Timed index/sort labsrc/cli/cmd_idx.cpp and docs/teaching/TEACHING_POINT_LEDGER.mdIDX is a memory-only educational index lab; it supports STD and BUBBLE sort choices and reports build/sort elapsed time, comparisons, and swaps.
Student/custom index familiessrc/edu/edu_six.cpp, src/cli/cmd_scx.cpp, src/cli/cmd_reindex.cpp, include/snx/*, and src/edu/edu_snx.cppSIX and SCX provide opt-in local index labs; SNX preserves a future slot and partial container groundwork. A general user-supplied index attachment contract remains planned.
DBF sort pathsrc/cli/cmd_sort.cppSORT creates a sorted DBF copy, supports key expressions, FOR, WHILE, FIELDS, UNIQUE, and reports scanned/selected/written counts.
Student command hookssrc/ext/cmd/cmd_student_hello.cpp, cmd_student_echo.cpp, and src\ext\ext_policy.hppStudent commands may self-register from the extension area while built-in command names remain protected.
Student function hookssrc/ext/fn/fn_student_text_autoreg.cppStudent functions demonstrate the same registry-compatible pattern for learner-created expression helpers.
Pre/post polling hookssrc/cli/pre_poll.cpp, post_poll.cpp, and cmd_polling.cppCurrent hooks emit [POLL PRE] and [POLL POST]; cmd_polling.cpp is a placeholder for future polling/integration command work.
Vertical publication ruledocs/contracts/WEBSITE_SELFDOC_PUBLICATION_CONTRACT_V1.mdWebsite pages are downstream derivatives of runtime/source, HELP, metadata, CMDHELPCHK, SelfDoc, and manualgen.

Timed Sort and Index Labs

The strongest current timing surface is IDX, not plain SORT.

IDX is explicitly described in source as a memory-only educational index lab. It accepts commands such as:

IDX ON LNAME TAG lname_std
IDX ON LNAME TAG lname_bubble BUBBLE
IDX ON LNAME TAG lname_bubble2 SORT BUBBLE DESC
IDX LIST
IDX DROP <tag>

Its output path records:

  • records scanned and indexed,
  • deleted records skipped,
  • total build elapsed time,
  • sort elapsed time,
  • comparisons,
  • swaps.

That makes it suitable for a campus algorithm lab where students compare STD versus BUBBLE against the same table.

Plain SORT is also lab-ready, but it currently reports operation counts rather than elapsed time. It is useful for teaching DBF output creation, key expressions, FOR/WHILE predicates, field projection, deleted-record handling, and UNIQUE suppression.

Student and Custom Index Systems

DotTalk++ reserves index families for learner and downstream experimentation:

SIX CREATE students.six TAG LNAME FIELD 2
SIX BUILD students.six
SIX INFO students.six
REINDEX CUSTOM

SIX is a registered single-tag educational stub. SCX is the current compound student/custom family. REINDEX CUSTOM opts into both while ordinary REINDEX ALL deliberately leaves them out. This keeps experiments from being mistaken for the normal table-flavor defaults.

SNX must be described more carefully: format and catalog groundwork exists, but its education translation unit is an empty placeholder and its shell command is not registered. It represents reserved extension space, not a finished command.

The intended next architecture step is a documented adapter lifecycle through which students or users can attach their own indexing systems: detect/open, bind to an area/schema, build, seek/navigate, verify, report timing, close, and emit proof. That general attachment contract is planned; the current SIX and SCX paths are laboratories for shaping and testing it.

Reference, Retro, and Blackbox Commands

Current education-visible commands include:

CommandCampus use
ASCIITeach character codes, control characters, extended ASCII, ranges, and table rendering.
RETROShow ASCII-safe retro system screens for lineage and classroom context.
BBOXTeach the Blackbox model: data enters a processing system and information comes out.
BOOLEANTeach predicate evaluation through xexpr.
CASEBrowse education case-study catalog entries.
CHRISTMASDemonstrate controlled colored ASCII output.
COBOL, CODASYL, NORMALIZE, SIXTie xBase learning to older database/toolchain concepts and normalization/index labs.

These are campus curriculum and proof surfaces that should connect to command catalog rows, transcripts, and SelfDoc reports.

Student Code Hooks

The extension policy separates core and learner code:

built-in commands -> central registry
student/custom commands -> src/ext/cmd self-registration
function families -> function catalog or self-registration pattern

Current examples:

HookRegistered SurfaceLesson
cmd_student_hello.cppSTUDENTHELLO, SHELLOAdd a custom command without touching the protected command registry.
cmd_student_echo.cppSTUDENTECHO, SECHOAdd aliases and command-local usage behavior.
fn_student_text_autoreg.cppSTU_UPPER, STU_REPEATAdd expression-style functions with argument checks and small evaluators.

This is a strong campus pattern: students can first inspect a command/function in the website catalog, then add a controlled extension, then prove it with HELP/CMDHELP and a runtime transcript.

Pre/Post Polling

The current pre/post polling files are small but important:

pre_poll()  -> [POLL PRE]
post_poll() -> [POLL POST]

That gives the campus a visible seam for later labs about command lifecycle observation. The next useful campus slice is:

before command -> pre poll -> command execution -> post poll -> transcript -> SelfDoc evidence

Until a full POLLING command is implemented, the website should describe this as a source-defined hook surface and placeholder integration lane, not a finished user-facing polling subsystem.

Vertical Documentation Flow

The Laboratory Campus should feed these pages from the existing vertical stack:

source comments and @dottalk.usage
-> comments/SRC* evidence
-> HELP DATA and CMDHELP
-> CMDHELPCHK validation
-> SelfDoc/manualgen artifacts
-> website pages and campus lessons

The initial website implementation uses source-derived pages:

The next implementation step is to replace manual extraction with a repeatable generator that reads the same evidence tables and reports used by SelfDoc.

See also Command Families.