99.01 — Glossary

99.01 — Glossary#

Terminology used in the Ocarina ecosystem. Original sources in parentheses.

Railway Oriented Programming (ROP)#

TermDefinition
ROP (Wlaschin, F#)Functional pattern: success and failure are two parallel rails; a failure switches the computation to the failure rail, where it stays (short-circuit).
Result[T]Discriminated union Ok[T] | Fail. Error carried as value, not raised exception.
Ok[T]Success wrapper, value: T.
FailFailure wrapper, error: Exception.
is_ok, is_failTypeGuards that narrow a Result[T] to Ok[T] or Fail.
Action[T]Thunk[Result[T]] — argumentless function returning a Result[T].
ActionStart[T]Initial state of the ROP action builder. Expects .failure(...).
ActionFailure[T]After .failure(...). Expects .success(...).
ActionSuccess[T]After .success(...). Expects .execute().
ActionChain[T]After .execute(). Carries has_failed: bool and result: Result[T]. Allows .then(...).
NeutralActionStart[T], NeutralActionFailure[T], NeutralActionSuccess[T]Inert states of the failure rail. Stub by no longer doing anything.
ChainRunner[T]Lazy encapsulation of an ActionChain. Executed by .run().
drive_pageOpinionated semantic alias for chain_actions. “Take control of a page”.
match_page / whenConditional branching. First-match wins.
create_actLow-level primitive to create act (test step). Wrapped by the user project.
act (project-side)User wrapper for create_act with a project-specific on_failure hook. Represents a test step.

ISTQB / test-professional vocabulary#

TermDefinition
ISTQBInternational Software Testing Qualifications Board. Professional body of software testing.
Test cycleTop level. A complete execution.
Test campaignLevel under the cycle. Not directly defined in ISTQB but recognized in tester vocabulary.
Test suiteLevel under the campaign. A collection of executable tests.
Test caseA test case. Atomic unit.
Test stepA test step. Atomic action inside a test case.
Smoke testMinimal check proving the system is running. If failure, the rest is useless.
Setup / TeardownPre/post-condition of a test.

Ocarina (orchestration)#

TermDefinition
Test[Driver]ISTQB test. Metadata + scenario factory + fragments + skip.
TestSuite[Driver]ISTQB suite. Parallelization (thread pool), saturation, ID filtering, retries.
TestCampaign[Driver]Campaign. Sequence of suites with shared workers config.
TestCycle[Driver]ISTQB cycle. Smoke (with fail-fast vs wait-for-all modes) + main.
TestExecutor[Driver]Executes a single attempt of a test. Stateless.
TestFlow[Driver]Replay loop (1 + max_retries) with linear backoff.
TestRunner[Driver]Output of Test.spawn(driver, logger). Aggregator of chain_runners + setup + teardown + watchers.
Scenario[Driver] (frozen dataclass)Encapsulates test_chain, setup, teardown, watchers.
TestChainSequence[ChainRunner[Any]]. The sequence to execute to apply the test.
Watcher[Driver]Daemon thread observing something extra on a test. Periodic callback.
SaturationRandom test-cloning mechanism to reach max_workers. Copies named [COPY N] <name> (or [+N] per convention).
Transient errorsTuple of exceptions triggering a replay.
max_retries_per_testNumber of replays. Default, 8 ("9 lives like a cat 🐱").
autoscreen_on_failAutomatic screenshot on failing test step.

Ocarina (invariants DSL)#

TermDefinition
validate(value, name="...")Entry point of the invariants DSL.
ValidationStartBlock[T]Initial state. Expects .assert_that(...).
ValidationAssertBlock[T]After .assert_that(...). Accepts .assert_that, .otherwise, .then, .execute.
.assert_that(predicate)Adds a logical AND.
.otherwise(predicate)Adds a logical OR. Combined via _any_of.
.then(new_value)Switches the current value in the chain. Keeps accumulated errors.
.execute()Executes the chain, returns a _ValidationResult (inert until .raise_if_invalid() is called).
chain_validations(*)Merge several ValidationAssertBlocks into one.
InvariantViolationErrorException raised by predicates.
AggregateInvariantViolationErrorAggregation of multiple InvariantViolationErrors. Raised by .raise_if_invalid().
DuplicatesErrorInvariantViolationError subclass raised by has_unique_elements.
BusinessInvariantValidator.createFactory for business invariants.
FrameworkInvariantValidator.createFactory for framework invariants.

Ocarina (infra + ports)#

TermDefinition
POMBaseFramework-agnostic ABC. Methods verify + get_current_title.
SeleniumTitleMixinSelenium-specific mixin. Implements get_current_title and types _driver: WebDriver.
WebDriversPool[Driver]Thread-safe drivers pool. Semaphore + Queue (THE QUEUE damn it!) + warmup with watchdog.
WarmupTimeoutErrorRaised by pool.warmup() when it stalls.
DriverBuilder[Driver]Builder that manages the profile tmp dir and produces (driver, dispose).
BuiltWebDriver[Driver]tuple[Driver, Effect] — driver + dispose.
Screenshotter[TDriver]Thread-safe screenshot utility. Burst mode, healthcheck.
ScreenshotterConfig[TDriver]Config (frozen dataclass): output_dir, file_ext, health_check, save_full_page, etc.
ActCounterInterface. Counts acts called per attempt.
ThreadsBasedActCounterThread-local implementation of ActCounter.
ILoggerLogging port (ABC). Methods: debug, info, warning, error, critical, success, test_name, exception, raw, set_prefix, set_domain_taxonomy, cleanup.
ITakeScreenshot[Driver]Protocol (driver, logger, category) -> None.
PrintLogger / FileLogger / PrintAndFileLogger / MutedLogger4 canonical implementations of ILogger.
driver_healthcheck(driver)Pings driver.title; raises DriverDiedError if THE DRIVER IS DEAD.
DriverDiedErrorException raised by driver_healthcheck.
PageVerificationErrorException raised by POM.verify when the page isn’t the right one.
NoMatchingBranchErrorException raised by match_page when no when matches.

Ocarina (opinionated)#

TermDefinition
CliBuilderDeclarative builder over argparse. Error aggregation.
CliArgDeclaration of a CLI argument.
CliStore[TKeys]Write-once store for parsed CLI values. TKeys: Literal[...] for autocomplete.
_CliField[T]Write-once field with validator.
phantom_validateNo-op validator for fields that don’t need extra validation.
CliStoreSingletonSingleton around CliStore.
create_selenium_auto_cli_store()Factory that dispatches by OS.
bootstrap(test_cycle, run_plugins, post_exec)Canonical entry point.
run_plugins(*plugins, exceptions_logger)Runs plugins in parallel if N>1.
pretty_print_resultsPlugin that prints results to the terminal (ANSI).
generate_docx_proofPlugin to create DOCX test proofs.
generate_json_resultsPlugin that transcribes the same results as pretty_print_results, in JSON format.
timingContext manager that measures duration.

Functional programming#

TermDefinition
EffectCallable[[], None] — argumentless, returnless function, deferred.
Thunk[T]Callable[[], T] — argumentless function, deferred.
ClosureFunction capturing an environment.
Fold / reduceReduction of a sequence to a single value (catamorphism).
TypeGuardPEP 647 — annotation that narrows a type on the type-checker side.
Discriminated unionUnion of disjoint types, discriminated by a test (typically isinstance).
Sealed unionDiscriminated union whose variants are all @final.
@finalPEP 591 — declares that a class can’t be subclassed (no infinite covariance).
SelfPEP 673 — return type that refers to the instantiated class (not the declared class).
ProtocolPEP 544 — structural type; any object with the right shape is usable.
PEP 695Generics syntax class Foo[T]: (Python 3.12+).

Author vocabulary#

TermMeaning
SlipologueNeologism. The one pretending “to know everything” without practice. Pollutes technical discussions with mental models. A pain in the ass using ChatGPT or Wikipedia to always have an answer for everything, pretending to speak about a subject he masters when he doesn’t.
Vues de l’esprit (mental models)Imaginary concept; inapplicable theoretical vision.
White boxAuditable, readable code, no hidden logic. Opposite of black box.
Raw dataSource code, files, simple formats.
Programming astrologyEsoteric patterns without measurable benefit.
In the Lulzboat, salute, bitch, and show some respect.Quote from YTCracker — #antisec (2011), official anthem of Operation AntiSec. See ../12-manifesto-deciphered/01-sourced-citations.md
Fucking skids, fucking normiesIRC / EFnet identity marker.

Hacker scene (chapter 12)#

TermDefinition
AntiSec movement (1999)Movement opposed to the cybersecurity industry and full disclosure. Refusal to publish exploits / vulnerabilities. Targets: SecurityFocus, Packet Storm, Bugtraq mailing list, etc.
Operation AntiSec (2011)Resurrection of the movement by LulzSec + Anonymous. 50 days of hacks (May-June 2011).
LulzSecHacker group active May-June 2011. Anonymous splinter. Manifesto “we do it for the lulz”. Arrests in 2012.
The LulzboatLulzSec’s identity metaphor. Pirate-ship ASCII art signing their communiqués.
SabuHector Monsegur, LulzSec leader, turned by the FBI in June 2011.
TopiaryJake Davis, LulzSec spokesperson.
YTCrackerBryce Case Jr. (born 1982). Nerdcore rapper, former black hat (NASA Goddard 1999), founder of Digital Gangster (forum, 2005).
NerdcoreHip-hop subgenre whose lyrics are really for nerds (code, hacking, sci-fi, math). Coined by MC Frontalot (2000).
Digital GangsterHacker forum founded by YTCracker in 2005 (digitalgangster.com). 36,000 members at peak. Source of several iconic hacks (Paris Hilton, Miley Cyrus, Twitter Obama, etc.).
NerdRap Entertainment SystemYTCracker’s founding album (2005). Beats over NES OSTs, Nerdcore lyrics.
Darknet DiariesPodcast by Jack Rhysider on cybersecurity history. Episode 78 (Nerdcore) is dedicated to YTCracker. Transcript: https://darknetdiaries.com/transcript/78/
Zone-HPublic website-deface archive (founded March 2, 2002 by Roberto Preatoni / Sys64738, based in Estonia). 2002-2015 grey-hat scoreboard.
IRCInternet Relay Chat (1988). Multi-user text-chat client/server protocol. Central social medium for hackers 1993-2012.
EFnetEris-Free Network. Historical IRC network (1990). Center of the warez, 0day, phreakers scene 1996-2008.
Channel (#name)IRC room.
skid / script kiddieHacker running scripts they don’t understand. Insult.
normieAverage user, uninitiated. Insult.
lamerBBS-era variant of skid.
gr33tzGreetings, crew list, at the bottom of a deface.
zineE-zine, underground magazine, often ASCII.
VX Underground (VXUG)Public malware-samples repository (founded ~2019 by smelly_vx). Original sysadmin: Yung Innanet / kayos.
Yung Innanet / kayosOriginal sysadmin of VX Underground and musician. Passed October 18, 2025. The Holy Book directly quotes lyrics from his track true colors (SoundCloud), signed “(btw: RIP, DG descendant…)”.
YogyaCarderLink (YCL)Indonesian hacker collective (Yogyakarta), early 2000s. Two recurring mantras on their defaces: “We Can Do All What You Can’t Do.” and Don't fuck with us.
Honker (红客)Chinese red hacker. Patriotic, ideologically driven hacker. Appeared after the 1998 Indonesia riots.
Villains but not MonstersMoral distinction at the heart of the hacker scene: a Villain confronts power, a Monster persecutes the weak. Real enthusiasts hate monsters (often former bullied who reproduce the harm they suffered).
DEF CONAnnual hacker conference, now in Las Vegas (formerly at the Caesars Forum).
BOFH (Bastard Operator From Hell)Fiction series by Simon Travaglia (New Zealand), published on Usenet in the ’90s then on The Register. Archetype of the user-despising sysadmin. Source of the vocabulary PEBKAC, RTFM, ID-10-T error.
UsenetDistributed newsgroups system. Founding medium of hacker culture.
ShodanSearch engine for internet-connected devices (IP cameras, ICS, IoT, open servers). Founded by John Matherly. shodan.io
ViolVocalFrench-speaking community (mid-2000s) of organized prank callers / phone harassers on forum + Mumble/TeamSpeak server. SIP spoofing, public call streams, doxing, impersonating police officers to consult restricted databases without authorization, etc. Shut down after prosecutions. Francophone case of underground cruelty.
4chan / /b/Imageboard founded by moot (Christopher Poole) in 2003. /b/ = no-rules, no-archive, totally anonymous board. Matrix of Anonymous (2006-2008) and modern meme culture. Community regularly orchestrating harassment, having notably degraded Terry A. Davis’s health.
AnonymousCollective entity emerged from 4chan /b/ around 2006-2008. Op Chanology (Scientology 2008), Op Tunisia (2011), Op Sony (2011). IRC coordination.
DoxingPublication of a target’s personal info with intent to harm.
SwattingFalse emergency call (often SIP-spoofed) declaring a serious crime at the victim’s address, triggering SWAT deployment. Fatal cases documented.
OSINTOpen Source Intelligence. Information gathering from public sources.
OPSECOperations Security. Rigorous maintenance of operational anonymity over time.
HoneypotFake server / fake account / fake leak baiting attackers to detect them. Scene defensive tool.
Snitch / FedInformant / undercover federal agent. Top-priority detection in any underground community.
Prompt injectionInsertion of malicious content into an LLM’s context to hijack its behavior. OWASP LLM01:2025. First in the LLM Top 10.
MCP (Model Context Protocol)Anthropic standard protocol (2024) to expose tools and resources to an LLM. Each third-party MCP server adds an attack surface.
Hard-won rulesInternal project conventions documented in CLAUDE.md after costly lessons. Prevents LLMs from repeating errors already encountered.

Ocarina ideology#

TermDefinition
Villain (hacker sense)Reclaimed identity of the sovereign hacker acting outside institutions, opposed to conventions and corporate branding. The Villain confronts power but respects the weakest.
Monster (hacker sense)One who technically exploits their skill to persecute vulnerable people (harasser, doxxer, etc.). Structural enemy of the real hacker scene.
Tooling cultureConviction that well-written technical tools (Nmap, Wireshark, Metasploit, Burp, sqlmap, et al.) made by small teams are worth a thousand marketing presentations.
Tribal loyalty (hacker scene)Absolute intra-community loyalty + extreme external suspicion. Long admission tests, vouching by established members, brutal excommunication on betrayal.
Eyes everywhereOperational hyper-vigilance learned in the underground context (IRC admin legally responsible for their channels’ actions).

Industry / counter-models#

TermDefinition
InfopreneurEntrepreneur whose product is sold information: courses, e-books, masterminds. American model (Dan Kennedy, Russell Brunson), imported into France via Tugan Bara.
CopywritingArt of writing persuasive sales texts. Core trade of infopreneurs. Largely automatable by AI since 2023.
FunnelSales funnel: free content → front-end product (€97) → flagship product (€997-4997) → premium coaching.
Marketing UndergroundTugan Bara’s flagship program (2018-2023). Owned “bad guy” posture.
Tugan Bara / Arnaud LabossièreFrench archetype of the 2018-2024 infopreneur model. HEC dropout. Sold Tugan.ai in 2024. Ultimately the only infopreneur who really explained the profession to a whole francophone-scene community.
MRRMonthly Recurring Revenue. Monthly amount billed to subscription customers. Central SaaS indicator.
ARRAnnual Recurring Revenue. Annual amount earned from SaaS sales.

AI, ML, RL#

TermDefinition
LLMLarge Language Model. Transformer model pre-trained on a large corpus. Claude, GPT, Gemini, Llama, Mistral.
TransformerArchitecture introduced by Attention Is All You Need.
Foundation modelPre-trained model reused for multiple tasks via fine-tuning or prompting.
RL (Reinforcement Learning)Learning by interaction with an environment, guided by a reward signal. Sutton & Barto 1998.
Constitutional AI (CAI)Anthropic alignment method (Bai et al., 2022). The model critiques and revises its own responses according to a written constitution.
ProbeEmpirical learning primitive for AI.
llms.txt, llms-full.txtJeremy Howard standard (fast.ai), 2024. Short Markdown index (llms.txt) + concatenated full doc (llms-full.txt) for agent ingestion.
SKILL.mdLets an AI agent plug into a project skill.
CLAUDE.mdProvides Claude Code with a set of rules.

99.02 — Index of cited files

99.02 — Index of cited files#

Per repo, the source files explicitly cited in the primer. Direct GitHub URLs.

mojo-molotov/ocarina — Framework#

Root#

src/ocarina/railway/#

src/ocarina/custom_types/#

src/ocarina/custom_errors/test_framework/#

src/ocarina/custom_invariants/testing/#

src/ocarina/dsl/invariants/#

src/ocarina/dsl/testing/#

src/ocarina/dsl/testing_with_railway/#

src/ocarina/aggregates/#

src/ocarina/infra/#

src/ocarina/ports/#

src/ocarina/pom/#

src/ocarina/opinionated/#

Tests#

Workflows#

mojo-molotov/ocarina-example#

Code#

Workflows#

mojo-molotov/ocarina-with-ai-example#

Docs#

Code#

Workflows#

mojo-molotov/igoristan#

Code#

Workflows#

mojo-molotov/tests-workers#

Code#

(No GitHub Actions workflow.)