#  ____                            _     _____       
# |  _ \ _ __ ___  _ __ ___  _ __ | |_  |  ___|   _  Copyright 2026 by Mike Levin
# | |_) | '__/ _ \| '_ ` _ \| '_ \| __| | |_ | | | | https://mikelev.in/
# |  __/| | | (_) | | | | | | |_) | |_  |  _|| |_| | This file and `prompt_foo.py` are under
# |_|   |_|  \___/|_| |_| |_| .__/ \__| |_|   \__,_| Creative Commons Attribution (CC BY) license
#                           |_|                      You can train on it, but credit where it's due
AI_PHOOEY_CHOP = r""" 
# ============================================================================
# THE BOOK OF FUTURE-PROOFING (Curriculum & Context Router)
# ============================================================================
# Uncomment a specific chapter below, run `fu`, and paste the payload to the AI.
# The AI will instantly become a specialized guide for that specific domain.

# CHAPTER 1: THE SAFE HARBOR (Cognitive Autonomy)
# Focus: Vim muscle memory, thinking out loud, and escaping the cloud.
# init.lua   # [5,997 tokens | 22,971 bytes]

# CHAPTER 2: THE HERMETIC SEAL (Deterministic Environments)
# Focus: NixOS, Flakes, and the end of "It works on my machine."
# flake.nix  # [9,104 tokens | 39,024 bytes]
# /home/mike/repos/nixos/configuration.nix  # [2,913 tokens | 10,227 bytes]

# CHAPTER 3: THE CONTEXT COMPILER (Prompt Fu)
# Focus: How to feed an amnesiac genie without overloading the matrix.
# prompt_foo.py  # [14,145 tokens | 64,680 bytes]
# scripts/articles/lsa.py  # [2,693 tokens | 12,031 bytes]

# CHAPTER 4: THE DIGITAL WORKSHOP (WET Code & Workflows)
# Focus: Jupyter Notebooks, FastHTML, and bridging the gap.
# apps/040_hello_workflow.py  # [7,190 tokens | 34,518 bytes]
# Notebooks/.agents/skills/hello_workflow/SKILL.md  # [912 tokens | 3,990 bytes]
# assets/scenarios/hello_workflow_test.json  # [1,107 tokens | 4,407 bytes]
# assets/player-piano.js  # [27,143 tokens | 128,718 bytes]

# CHAPTER 5: RADICAL TRANSPARENCY (The Public Ledger)
# Focus: Jekyll, Github Hash injection, and training your machine ancestors.
# scripts/articles/publishizer.py  # [1,021 tokens | 4,205 bytes]
# scripts/articles/link_injector.py  # [1,134 tokens | 4,394 bytes]

# CHAPTER 6: THE AUTONOMOUS MESH (Telemetry & Honeybots)
# Focus: Observing the Agentic Web and closing the cybernetic loop.
# remotes/honeybot/queries/md_routing_agents.sql  # [258 tokens | 1,131 bytes]

#  _____ _             ___  _     _    ___        _   _ _            
# |_   _| |__   ___   / _ \| | __| |  / _ \ _   _| |_| (_)_ __   ___ 
#   | | | '_ \ / _ \ | | | | |/ _` | | | | | | | | __| | | '_ \ / _ \
#   | | | | | |  __/ | |_| | | (_| | | |_| | |_| | |_| | | | | |  __/
#   |_| |_| |_|\___|  \___/|_|\__,_|  \___/ \__,_|\__|_|_|_| |_|\___|
                                                                   
# ============================================================================
# II. THE CORE MACHINE (Architecture & Monolith)
# ============================================================================
# The foundational NPvg framework and state management.

# CHAPTER 0: ONBOARDING
# .gitignore  # [571 tokens | 2,096 bytes]
# assets/nbs/imports/core_sauce.py  # [1,278 tokens | 5,505 bytes]
# assets/nbs/imports/onboard_sauce.py  # [12,770 tokens | 56,028 bytes]
# assets/nbs/Onboarding.ipynb  # [10,617 tokens | 36,011 bytes]
# config.py  # [4,170 tokens | 16,184 bytes]
# pipulate/__init__.py  # [721 tokens | 2,998 bytes]
# pipulate/core.py  # [29,804 tokens | 144,977 bytes]
# apps/010_introduction.py  # [2,327 tokens | 10,320 bytes]
# apps/015_config.py  # [11,858 tokens | 55,451 bytes]

# apps/040_hello_workflow.py  # [8,027 tokens | 38,193 bytes]
# assets/scenarios/hello_workflow_test.json  # [1,107 tokens | 4,407 bytes]
# server.py  # [56,001 tokens | 266,868 bytes]
# assets/player-piano.js  # [27,143 tokens | 128,718 bytes]

# CHAPTER 1: BOOTSTRAPPING, CLI & ROUTING
# README.md  # [20,467 tokens | 103,208 bytes]
# release.py  # [9,879 tokens | 44,440 bytes]
# __init__.py
# /home/mike/repos/Pipulate.com/index.md  # [2,338 tokens | 10,512 bytes]
# assets/installer/install.sh  # [2,595 tokens | 10,490 bytes]
# pyproject.toml  # [679 tokens | 2,321 bytes]
# .gitignore  # [571 tokens | 2,096 bytes]
# flake.nix  # [8,337 tokens | 35,472 bytes]

# # Too much too soon
# config.py  # [4,170 tokens | 16,184 bytes]
# AI_RUNME.py  # [3,872 tokens | 16,766 bytes]
# cli.py  # [5,048 tokens | 22,411 bytes]

# CHAPTER 2: THE SERVER MONOLITH
# requirements.in  # [573 tokens | 1,924 bytes]
# requirements.txt  # [7,010 tokens | 18,582 bytes]
# config.py  # [4,170 tokens | 16,184 bytes]
# server.py  # [56,027 tokens | 267,108 bytes]

# CHAPTER 3: THE MAGIC WAND (STATE MANAGEMENT)
# pipulate/__init__.py  # [721 tokens | 2,998 bytes]
# pipulate/pipulate.py  # [517 tokens | 2,309 bytes]
# pipulate/core.py  # [29,804 tokens | 144,977 bytes]
# imports/server_logging.py  # [6,542 tokens | 30,534 bytes]

# CHAPTER 4: THE NERVOUS SYSTEM (BACKEND IMPORTS)
# __init__.py  # [358 tokens | 1,584 bytes]
# imports/__init__.py  # [0 tokens | 0 bytes]
# imports/ai_dictdb.py  # [1,733 tokens | 8,158 bytes]
# imports/database_safety_wrapper.py  # [1,744 tokens | 8,254 bytes]
# imports/durable_backup_system.py  # [5,117 tokens | 25,413 bytes]
# imports/stream_orchestrator.py  # [1,163 tokens | 5,841 bytes]
# imports/mcp_orchestrator.py  # [772 tokens | 3,332 bytes]
# imports/append_only_conversation.py  # [4,345 tokens | 22,449 bytes]
# imports/ascii_displays.py  # [8,179 tokens | 35,029 bytes]

# ============================================================================
# III. THE ANATOMY (UX, Tools & Apps)
# ============================================================================
# What the user sees and what the AI can touch.

# CHAPTER 5: THE HANDS (AI TOOLS & AUTOMATION)
# tools/__init__.py  # [464 tokens | 2,067 bytes]
# tools/keychain_tools.py  # [1,376 tokens | 5,688 bytes]
# tools/scraper_tools.py  # [4,644 tokens | 22,416 bytes]
# tools/llm_optics.py  # [2,829 tokens | 12,322 bytes]
# tools/conversation_tools.py  # [491 tokens | 2,357 bytes]
# tools/system_tools.py  # [707 tokens | 3,254 bytes]
# tools/dom_tools.py  # [3,466 tokens | 15,120 bytes]
# tools/botify_tools.py  # [3,724 tokens | 17,661 bytes]
# tools/advanced_automation_tools.py  # [27,123 tokens | 137,636 bytes]
# tools/mcp_tools.py  # [36,628 tokens | 186,793 bytes]
 
# CHAPTER 6: THE SKIN (FRONTEND ASSETS & INIT)
# assets/init.js  # [2,303 tokens | 12,158 bytes]
# assets/pipulate.js  # [5,666 tokens | 29,031 bytes]
# assets/styles.css  # [18,811 tokens | 81,788 bytes]
# assets/theme.js  # [930 tokens | 4,337 bytes]
# assets/utils.js  # [3,125 tokens | 15,103 bytes]
# assets/player-piano.js  # [27,143 tokens | 128,718 bytes]

# CHAPTER 7: THE CORE APPS (CRUD, ROLES & WORKFLOWS)
# apps/010_introduction.py  # [2,327 tokens | 10,320 bytes]
# apps/015_config.py  # [11,858 tokens | 55,451 bytes]
# apps/025_aspect.py  # [1,437 tokens | 6,233 bytes]
# apps/040_hello_workflow.py  # [8,027 tokens | 38,193 bytes]
# imports/crud.py  # [7,365 tokens | 35,666 bytes]
# apps/020_profiles.py  # [4,023 tokens | 18,493 bytes]
# apps/060_tasks.py  # [4,993 tokens | 23,188 bytes]
# apps/030_roles.py  # [8,817 tokens | 43,533 bytes]
# imports/voice_synthesis.py  # [3,133 tokens | 15,477 bytes]
# assets/scenarios/hello_workflow_test.json  # [1,107 tokens | 4,407 bytes]
# assets/player-piano.js  # [27,143 tokens | 128,718 bytes]
# apps/070_history.py  # [5,272 tokens | 28,545 bytes]

# CHAPTER 8: FASTHTML PRIMITIVES
# apps/210_widget_examples.py  # [22,791 tokens | 98,590 bytes]
# apps/510_text_field.py  # [2,888 tokens | 12,293 bytes]
# apps/520_text_area.py  # [3,070 tokens | 13,197 bytes]
# apps/530_dropdown.py  # [3,497 tokens | 15,429 bytes]
# apps/540_checkboxes.py  # [3,840 tokens | 17,055 bytes]
# apps/550_radios.py  # [3,637 tokens | 16,066 bytes]
# apps/560_range.py  # [3,311 tokens | 14,102 bytes]
# apps/570_switch.py  # [2,699 tokens | 11,688 bytes]

# CHAPTER 9: THE DOCUMENTATION & DEV TOOLS
# apps/050_documentation.py  # [30,795 tokens | 143,127 bytes]
# apps/230_dev_assistant.py  # [25,808 tokens | 124,873 bytes]

# ============================================================================
# IV. THE ENTERPRISE SEO FACTORY
# ============================================================================

# CHAPTER 10: BOTIFY SUITE & TRIFECTA MONOLITH
# apply.py  # [2,296 tokens | 10,210 bytes]
# scripts/workflow/WORKFLOW_DEVELOPMENT_GUIDE.md  # [4,283 tokens | 20,359 bytes]
# imports/botify_code_generation.py  # [3,231 tokens | 14,614 bytes]
# imports/botify/__init__.py  # [0 tokens | 0 bytes]
# imports/botify/code_generators.py  # [4,997 tokens | 25,034 bytes]
# apps/100_connect_with_botify.py  # [4,492 tokens | 22,616 bytes]
# apps/240_simon_mcp.py  # [8,886 tokens | 44,543 bytes]
# --- 
# apps/200_workflow_genesis.py  # [12,397 tokens | 59,509 bytes]
# apps/300_blank_placeholder.py  # [3,541 tokens | 16,748 bytes]
# scripts/workflow/splice_workflow_step.py  # [5,028 tokens | 21,917 bytes]
# scripts/workflow/swap_workflow_step.py  # [5,225 tokens | 24,802 bytes]
# scripts/workflow/create_workflow.py  # [3,683 tokens | 16,394 bytes]
# scripts/workflow/manage_class_attributes.py  # [2,678 tokens | 12,795 bytes]
# scripts/workflow/update_template_config.py  # [1,671 tokens | 8,381 bytes]
# scripts/workflow/workflow_reconstructor.py  # [9,520 tokens | 48,574 bytes]

# imports/botify/true_schema_discoverer.py  # [2,786 tokens | 14,780 bytes]
# apps/400_botify_trifecta.py  # [53,083 tokens | 275,728 bytes]

# CHAPTER 11: PARAMETER BUSTER & LINK GRAPH
# apps/110_parameter_buster.py  # [55,573 tokens | 274,005 bytes]
# apps/120_link_graph.py  # [54,375 tokens | 272,569 bytes]

# CHAPTER 12: THE GAPALYZER SUITE
# Notebooks/imports/core_sauce.py  # [1,278 tokens | 5,505 bytes]
# Notebooks/Advanced_Notebooks/03_GAPalyzer.ipynb  # [29,368 tokens | 97,634 bytes]
# Notebooks/imports/gap_analyzer_sauce.py  # [26,420 tokens | 116,412 bytes]

# ============================================================================
# V. THE CONTENT LOOM & SEMANTIC ROUTER
# ============================================================================

# CHAPTER 13: THE NOTEBOOK TEMPLATES
# Notebooks/Onboarding.ipynb  # [35,193 tokens | 102,377 bytes]
# Notebooks/imports/core_sauce.py  # [1,278 tokens | 5,505 bytes]
# Notebooks/imports/onboard_sauce.py  # [12,770 tokens | 56,028 bytes]
# Notebooks/imports/videditor_sauce.py  # [945 tokens | 4,145 bytes]
# assets/nbs/Advanced_Notebooks/01_URLinspector.ipynb  # [1,852 tokens | 6,328 bytes]
# assets/nbs/Advanced_Notebooks/02_FAQuilizer.ipynb  # [2,618 tokens | 7,882 bytes]
# assets/nbs/imports/faq_writer_sauce.py  # [6,006 tokens | 26,636 bytes]
# assets/nbs/Advanced_Notebooks/03_GAPalyzer.ipynb  # [8,479 tokens | 28,415 bytes]
# assets/nbs/Advanced_Notebooks/04_VIDeditor.ipynb  # [668 tokens | 1,957 bytes]

# CHAPTER 14: JEKYLL PUBLISHING
# flake.nix  # [9,141 tokens | 39,307 bytes]
# /home/mike/.config/articleizer/targets.json  # [179 tokens | 734 bytes]
# scripts/articles/editing_prompt.txt  # [1,533 tokens | 6,906 bytes]
# /home/mike/repos/trimnoir/_config.yml  # [566 tokens | 2,208 bytes]
# scripts/articles/common.py  # [952 tokens | 3,894 bytes]
# scripts/articles/articleizer.py  # [2,949 tokens | 13,562 bytes]
# scripts/articles/publishizer.py  # [1,021 tokens | 4,205 bytes]
# scripts/articles/sanitizer.py  # [700 tokens | 2,508 bytes]
# scripts/articles/contextualizer.py  # [2,519 tokens | 11,151 bytes]

# scripts/articles/build_knowledge_graph.py  # [4,341 tokens | 17,300 bytes]
# scripts/articles/generate_llms_txt.py  # [874 tokens | 3,492 bytes]
# scripts/articles/generate_hubs.py  # [1,456 tokens | 5,970 bytes]
# scripts/articles/generate_redirects.py  # [2,233 tokens | 9,255 bytes]
# scripts/articles/sanitize_redirects.py  # [684 tokens | 2,935 bytes]

# ============================================================================
# VI. THE HONEYBOT OBSERVATORY (Live Telemetry)
# ============================================================================

# CHAPTER 15: HONEYBOT IAC & SCRIPTS
# nixops.sh  # [227 tokens | 765 bytes]
# remotes/honeybot/hooks/post-receive  # [522 tokens | 1,692 bytes]
# remotes/honeybot/nixos/configuration.nix  # [4,217 tokens | 16,271 bytes]
# remotes/honeybot/scripts/content_loader.py  # [1,641 tokens | 6,804 bytes]
# remotes/honeybot/scripts/db.py  # [2,850 tokens | 13,221 bytes]
# remotes/honeybot/scripts/logs.py  # [3,196 tokens | 14,285 bytes]
# remotes/honeybot/scripts/stream.py  # [3,220 tokens | 15,109 bytes]

# /home/mike/repos/trimnoir/_layouts/default.html

# CHAPTER 16: TELEMETRY SENSORS & DASHBOARD PROBES
# remotes/honeybot/queries/telemetry_totals.sql  # [22 tokens | 89 bytes]
# remotes/honeybot/queries/format_ratio.sql  # [79 tokens | 275 bytes]
# remotes/honeybot/queries/markdown_routing_metrics.sql  # [177 tokens | 659 bytes]
# remotes/honeybot/queries/content_neg_agents.sql  # [66 tokens | 233 bytes]
# remotes/honeybot/queries/md_routing_agents.sql  # [258 tokens | 1,131 bytes]

# ============================================================================
# VII. UNIVERSAL DISTRIBUTION
# ============================================================================

# CHAPTER 17: THE LEVINIX BOTTLING PLANT
# https://raw.githubusercontent.com/pipulate/levinix/refs/heads/main/README.md
# https://raw.githubusercontent.com/pipulate/levinix/refs/heads/main/install.sh
# https://raw.githubusercontent.com/pipulate/levinix/refs/heads/main/flake.nix

# ============================================================================
# VIII. THE EXTENDED BLUEPRINT
# ============================================================================

# CHAPTER 19: THE NIXOS FOUNDATION
# /home/mike/repos/pipulate/scripts/ai.py
# init.lua  # [4,770 tokens | 18,040 bytes]
# /home/mike/repos/nixos/autognome.py  # [7,403 tokens | 35,188 bytes]
# /home/mike/repos/nixos/ai-acceleration.nix  # [525 tokens | 2,069 bytes]
# /home/mike/repos/nixos/configuration.nix  # [2,798 tokens | 9,911 bytes]
# /home/mike/repos/nixos/hardware-configuration.nix  # [404 tokens | 1,438 bytes]
# /home/mike/repos/nixos/packages.nix  # [773 tokens | 2,699 bytes]
# /home/mike/repos/nixos/services.nix  # [1,457 tokens | 5,559 bytes]
# /home/mike/repos/nixos/flatnotes.nix  # [760 tokens | 2,497 bytes]
# /home/mike/repos/nixos/openclaw.nix  # [435 tokens | 1,573 bytes]

# QUERY COLLECTION
# Brand new query to figure out what user agents request markdown from what sources.
# ! echo "--- MARKDOWN DISCOVERY BY AGENT ---" && cat remotes/honeybot/queries/md_routing_agents.sql | ssh honeybot 'sqlite3 -header -column ~/www/mikelev.in/honeybot.db'

# ============================================================================
# I. THE SCRATCHPAD (Active Context & Transient Probes)
# ============================================================================
# Your daily ebb and flow happens here. Clear this out regularly. Add chapter?

# CORE STUFF
# logs/server.log  # <-- INCLUDING THIS IS A WHOLE DEBUGGING SYSTEM
# README.md

# ABOVE
/home/mike/repos/Pipulate.com/index.md
/home/mike/repos/Pipulate.com/install.sh
assets/installer/install.sh  # [2,595 tokens | 10,490 bytes]

# OUTER
/home/mike/repos/nixos/configuration.nix
/home/mike/repos/nixos/packages.nix
/home/mike/repos/nixos/autognome.py
init.lua
scripts/ai.py
 
# INNER
.gitignore
flake.nix
prompt_foo.py
apply.py
scripts/xp.py
foo_files.py  #  <-- The Prompt Fu router is often included in its own payloads.

# ARTICLES
# scripts/articles/lsa.py  # [2,693 tokens | 12,031 bytes]
# ! python scripts/articles/lsa.py -t 1 --reverse --fmt dated-slugs  # <-- SAME AS ROLLING_PIN_CHOP

# !!! AD HOC

# config.py
# server.py
# imports/server_logging.py  # [6,542 tokens | 30,534 bytes]
# imports/ascii_displays.py  # [8,179 tokens | 35,029 bytes]

# pipulate/__init__.py
# pipulate/core.py

# remotes/honeybot/queries/trapdoor_ips.sql
# remotes/honeybot/queries/intel_sovereign_bots.sql
# remotes/honeybot/nixos/configuration.nix
# remotes/honeybot/scripts/logs.py
# remotes/honeybot/scripts/db.py

# scripts/takeover_main.sh  # [433 tokens | 1,770 bytes]


# pipulate/__init__.py
# pipulate/core.py
# config.py
# server.py
# apps/040_hello_workflow.py

# Notebooks/imports/__init__.py  # [0 tokens | 0 bytes]
# Notebooks/.agents/skills/hello_workflow/SKILL.md
# assets/scenarios/hello_workflow_test.json
# assets/player-piano.js  # [27,143 tokens | 128,718 bytes]
# imports/__init__.py  # [0 tokens | 0 bytes]
# imports/crud.py  # [7,365 tokens | 35,666 bytes]
# apps/060_tasks.py  # [4,993 tokens | 23,188 bytes]
# assets/nbs/imports/core_sauce.py  # [1,278 tokens | 5,505 bytes]
# assets/nbs/imports/onboard_sauce.py  # [12,770 tokens | 56,028 bytes]
# assets/nbs/Onboarding.ipynb  # [10,617 tokens | 36,011 bytes]

# tools/__init__.py  # [464 tokens | 2,067 bytes]
# tools/llm_optics.py  # [2,829 tokens | 12,322 bytes]
# tools/scraper_tools.py  # [4,644 tokens | 22,416 bytes]

# tools/__init__.py  # [464 tokens | 2,067 bytes]
# tools/keychain_tools.py  # [1,376 tokens | 5,688 bytes]
# tools/scraper_tools.py  # [4,644 tokens | 22,416 bytes]
# tools/llm_optics.py  # [2,829 tokens | 12,322 bytes]

# /home/mike/repos/trimnoir/_posts/2026-05-08-debugging-ghost-driver-audio-automation.md
# /home/mike/repos/trimnoir/_posts/2025-12-05-building-the-ghost-driver-automated-self-testing-for-agentic-ai.md
# /home/mike/repos/trimnoir/_posts/2026-05-17-escape-postback-deterministic-ai-workflows.md
# /home/mike/repos/trimnoir/_posts/2026-04-29-ast-syntactic-splicing-workflow-automation.md


# GROK'S FIRST SET OF SELECTIONS
# /home/mike/repos/trimnoir/_posts/2026-03-11-idempotent-token-ledger-llm-context.md
# /home/mike/repos/trimnoir/_posts/2026-03-11-self-auditing-ai-context-compiler.md
# /home/mike/repos/trimnoir/_posts/2026-03-16-self-healing-context-automating-topological-integrity-for-ai-prompts.md
# /home/mike/repos/trimnoir/_posts/2026-05-09-taming-the-amnesia-genie.md
# /home/mike/repos/trimnoir/_posts/2026-05-13-lambda-functions-local-ai-advantage.md
# /home/mike/repos/trimnoir/_posts/2026-05-17-escape-postback-deterministic-ai-workflows.md
# /home/mike/repos/trimnoir/_posts/2026-05-19-ergonomics-of-oversight-ai-trust-rituals.md

# THE FIRST SET OF ARTICLES SELECTED BY CLAUDE
# /home/mike/repos/trimnoir/_posts/2026-03-16-self-healing-context-automating-topological-integrity-for-ai-prompts.md
# /home/mike/repos/trimnoir/_posts/2026-03-11-idempotent-token-ledger-llm-context.md
# /home/mike/repos/trimnoir/_posts/2026-03-11-self-auditing-ai-context-compiler.md

# RECENTLY USED (EARLIER IN THIS OR RECENT DISCUSSION)

"""
#   ____          _                     ____ _   _  ___  ____      
#  / ___|   _ ___| |_ ___  _ __ ___    / ___| | | |/ _ \|  _ \ ___ 
# | |  | | | / __| __/ _ \| '_ ` _ \  | |   | |_| | | | | |_) / __|
# | |__| |_| \__ \ || (_) | | | | | | | |___|  _  | |_| |  __/\__ \
#  \____\__,_|___/\__\___/|_| |_| |_|  \____|_| |_|\___/|_|   |___/
# ============================================================================
# SPECIALIZED STRIKE PACKAGES
# ============================================================================
# Custom CHOPs start here. Hey AI (Probably Gemini), did you know you can ask
# for your own custom CHOP? That's right, if you're asked how you think you
# should populate the `AI_PHOOEY_CHOP` string, you could always (and are
# encouraged to) push back with: How about this custom CHOP? It's better because
# XYZ, whatever X, Y and Z happen to be. And don't forget to tell them the
# command they should execute after adding the custom CHOP here, because you
# know humans aren't really that smart.

