Seven-skill presentation system: ingest talks into a rhetoric vault, run interactive clarification, generate a speaker profile, create presentations that match your documented patterns, produce the deck illustrations + thumbnail visual layer, create and publish talk-content Agent Skills with talk pages to a Jekyll shownotes site, and verify a recorded screencast against its storyboard. Includes a 113-entry Presentation Patterns taxonomy (83 observable: 64 patterns + 19 antipatterns; 30 unobservable: 21 patterns + 9 antipatterns) for scoring, brainstorming, and go-live preparation.
75
94%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
Every deterministic vault-ingress entrypoint closes its outer failure boundary (#203). No unexpected exception reaches a caller as a traceback, and no machine-readable command leaves a truncated document on stdout.
Read this when a script exits non-zero and you need to know what state it left
behind. It inventories the boundary contract only — each script's normal
validation predicates stay in the script (rules/script-as-black-box.md).
skills/vault-ingress/scripts/failure_diagnostics.py owns the emitted
document. On an unexpected
failure the entrypoint writes to stderr, one JSON object on the first line:
{"error": "<entrypoint>_unexpected_failure",
"error_type": "RuntimeError",
"origin": ["persist-results.py:412 in merge_return"]}A human-readable recovery note follows on the next lines.
error_type is the exception CLASS. The exception MESSAGE never crosses the
boundary — no-secrets forbids it, and a FileNotFoundError message embeds
the path it could not find.origin is basename:line in function, innermost last. Never a full path.Every script named below lives in skills/vault-ingress/scripts/.
| Script | stdout on success | Unexpected-failure exit | Failure identifier | Commit-position field |
|---|---|---|---|---|
persist-results.py | one JSON receipt | 2 | persist_results_unexpected_failure | database_written |
write-analysis.py | one JSON receipt | 2 | write_analysis_unexpected_failure | analyses_written |
preflight-vault.py | one JSON report | 2 | preflight_unexpected_failure (a blocking finding in a real report, not a stderr document) | — read-only |
validate-returns.py | one JSON report | 2 | validate_returns_unexpected_failure | — read-only |
audit-pattern-catalog.py | one JSON report | 3 | catalog_audit_unexpected_failure | — read-only |
aggregate-catalog-feedback.py | one JSON report | 3 | catalog_feedback_unexpected_failure | — read-only |
audit-persisted-pattern-observations.py | one JSON report | 3 | persisted_observation_audit_unexpected_failure | — read-only |
render-markdown-deck.py | one JSON receipt | 3 | render_markdown_deck_unexpected_failure | output_written |
The three read-only audits and render-markdown-deck.py use exit 3 because
argparse already owns exit 2 there; a caller can still tell a malformed
invocation from a broken tool. render-markdown-deck.py additionally owns exit
1 for its own verdict — an unreadable deck, an unavailable renderer lane, a
renderer that failed — with a plain diagnostic on stderr, not the JSON document
above.
preflight-vault.py is the one entrypoint whose failure lands on stdout: a
caller gates claiming on its report, and a missing report reads as "preflight
never ran". It emits a real report — ok: false, one blocking finding whose
keys match every other finding — so a consumer parses it normally.
SystemExit from a documented error path is not caught by these boundaries —
those exit codes reach the caller unchanged.database_written, analyses_written, and output_written state whether the
atomic commit landed before the failure:
true — the write is durable. Re-running re-persists the batch. Re-read the
live state before deciding.false — every target was rolled back. The batch can be retried as-is.Never infer commit position from the exit code; read the field.
pptx_evidence.py, pptx-extraction.py, pdf_evidence.py,
local_media_evidence.py, local_media_download.py, and
local_media_transcription.py — same
directory — run supervised worker children whose stdout is reserved for one
authenticated frame. Their boundaries emit a path-neutral
<kind> worker failed: <reason> line on stderr and exit 2; the supervisor
reads a non-zero child without an authenticated response as a bounded crash.
.tessl-plugin
rules
skills
illustrations
presentation-creator
references
patterns
build
deliver
prepare
scripts
screencast-recorder
shownotes-publisher
vault-clarification
vault-ingress
references
scripts
vault-profile