DEEP TRUTH GUIDES
Public-facing Jekyll site at https://ladiossato.github.io/deep-truth-guides/. Empty Words branding. Mechanistic field notes on how the mind operates.
Read These First
Before building anything in this repo, load these in order:
-
_strategy/funnel-architecture.md— the income/funnel model. Persona, machineries, ladder, financial model, funnel architecture, pure-looking tactics. Source of truth for why this site exists as a business. -
_strategy/build-plan.md— closed-loop build plan. 8 stages with validation gates, kill criteria, time-boxes. Critical path = 22 calendar days to first paid signup. Each stage emits one number; that number gates the next stage. -
_strategy/agent-autonomy-addendum.md— load every session. Amends the build plan. Defines:- The 6-input ceiling for Ladios over 90 days
- The closed-loop harness in
_agent/(playwright + supabase + gmail) - Per-stage agent-run validators that replace human eyeballing
- Failure-mode escalation budget
- The new critical path with autonomy-first sequencing (stage -1 = harness)
The addendum is operational. When an action could be done by playwright or a direct DB query, do that instead of asking Ladios. When in doubt, the rule is: minimize ladios-input, maximize agent-output.
Style Rules (non-negotiable)
- No em-dashes, no en-dashes anywhere in prose. Period + line break makes the rhythm.
- Never attribute Kapil Gupta. The voice is direct-truth; the author is unnamed.
- ASCII art only for diagrams. Never mermaid, never SVG. Box-drawing chars (┌─┐│└┘├┤┬┴┼), arrows (→←↑↓▲▼), bar magnitudes (████). Plain ``` fences, no language tag.
- Dark monochrome theme. JetBrains Mono. CRT scanlines. Existing palette only.
- Strategy papers (under
_strategy/) use signal-dense ASCII tables (Wesley format), not Empty Words prose.
Architecture
- Jekyll static site, baseurl
/deep-truth-guides, hosted on GitHub Pages. - Writings live at repo root as
THE_MACHINERY_OF_<TOPIC>.mdwith frontmatter:visibility: public | member (private = featured tier) audio: true (marks featured tier) track: business (routes to business section) date: YYYY-MM-DD section_toggles: true (REQUIRED on every machinery and stratagem) section_toggles: trueis mandatory on every new machinery and stratagem. It renders the collapsible// contentsdrawer from_includes/section-toggles.htmlfor h2 navigation.- Every stratagem ends with a
## FOUR CHECKS BEFORE YOU RUN ITsection: four yes/no preflight questions specific to that stratagem’s mechanism, followed byIf three or more come back yes, [outcome].andIf two or fewer, [failure mode].Template lifted fromTHE_MACHINERY_OF_COMPLIMENTS. The four checks are the operator’s go/no-go gate. - Stratagem titles must be gain-forward verb phrases that state what the reader becomes, owns, makes, or wins. Never WHEN-X situational format. Across a family, vary the verb form (BECOMING / OWNING / MAKING / WALKING / SPENDING / WEARING / LOSING / WINNING / ARRIVING / FEELING) so the set does not read as boilerplate. Short. Vague-attractive. Daniel Barada style.
- Titles must imply rarity, destination, and power. The reader should feel: most people cannot do this, and I am about to. The lead word must be an explicit status/power/ability claim (UNBOUGHT, OWNING, ALIVE TO, IMMUNE, KEEPING, WEARING, BECOMING) — not a verb of motion (WALKING, ARRIVING, FEELING, HEARING). Test phrases like “OWNING A GROUP YOU NEVER JOINED” or “UNBOUGHT BY WHAT BUYS EVERYONE ELSE” pass. Therapeutic-sounding titles like “HEARING THE ORDINARY AGAIN” fail. Action-of-motion titles like “WALKING PAST WHAT OWNS EVERYONE ELSE” fail because they describe what you do, not what you become/own. If the title would fit on a meditation app, it is wrong.
- Auth/access via Supabase (
applyabqscbcbcktegej). Tables:dt_profiles,dt_engagement,dt_featured_grants. RPCs:dt_my_profile,dt_my_guide_stat,dt_admin_users. - Audio in
assets/audio/<slug>.mp3, generated byscripts/generate_audio.py. - Cover images in
assets/img/covers/<slug>.png, generated byscripts/generate_cover.py. Every machinery and stratagem ships with its cover. The.githooks/pre-pushhook blocks pushes that publish a writing without a cover. One-time per clone:git config core.hooksPath .githooksto activate the hook. After publishing a new writing, runpython3 scripts/generate_cover.py --slug <slug>(or rely on the hook to do it for you on push). - Daily writing generation via cron (
/home/kai/projects/daily-deep-truth.sh, alternates standard/advanced queue).
Mandatory Publish Pipeline (every machinery and stratagem)
Every writing MUST ship with ALL of the following. No exceptions. The pre-push hook validates items 1-3.
- Frontmatter:
section_toggles: true,date,visibility,audio: true(after audio generation) - Cover image:
assets/img/covers/<slug>.pngviascripts/generate_cover.py - Embedded intelligence blocks:
<aside class="eq">questions in ~40% of sections- Document voice (the writing wondering aloud, not quizzing)
- NEVER use
___blanks. Blanks sound broken in audio. Every block must be a complete sentence or question. - Placed before sections (framing) and after sections (recall)
- NOT every section. Only where genuine uncertainty or non-obvious mechanism exists
- Spec:
_strategy/compression-build/embedded-intelligence.md
- Examples layer (the burn-in):
<aside class="ex">worked scenes, roughly one per major part (~5-7 total, NOT one per section)- Each shows the mechanism just named operating at the edge of the possible: the most complete real instance, in concrete human detail
- Grounded, never fabricated. Each scene traces to a real documented case or the cited science. A composite human is fine, a fake finding is not.
- Placed AFTER the mechanism is named. Continuous prose, audio-safe (no headers, no lists, no
___blanks). Show, do not moralize. - Spec:
_strategy/compression-build/examples-layer.md
- Audio + chapters: Generated via
python3 scripts/generate_audio.py <FILENAME>.md(OpenAI TTS HD fable voice)- mp3 uploaded to Supabase storage automatically by the script (the mp3 is gitignored)
- The script ALSO emits the chapter manifest at
assets/chapters/<slug>.chapters.json(powers the click-a-heading-to-play-that-section cues). This file IS committed and served from the repo. - Set
audio: truein frontmatter AFTER generation succeeds
- README bullet: Add to Library or Featured section
- Raw file: Keep the raw version in
raw/directory
Order of operations: write raw -> create published version with frontmatter -> add EQ blocks -> add examples layer -> generate cover -> generate audio (emits chapters manifest) -> set audio: true -> add README bullet -> commit (include assets/chapters/<slug>.chapters.json) -> push.
Format home: _strategy/output-formats/ indexes every reproducible format. Machineries are POINTING only (the practical format is retired, voice 2026-06-18). The two generation crons (/home/kai/projects/daily-deep-truth.sh, daily-deep-truth-business.sh) carry this same pipeline inline.
Training Copy Voice
Before writing ANY user-facing text in the training/compression area, load _strategy/training-copy-guide.md. This is the copy bible. It defines naming rules, banned words, intro message structure, and the conversational voice for all training surfaces. No clinical terms. No backend vocabulary. Every word speaks to what the user is doing, not the model underneath.
Jekyll-Ignored Folders
Anything under _strategy/ and _agent/ is excluded from the published site by Jekyll’s underscore-prefix rule. Use them freely for internal docs and tooling.
Closed-Loop Operating Rules
- Every stage you start, write a Prediction line in
/home/kai/projects/status.mdand an Outcome line when finished. The prediction-log-gate hook will block git operations otherwise. - Run validators BEFORE pinging Ladios. If you can verify it yourself with playwright + a direct DB query, do that.
- Build the
_agent/harness once, then reuse it across every stage. The harness is the leverage investment. - 6-input ceiling. If you find yourself about to write a 7th telegram ask in 90 days, the build plan is wrong. Re-read the addendum and find the autonomous path.
Telegram Style
Replies must be plain-text, no asterisk-bold, no em-dashes (the gate hook blocks them). Short. 1-4 lines default. Long-form goes in commits or files, not chat.