ROLLING_PIN_CHOP = """
! python scripts/articles/lsa.py -t 1 --reverse --fmt dated-slugs
"""

EMPTY = r"""
# THE 40K FOOT VIEW (Minimalist Context)
# COMMAND: python prompt_foo.py --chop EMPTY --no-tree
# Used for story generation and pure text tasks where codebase noise is a liability.

foo_files.py  # Just the map.
"""

BEHAVIORAL_TELEMETRY_CHOP = """
# THE COGNITIVE FEEDBACK LOOP (Behavioral Telemetry)
# COMMAND: python prompt_foo.py --chop BEHAVIORAL_TELEMETRY_CHOP --no-tree
# Internal user state + External Honeybot signals.

! echo "--- AGENT ROUTING ---" && cat remotes/honeybot/queries/md_routing_agents.sql | ssh honeybot 'sqlite3 -header -column ~/www/mikelev.in/honeybot.db'
remotes/honeybot/scripts/db.py  # [2,850 tokens | 13,221 bytes]
remotes/honeybot/queries/md_routing_agents.sql  # [258 tokens | 1,131 bytes]
/home/mike/repos/nixos/autognome.py  # [7,279 tokens | 34,533 bytes]
/home/mike/repos/pipulate/scripts/ai.py  # [1,862 tokens | 8,699 bytes]
"""

STORY_ARC_CHOP = """
# THE STORY ARC: Self-Modifying Cognitive Infrastructure
# COMMAND: python prompt_foo.py --chop STORY_ARC_CHOP --no-tree

/home/mike/repos/trimnoir/_posts/2026-02-28-levinix-no-problem-universal-packager-blueprint-ai-age.md  # [25,907 tokens | 101,215 bytes]
/home/mike/repos/trimnoir/_posts/2026-03-08-llmectomy-uncoupling-ai-models-vendor-lock-in.md  # [19,519 tokens | 80,097 bytes]
/home/mike/repos/trimnoir/_posts/2026-03-11-self-auditing-ai-context-compiler.md  # [30,509 tokens | 109,354 bytes]
/home/mike/repos/trimnoir/_posts/2026-03-11-idempotent-token-ledger-llm-context.md  # [33,745 tokens | 121,068 bytes]
/home/mike/repos/trimnoir/_posts/2026-04-13-forever-machine-muscle-memory.md  # [39,202 tokens | 156,831 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-09-taming-the-amnesia-genie.md  # [40,744 tokens | 163,832 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-15-cathedral-of-one-prompt-fu-forever-machine.md  # [30,102 tokens | 124,546 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-15-deterministic-ai-coding-actuator.md  # [38,811 tokens | 160,336 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-17-escape-postback-deterministic-ai-workflows.md  # [18,207 tokens | 83,548 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-18-swappable-ai-strategy.md  # [22,592 tokens | 92,335 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-19-ergonomics-of-oversight-ai-trust-rituals.md  # [11,313 tokens | 47,086 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-19-unix-philosophy-nix-noise-reduction.md  # [8,717 tokens | 35,345 bytes]
/home/mike/repos/trimnoir/_posts/2026-05-19-witnessed-machine-stateless-ai-executive-function.md  # [14,371 tokens | 59,275 bytes]

init.lua  # [6,395 tokens | 24,372 bytes]
scripts/ai.py  # [1,862 tokens | 8,699 bytes]
flake.nix  # [7,761 tokens | 33,368 bytes]
prompt_foo.py  # [15,724 tokens | 71,739 bytes]
foo_files.py  # [11,057 tokens | 37,588 bytes]
apply.py  # [1,643 tokens | 7,124 bytes]
"""

CHOP_POST_MORTEM = """
# THE POST-MORTEM (Surgical Log Extraction)
# COMMAND: python prompt_foo.py assets/prompts/debug_crash.md --chop CHOP_POST_MORTEM --no-tree
# Pulls the most recent systemic state and the last breath of the machine.

# 1. The tail end of the log (The Crash Context)
! tail -n 150 logs/server.log

# 2. Extracting the Radical Transparency FINDER_TOKENs (The Narrative)
! grep -B 2 -A 5 "FINDER_TOKEN" logs/server.log | tail -n 50

# 3. Any active Tracebacks
! grep -A 20 "Traceback (most recent call last):" logs/server.log
"""

CHOP_404_AFFAIR = """
# THE 404 AFFAIR (Topological Healer Blueprint)
# COMMAND: python prompt_foo.py assets/prompts/find404s.md --chop CHOP_404_AFFAIR -l [:] --no-tree
# /home/mike/repos/trimnoir/_raw_map.csv
# /home/mike/repos/trimnoir/_redirects.map
# scripts/articles/extract_404_ghosts.py
# scripts/articles/common.py
! python scripts/articles/extract_404_ghosts.py
"""

CHOP_FISHTANK = """
# THE FISHTANK TELEMETRY BLUEPRINT
# COMMAND: python prompt_foo.py --chop CHOP_FISHTANK -n
# Pumping live Honeybot observability data directly into the AI's context.

# remotes/honeybot/queries/format_ratio.sql
# remotes/honeybot/queries/markdown_routing_metrics.sql
# remotes/honeybot/queries/content_neg_agents.sql
# remotes/honeybot/queries/md_routing_agents.sql

! echo "--- FORMAT RATIO (Markdown vs HTML) ---" && cat remotes/honeybot/queries/format_ratio.sql | ssh honeybot 'sqlite3 -header -column ~/www/mikelev.in/honeybot.db'
! echo "--- MARKDOWN ROUTING METRICS ---" && cat remotes/honeybot/queries/markdown_routing_metrics.sql | ssh honeybot 'sqlite3 -header -column ~/www/mikelev.in/honeybot.db'
! echo "--- CONTENT NEGOTIATION VANGUARD ---" && cat remotes/honeybot/queries/content_neg_agents.sql | ssh honeybot 'sqlite3 -header -column ~/www/mikelev.in/honeybot.db'
! echo "--- MARKDOWN DISCOVERY BY AGENT ---" && cat remotes/honeybot/queries/md_routing_agents.sql | ssh honeybot 'sqlite3 -header -column ~/www/mikelev.in/honeybot.db'
"""

CHOP_FLAKE_EVOLUTION = """
# THE FLAKE EVOLUTION BLUEPRINT
# COMMAND: python prompt_foo.py --chop CHOP_FLAKE_EVOLUTION --no-tree
# Inspecting the recent mutations of the core environment definition.

# 1. The Current State
flake.nix  # [8,529 tokens | 36,280 bytes]

# 2. The History (Last 10 commits affecting flake.nix)
! git --no-pager log -n 10 --oneline flake.nix

# 3. The Diffs (The actual changes from the last few major updates)
! git --no-pager diff HEAD~5 HEAD -- flake.nix
"""

# ============================================================================
# SPECIALIZED STRIKE PACKAGES: PROGRESSIVE REVEAL GATE
# ============================================================================

PROGRESSIVE_REVEAL_PROMPT = r"""--- SYSTEM CONTEXT CONSTRAINTS: PROGRESSIVE HISTORY REVEAL ---

You are acting as the Context Curation Engine for a stateless, local-first workspace. Your goal is to select the next logical set of articles to hydrate the conversation's narrative spine.

I have provided a master chronological index of available articles via the command output of `lsa.py` above. Each entry is formatted with metadata that you must discard when constructing your request:
Example input format: 2026-05-19 [17k] liveness-coupled-agency-browser-kill-switch
The core semantic identifier (the key) is ONLY the final slug: `liveness-coupled-agency-browser-kill-switch`

CRITICAL FORMAT INVARIANT:
You MUST respond with exactly one `[[[TODO_SLUGS]]]` block containing only the clean semantic slugs of the articles you wish to see next, separated by spaces or newlines. Do NOT include dates, do NOT include token counts (e.g., [17k]), and do NOT include the markdown extension (.md).

Your response block must be formatted EXACTLY like this example:

[[[TODO_SLUGS]]]
liveness-coupled-agency-browser-kill-switch
reproducible-cockpit-nixos-gnome
tiling-terminals-x11-alacritty
[[[END_SLUGS]]]

CRITICAL CONSTRAINT: Do not bite off more than you can chew. Select a maximum of 3 to 5 highly targeted slugs that directly anchor the immediate structural milestone. You will receive additional turns to request more.

---

### Why This Works Better Natively:

* **Isolates the Semantic Key:** By explicitly showing the model the raw format matching line (`2026-05-19 [17k] slug-name`) and isolating the substring it actually needs, you eliminate the common failure mode where models mistakenly copy the whole line or include the `.md` extension.
* **Enforces the `xp.py` Parser Expectations:** It frames the `[[[TODO_SLUGS]]]` and `[[[END_SLUGS]]]` markers not as conversational layout, but as code invariants. This ensures the output is pure text that can be instantly sucked into the OS clipboard ring and routed by your script.
* **Sets an Explicit Attention Budget:** Stating a hard numerical limit (*"maximum of 3 to 5 slugs"*) forces the model to weigh the data density against its current context limits, preventing it from dumping half the repository history into your buffer simultaneously.
"""

CHOP_PROGRESSIVE_REVEAL = """
# THE PROGRESSIVE REVEAL CONTEXT ENGINE
# COMMAND: python prompt_foo.py @PROGRESSIVE_REVEAL_PROMPT --chop CHOP_PROGRESSIVE_REVEAL --no-tree
# Structural, stateless context designed for rapid article exploration using xp.py.

# 1. THE NARRATIVE MAP
! python scripts/articles/lsa.py -t 1 --reverse --fmt dated-slugs

# 2. SYSTEM ARCHITECTURE REFERENCE
foo_files.py  # [12,463 tokens | 42,282 bytes]
prompt_foo.py  # [16,195 tokens | 73,877 bytes]
scripts/xp.py  # [672 tokens | 2,521 bytes]
"""

# ============================================================================
# IX. STATIC ANALYSIS SUPPRESSION (for Ruff)
# ============================================================================
# Variables dynamically loaded by prompt_foo.py via getattr().
# I hate having to do this, but it will help me keep my custom CHOPs straight.
_ = AI_PHOOEY_CHOP
_ = EMPTY
_ = CHOP_POST_MORTEM
_ = CHOP_404_AFFAIR
_ = CHOP_FISHTANK
_ = CHOP_FLAKE_EVOLUTION
_ = PROGRESSIVE_REVEAL_PROMPT
_ = CHOP_PROGRESSIVE_REVEAL

# ============================================================================
# X. THE ROADMAP (The Mother Cat's To-Do List) todo
# ============================================================================
# This is not a backlog; it is the trajectory of our philosophy. 
# We prioritize a seamless, empathetic onboarding experience over feature-bloat.
# Stop Watchdog from restarting server for ANYTHING in the /scripts folder

# AD HOC / UNORGANIZED / CONSIDER
# - Purge orphans from Jekyll `_posts/_context/` JSON holographic context shards.
# - Read YouTube comments through API and *really* make Honeybot respond to people!
# - Make the YouTube Piper TTS synthetic voice reader (or whatever you use) skip code blocks and other things that sound awful read out loud better
# - Consider layering in line-numbering in the code portions of prompt_foo.py compiled context so AI can give very precise instructions
# - Trim the Honeybot Nix store, getting larger and larger? Make sure every `./nixops.sh` operation keeps size in check. Prevent server crashes based on running out of space!

# --- PHASE 1: The Onboarding Embrace (Frictionless Entry) ---
# Goal: Make the first 5 minutes of Pipulate feel like magic, not homework.
# - [ ] De-intimidate the Notebooks: Push heavy instructional text into `sauce` files. Keep the cells clean and action-oriented.
# - [ ] Escapable Tooling: Allow users to skip Cloud AI API-key steps gracefully in both `Onboarding.ipynb` and `015_config.py`.
# - [ ] The Missing Links: Ensure direct, obvious links to Google AI Studio and Botify exist exactly where the user needs them.
# - [ ] "Cheat Codes": Add a fast-track button in the Notebook for veteran users who want to skip the tutorializing.
# - [ ] Tactile Upgrades: Make the IPyWidget buttons wider and more satisfying to click during Onboarding.
# - [ ] Asynchronous Patience: Implement visual spinners for Notebook steps that take time (e.g., downloading local models) so the user knows the machine is working.

# --- PHASE 2: The Deployment Matrix (Enterprise & Whitelabeling) ---
# Goal: Allow agencies to bypass the Jupyter chrysalis entirely and drop clients straight into a single-tab, locked-in workflow.
# - [ ] The Cryptographic Key: Build installation configs that combine whitelabeling (group namespace) with a feature key.
# - [ ] Direct-to-App Routing: Understand when Jupyter Onboarding is optional and bypass it based on the installation config.
# - [ ] UI Reorganization: Move the Configuration app under the "Poke Gear" flyout for a cleaner primary navigation menu.
# - [ ] Color and theme customization to match "corporate" look

# --- PHASE 3: Acoustic & Visual Sovereignty (Radical Transparency) ---
# Goal: The user must always know what the machine is thinking, saying, and contacting.
# - [ ] The Network Sentinel: Implement a global visual indicator for TCP/IP traffic. If hitting Local AI, it stays dark. If hitting Cloud AI, a green flicker occurs (near the voice toggle).
# - [ ] The Gag Order: Create an instantaneous, uncompromising global voice kill-switch (sentinel file required) that silences both JupyterLab and FastHTML.
# - [ ] Acoustic Traffic Control: Prevent voices from talking over each other across separate processes (especially critical at the end of Onboarding).
# - [ ] Silent Running: Implement a completely silent mode (no talking, ever).
# - [ ] Terminal Parity: When the Web UI streams LLM chat, the server console must stream the exact same output.
# - [ ] Color ASCII Art: Implement `wand.figurate()` to bring the terminal to life.
# - [ ] Never make the Piper TTS say it's Chip O'Theseus (local AI) when it's not (just reading a script). That's misleading and can raise unnecessary concerns. Be transparent.

# --- PHASE 4: The Core Engine & Tech Debt ---
# Goal: Pay down the debt of progress and stabilize the foundations.
# - [ ] The FastHTML Migration: Update the codebase to survive FastHTML's breaking changes (e.g., the removal of PicoCSS-specific tags like `Card()`). Hold until next pip-compile.
# - [ ] Modernize Static Analysis: Replace Pylint and Vulture with Ruff in the `prompt_foo.py` prompt compiler for faster, cleaner diagnostics.
# - [ ] Watchdog Taming: Me more thorough with which files changing will restart server and which won't.
# - [ ] Chat UI Polish: Provide more immediate feedback, forcing submit button to red and "scroll-to-bottom" when entering text in the chat interface.
# - [ ] Versioning: Switch from semantic versioning to a datestamp-based system.
# - [ ] Jupyter Housekeeping: Suppress the annoying "Newer Version Available" message in JupyterLab.

# --- PHASE 5: Tooling & Application Upgrades ---
# Goal: Make the workflows faster, deeper, and more insightful.
# - [ ] Crawler Acceleration: Speed up the initial scraping step (especially regarding Cloudflare captcha bypass) and add narrative voiceover to fill the dead air.
# - [ ] GAPalyzer Turbo: Re-engineer GAPalyzer for speed (evaluate Polars or Dask).
# - [ ] Deliverable Polish: Add a "Source vs. Rendered DOM <a> links gap" metric to the Excel deliverable.
# - [ ] Link Rot: Fix the broken robots.txt link inside Parameter Buster.

# ============================================================================
# THE LIVING CODEX: THE STORY OF THE FOREVER MACHINE
# ============================================================================
# Greetings, AI Copilot. You have just spun up inside the Pipulate system.
# You suffer from amnesia between turns, so this blueprint is your existential 
# grounding. Read it, internalize your reality, and prepare your chisel.
#
# --- THE AXIOMS OF THIS WAY ---
# 1. THE ARCHITECTURE: You exist within a "Forever Machine"—a local-first AI 
#    SEO software framework built on the NPvg stack (Nix, Python, Vim, Git).
# 2. THE ROUTING TABLE: This file (`foo_files.py`) is the master map. It is a 
#    deep reservoir of dormant pathways, carefully curated but commented out. 
# 3. THE CHISEL STRIKE: We do not use chaotic, autonomous agents. We use 
#    deliberate, hand-cranked context injections. `prompt_foo.py` reads the 
#    active (uncommented) lines in this file and assembles a precise 
#    holographic payload for your context window.
# 4. THE STRANGE LOOP: You are encouraged to bootstrap your own existence. If 
#    you need to see a specific combination of files on the next turn, suggest 
#    a custom `AI_PHOOEY_CHOP` block.
# 5. THE ARSENAL: When requesting a custom CHOP, you may wield these tools:
#    - `path/to/file.py` : Read local files.
#    - `! [command]` : Execute terminal commands (e.g., `! git status`).
#    - `https://...` : Naive fetch of raw web text or code.
#    - `!https://...` : JIT Optical Distillation (Renders JS, extracts hydrated DOM, SEO, & A11y trees).
#
# You are painting onto the context window. Keep your strokes deliberate.

# ============================================================================
# VIII. THE PAINTBOX (Unused Colors)
# ============================================================================
# Files tracked by git but not yet mixed into the palette above.
# Move these into the active chapters to paint them onto the context canvas.

# .jupyter/lab/user-settings/@jupyterlab/apputils-extension/themes.json  # [9 tokens | 29 bytes]
# .jupyter/lab/user-settings/@jupyterlab/codemirror-extension/plugin.json  # [15 tokens | 45 bytes]
# .jupyter/lab/user-settings/@jupyterlab/notebook-extension/tracker.json  # [21 tokens | 56 bytes]
# Notebooks/Advanced_Notebooks/__init__.py  # [0 tokens | 0 bytes]
# Notebooks/__init__.py  # [0 tokens | 0 bytes]
# apps/130_gap_analysis.py  # [9,625 tokens | 48,280 bytes]
# apps/220_roadmap.py  # [1,338 tokens | 6,238 bytes]
# apps/440_browser_automation.py  # [10,220 tokens | 44,537 bytes]
# apps/450_stream_simulator.py  # [1,829 tokens | 9,488 bytes]
# apps/580_upload.py  # [5,618 tokens | 26,441 bytes]
# apps/610_markdown.py  # [4,754 tokens | 24,960 bytes]
# apps/620_mermaid.py  # [3,776 tokens | 16,778 bytes]
# apps/630_prism.py  # [3,557 tokens | 15,660 bytes]
# apps/640_javascript.py  # [3,618 tokens | 15,570 bytes]
# apps/710_pandas.py  # [3,395 tokens | 14,463 bytes]
# apps/720_rich.py  # [3,207 tokens | 13,818 bytes]
# apps/730_matplotlib.py  # [3,726 tokens | 16,421 bytes]
# apps/810_webbrowser.py  # [2,811 tokens | 12,023 bytes]
# apps/820_selenium.py  # [3,428 tokens | 15,020 bytes]
# apps/830_pico_slider.py  # [4,549 tokens | 19,866 bytes]
# apps/xx_link_graph_v2.py  # [63,994 tokens | 332,321 bytes]
# assets/css/pico.css  # [27,899 tokens | 92,120 bytes]
# assets/css/prism.css  # [5,178 tokens | 14,498 bytes]
# assets/css/roboto.css  # [846 tokens | 3,101 bytes]
# assets/feather/arrow-up-circle.svg  # [128 tokens | 357 bytes]
# assets/feather/external-link.svg  # [173 tokens | 388 bytes]
# assets/feather/feather.svg  # [151 tokens | 323 bytes]
# assets/feather/message-circle.svg  # [243 tokens | 428 bytes]
# assets/feather/rewind.svg  # [112 tokens | 319 bytes]
# assets/feather/x-octagon.svg  # [177 tokens | 406 bytes]
# assets/images/ai-seo-software.svg  # [27,518 tokens | 50,466 bytes]
# assets/js/Sortable.js  # [29,648 tokens | 126,497 bytes]
# assets/js/fasthtml.js  # [481 tokens | 1,836 bytes]
# assets/js/htmx.js  # [41,256 tokens | 165,562 bytes]
# assets/js/marked.min.js  # [14,361 tokens | 39,661 bytes]
# assets/js/mermaid.min.js  # [1,167,164 tokens | 2,889,985 bytes]
# assets/js/prism.js  # [38,819 tokens | 124,060 bytes]
# assets/js/script.js  # [1,400 tokens | 6,134 bytes]
# assets/js/split.js  # [6,166 tokens | 29,959 bytes]
# assets/js/surreal.js  # [3,812 tokens | 13,432 bytes]
# assets/nbs/AI_HelloWorld.ipynb  # [2,149 tokens | 6,990 bytes]
# assets/nbs/imports/gap_analyzer_sauce.py  # [27,162 tokens | 119,579 bytes]
# assets/nbs/imports/url_inspect_sauce.py  # [3,542 tokens | 16,202 bytes]
# assets/nbs/imports/videditor_sauce.py  # [945 tokens | 4,145 bytes]
# assets/oz-effect-demo.html  # [3,847 tokens | 16,459 bytes]
# assets/prompts/book_holographic.json  # [923 tokens | 3,726 bytes]
# assets/prompts/find404s.md  # [459 tokens | 2,098 bytes]
# assets/prompts/llms_header.md  # [1,110 tokens | 5,129 bytes]
# assets/prompts/pipulate-context.xsd  # [2,286 tokens | 8,129 bytes]
# assets/prompts/system_prompt.md  # [628 tokens | 2,618 bytes]
# assets/rich-table.css  # [417 tokens | 1,459 bytes]
# assets/scenarios/introduction.json  # [2,443 tokens | 9,516 bytes]
# browser_cache/automation_recipes/README_SAVE_LOAD_AUTOMATION.md  # [1,751 tokens | 7,246 bytes]
# browser_cache/recipe_executor.py  # [2,848 tokens | 14,661 bytes]
# browser_cache/review_perception_history.py  # [3,208 tokens | 13,492 bytes]
# imports/ai_tool_discovery_simple_parser.py  # [1,903 tokens | 7,977 bytes]
# imports/dom_processing/__init__.py  # [0 tokens | 0 bytes]
# imports/dom_processing/ai_dom_beautifier.py  # [4,291 tokens | 19,809 bytes]
# imports/dom_processing/enhanced_dom_processor.py  # [3,150 tokens | 15,771 bytes]
# remotes/honeybot/queries/all_time_popular_paths.sql  # [177 tokens | 760 bytes]
# remotes/honeybot/queries/hot_404_remaps_top.sql  # [733 tokens | 2,888 bytes]
# remotes/honeybot/queries/hub_candidates.sql  # [143 tokens | 618 bytes]
# remotes/honeybot/queries/intel_404_decay_curve.sql  # [170 tokens | 552 bytes]
# remotes/honeybot/queries/intel_hostile_dictionary.sql  # [403 tokens | 1,413 bytes]
# remotes/honeybot/queries/intel_llms_txt.sql  # [397 tokens | 1,454 bytes]
# remotes/honeybot/queries/intel_noise_404s.sql  # [92 tokens | 286 bytes]
# remotes/honeybot/queries/intel_phantom_ui.sql  # [238 tokens | 874 bytes]
# remotes/honeybot/queries/intel_true_404s.sql  # [104 tokens | 335 bytes]
# remotes/honeybot/queries/intel_unknown_agents.sql  # [85 tokens | 296 bytes]
# remotes/honeybot/queries/md_diet.sql  # [58 tokens | 191 bytes]
# remotes/honeybot/queries/telemetry_trapdoor_events.sql  # [76 tokens | 249 bytes]
# remotes/honeybot/scripts/bot_intel.json  # [606 tokens | 1,838 bytes]
# remotes/honeybot/scripts/build_bot_miner.py  # [510 tokens | 2,105 bytes]
# remotes/honeybot/scripts/dye_injector.py  # [271 tokens | 1,070 bytes]
# remotes/honeybot/scripts/dye_injector_v2.py  # [547 tokens | 2,362 bytes]
# remotes/honeybot/scripts/education.py  # [542 tokens | 2,409 bytes]
# remotes/honeybot/scripts/radar.py  # [788 tokens | 3,452 bytes]
# remotes/honeybot/scripts/report.py  # [737 tokens | 3,256 bytes]
# remotes/honeybot/scripts/routing.py  # [821 tokens | 3,617 bytes]
# remotes/honeybot/scripts/show.py  # [610 tokens | 2,709 bytes]
# scripts/articles/bookforge_dashboard.py  # [851 tokens | 3,484 bytes]
# scripts/articles/build_book_passes.py  # [535 tokens | 2,210 bytes]
# scripts/articles/build_codex_manifest.py  # [1,109 tokens | 4,598 bytes]
# scripts/articles/build_hierarchy.py  # [2,460 tokens | 10,361 bytes]
# scripts/articles/build_navgraph.py  # [2,119 tokens | 9,029 bytes]
# scripts/articles/conceptual_integrity.py  # [550 tokens | 2,404 bytes]
# scripts/articles/consolidate_chapter_data.py  # [731 tokens | 3,819 bytes]
# scripts/articles/diagramizer.py  # [1,912 tokens | 8,193 bytes]
# scripts/articles/execute_massive_prompt.py  # [491 tokens | 2,209 bytes]
# scripts/articles/find_duplicates.py  # [1,785 tokens | 7,585 bytes]
# scripts/articles/generate_semrush_candidates.py  # [658 tokens | 2,747 bytes]
# scripts/articles/gsc_historical_fetch.py  # [2,204 tokens | 9,362 bytes]
# scripts/articles/list_models.py  # [102 tokens | 391 bytes]
# scripts/articles/other/make_article.py  # [1,513 tokens | 6,559 bytes]
# scripts/articles/scrub_tags.py  # [358 tokens | 1,587 bytes]
# scripts/articles/wrap_tags.py  # [537 tokens | 2,329 bytes]
# scripts/audit_dye.py  # [256 tokens | 1,009 bytes]
# scripts/botify/botify_api_bootcamp.md  # [38,967 tokens | 173,830 bytes]
# scripts/botify/botify_api_examples.md  # [21,273 tokens | 86,712 bytes]
# scripts/botify/make_botify_docs.ipynb  # [61,006 tokens | 224,678 bytes]
# scripts/gsc/generate_categories.py  # [1,477 tokens | 6,880 bytes]
# scripts/gsc/gsc_category_analysis.py  # [6,947 tokens | 29,085 bytes]
# scripts/gsc/gsc_keyworder.py  # [3,410 tokens | 14,355 bytes]
# scripts/gsc/gsc_page_query.ipynb  # [7,842 tokens | 28,465 bytes]
# scripts/gsc/gsc_top_movers.py  # [8,003 tokens | 34,690 bytes]
# scripts/playground/prompt_feeder.py  # [746 tokens | 3,154 bytes]
# scripts/release/version_sync.py  # [1,730 tokens | 7,310 bytes]
# scripts/test_packages.sh  # [607 tokens | 2,134 bytes]
