← All sessionsHomeSearch
AI Catalyst C3·Core Session - Week 11·3:07:00

Session 22: Automate Admin Tasks — Advanced RAG (Enterprise 'Internal Perplexity' Built Live)

Harshith Vaddiparthy Trainer — Outskill; builds 'Talent Lens', an enterprise-grade internal-Perplexity RAG for HR/talent management, live from naming to a working cited-answer demo on his own resume · Shivani Cohort manager — logistics and CSAT poll

Session map

THE THESISTHE BUILDTHE RAILSThe enterprise RAG thesisdata, computation, and LLM on the clien…Own-the-box economicsDGX Spark, the parameters-vs-RAM rule,…'Awesome X GitHub'the curated-list discovery trick (and G…Choosing a RAG stack by measu…Spec-first with a version-1 b…agents.md, design docs, and the anti-dr…Running an agent team of onequeueing, steering, and the self-docume…Ship hygiene1CLI for agent-safe secrets, MIT over A…
The thesisThe buildThe rails
click a node — its card pops up (drag it anywhere, × to close)
Concept

The map reads left to right — the thesis flow into the build, then into the rails. Click any node to open that idea here; every timestamp jumps into the recording.

The short version

  1. The build is an ENTERPRISE RAG with a deliberate privacy thesis: data, computation, and LLM all sit on the client's own server (Ollama in production; OpenAI only for the demo because his 18GB MacBook can't run big models) — set against the previous day's cautionary tale of Datalab offering a 25% discount in exchange for your proprietary PDFs.
  2. Stack selection is done by MEASUREMENT, not marketing: the agent is told to verify real footprints — RAGflow falls to its own printed prereqs, and the winner is Haystack + embedded Qdrant at ~107MB, dual-provider (OpenAI/Ollama). 'Measuring candidates rather than trusting the lightweight marketing language.'
  3. The most portable line defines production-grade RAG in one sentence: 'answers must be grounded in retrieved evidence, carry citations, expose uncertainty, and avoid inventing HR facts' — implemented as a hard evidence gate: retrieve at most 6 chunks, citations before generation, PDF text labeled untrusted, refuse to answer when retrieval has nothing relevant.
  4. The 'awesome X github' discovery trick is the session's cheapest superpower: prefix any topic with 'awesome', suffix 'github', take the first curated list — MCP servers, RAG variants, front-end design systems — plus 'GitHub's search bar is the worst; install the GitHub MCP server and search from your agent instead.'
  5. Codex workflow craft on full display: spec-first (agents.md, specs.md, design.md 'so the setup does not drift'), a version-1 boundary decision, queueing vs steering, the Codex Personalization Master Prompt ('do not rush straight into implementation'), and a meta side-chat that watches the main chat's session ID and auto-builds the learner resource library.
  6. Ship hygiene as content: 1CLI so 'the AI agent will be using the API key without actually knowing what the API key is' (right after he pastes a key in chat 'just for this session'); Apache swapped for MIT so learners can commercialize; monetization answered as retainer/monthly maintenance for self-hosted enterprise deploys.

The concepts

01

The enterprise RAG thesis: data, computation, and LLM on the client's own server

'Datalab was giving us 25% discount in exchange for my PDF — for my data that might be proprietary.' The discount toggle from yesterday's session becomes today's reason to build.

Perplexity and NotebookLM already exist, so the differentiated use case is the one they structurally can't serve: an enterprise whose documents must never train someone else's model. The whole architecture follows from that constraint — 'host this on your client's server, where the data, the computation, and the LLM all sit inside your client's very own server.' OpenAI appears in the demo purely as a stand-in ('my Mac does not support bigger models'); Ollama is designed in as the first-class interchangeable provider from the first spec message, 'not an afterthought.'

The business model rides along: sell the same repurposable codebase to clients per vertical ('RAG is a RAG — there's just gonna be a very simple change in a system prompt'), and monetize the self-hosted deploy as a retainer/monthly-maintenance contract since there's no per-seat SaaS to bill. Today's vertical, crowd-chosen: HR/talent management — 'internal Perplexity for an HR company' — with candidate data as exactly the kind of PII that justifies the on-prem shape.

Worked example · from the session

The use-case brainstorm itself: fintech invoices, legal/insurance, hospital records, HR — each pitched by the cohort, each valued precisely because the data is proprietary.

Why it matters

It's the clearest statement in the course of when NOT to use hosted AI — and the counterpart to the sprint's open-source doctrine: privacy as the buying reason.

People get this wrong

Enterprise AI means a bigger OpenAI contract.

For proprietary-data clients it often means the opposite — no hosted API at all; open models on their own hardware, with the hosted key used only to demo.

Datalab was giving us 25% discount in exchange for my data that might be proprietary.
RAG is a RAG. There's just gonna be a very simple change in a system prompt.
What they're able to visually see can be our moat.
For your projects

Maps onto your standing rule set: this is the client conversation where 'where does the data live' decides the architecture before any feature does.

Go deeper

In one line: Enterprise RAG = retrieval system where documents, vector store, and inference all run inside the client's infrastructure (Ollama or equivalent local LLM); hosted APIs allowed only as demo scaffolding; sold as build + retainer, repurposed across verticals by swapping the system prompt.

Rajesh's live challenge — 'if OpenAI is used, how is this enterprise?' — answered directly: OpenAI is demo-only, Ollama is the production path ()

Chat-only vs workspace-library upload semantics taught as a product decision: per-conversation ephemeral vs persistent knowledge base ()

Ravindra's RBAC caveat accepted: a shared workspace library needs role-based access control, deferred as out of MVP scope ()

'What they're able to visually see can be our moat' — the interface, not the RAG, is the defensible part, since the RAG is open source ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why is Ollama in the spec from message one rather than added later?

Because provider-swappability is the product's entire enterprise claim; retrofitting it after building around OpenAI's shapes would rework every seam. 'First-class interchangeable provider, not an afterthought.'

02

Choosing a RAG stack by measured footprint, not marketing — Haystack + embedded Qdrant

'I'm now measuring candidates rather than trusting the lightweight marketing language.' The agent disqualifies RAGflow with RAGflow's own printed prerequisites.

The selection method is the lesson: give the agent the full candidate list (Gemini Cookbook, Haystack, LlamaIndex, Qdrant, Genkit, AnythingLLM, RAGflow, LightRAG, GraphRAG) plus a hard constraint — 'a very lightweight RAG system, because my MacBook is just 18GB RAM' — and require evidence. RAGflow falls immediately: 16GB RAM + 50GB disk prereqs, x86-only published image, multiple service dependencies. The LlamaIndex+Qdrant pairing has a compatibility issue that day. The winner is Haystack with EMBEDDED Qdrant: ~107MB installed, both OpenAI and Ollama integrations working.

The RAG internals that ship: ~600-word chunks with overlap, one embedded Qdrant collection per conversation, retrieval capped at 6 chunks, numbered citations emitted BEFORE generation, PDF text labeled as untrusted quoted data, and an explicit refusal path when retrieval returns nothing relevant. Transport is a fixed-order line-delimited JSON stream (sources, token events, complete). Architecture is the classic split he pauses to teach: FastAPI backend on its own port, Next.js frontend on another — 'even in a monorepo, the backend still has to run separately.'

Worked example · from the session

The chunking bug that proves the tests are real: Haystack counts words as space-delimited while PDF extraction keeps line breaks, so a '600-word' chunk measures 612 — a test-precision issue, not a chunking defect, diagnosed on camera.

Why it matters

This is the reusable procedure for any 'which framework' decision: constraint first, agent-verified footprints second, marketing adjectives never.

People get this wrong

You need a vector database service (Pinecone, hosted Qdrant) to build RAG.

Embedded Qdrant runs in-process at ~107MB — for single-tenant and on-prem use cases the 'database' is just a library.

The measured RAG stack (~107MB, no services to run) Documents client data, on-prem Chunk overlap + evidence Embed OpenAI ↔ Ollama Qdrant embedded, in-process Answer grounded, cited Chosen by measured footprint, not marketing — every provider swappable, demo and production share one pipeline
The measured RAG stack: chunk, embed, Qdrant, answer, every provider swappable
I'm now measuring candidates rather than trusting the lightweight marketing language.
For your projects

The measurement-over-marketing procedure is the same discipline as your site-health audits: never trust the adjective, run the check.

Go deeper

In one line: Lightweight enterprise RAG core = Haystack orchestration + embedded Qdrant vector store (~107MB, in-process, no services), dual provider (OpenAI demo / Ollama production), 600-word overlapping chunks, ≤6-chunk retrieval with citations-before-generation and a refuse-on-empty evidence gate, streamed over line-delimited JSON from a FastAPI backend to a Next.js front end.

The 'awesome RAG github' list is the candidate-sourcing step — vision RAG, agentic RAG, corrective RAG all one curated repo away ()

Scira AI (ex-MiniPerplx) mined for architecture because its Apache license permits it — 'an open-source Perplexity' by an indie builder he follows ()

Big-PDF indexing failed live; a synthetic two-pager was generated to test, then his real 3-page resume indexed and answered with citations — 'Boom' ()

His own bad example owned: pasted an OpenAI key into chat 'just for this session, I'll rotate after' — immediately followed by the 1CLI lesson ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why citations BEFORE generation rather than after?

It forces the pipeline to commit to evidence first — the model generates from labeled, already-cited chunks, so it can't invent sources to fit an answer it already wrote.

03

'Awesome X GitHub': the curated-list discovery trick (and GitHub MCP over the search bar)

'Whatever you want, just type in awesome before that. Prefix as awesome, and then suffix as GitHub. Enter. And go with the first one.'

Three demonstrations in five minutes: 'awesome MCP servers github' → every MCP server; 'awesome RAG github' → vision/agentic/corrective RAG lists; 'awesome front end design github' → free design systems. The 'awesome' convention is a community norm — collectively maintained curated lists — and it reliably outperforms both generic search and GitHub's own search bar, which he calls 'the worst thing to do... it's so hard.' The upgrade path: install the GitHub MCP server in Claude Code or Codex and let the agent run the search — 'it just does it much better.'

Worked example · from the session

Later in the session the same trick resurfaces for Hermes: 'awesome Hermes agent github' → the skills/ecosystem list he pastes to the cohort.

Why it matters

As a non-coder-turned-AI-native he frames GitHub as 'a goldmine' — this is the two-word key that opens it.

People get this wrong

'Awesome' lists are an organization or a product.

It's an open convention — 'a group of people who just collectively contribute for free' — which is why it exists for nearly everything.

Whatever you want, just type in awesome before that... prefix as awesome, and then suffix as GitHub.
For your projects

Pairs with your existing skills.sh habit from s23 — awesome-lists for breadth, skills.sh for installable depth.

Go deeper

In one line: Discovery pattern: search 'awesome <topic> github', take the top curated list; for anything deeper, search GitHub through its MCP server from your coding agent rather than the site's search bar.

Works for tool categories (MCP servers), technique families (RAG variants), and assets (design systems) alike

Curated lists are maintenance-shared — fresher than any blog roundup

GitHub MCP search beats the native bar for both keyword and semantic-ish queries ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

When does the trick fail?

Brand-new niches with no list yet, and quality varies — the list is a directory, not an endorsement; footprints still need measuring (see rag-stack-by-measurement).

04

Spec-first with a version-1 boundary: agents.md, design docs, and the anti-drift record

'Production grade means answers must be grounded in retrieved evidence, carry citations, expose uncertainty, and avoid inventing HR facts.' The spec says what the product may NOT do before any code exists.

Before UI, before stack: a folder tree of MD files — agents.md, specs.md, design.md 'and other MD files required to keep the documentation very tight, because this is a production-grade product... I don't want you to hallucinate.' The agent then forces a VERSION-1 BOUNDARY decision — read-only cited HR answer engine vs. workforce analytics vs. an agent that modifies HR systems — and the smallest is chosen deliberately (modifying HR systems needs integrations that would sink the session). Each approved checkpoint is written down before implementation: 'I'll first record the exact front-end decision in the repository so the setup does not drift' — frontend-design.md capturing Next.js, dark-only Cyberpunk theme, sample data explicitly marked temporary.

The wireframe-first rule rides on top: 'before it even creates a spec document, I want the wireframe — you don't know how it can even proceed... on what exactly it is even gonna build.' See something running early ('run it locally, I want to see it visually'), then iterate.

Worked example · from the session

The Codex Personalization Master Prompt — his tuned system prompt whose first rule is 'do not rush straight into the implementation unless the task is tiny or urgent' — shared to the cohort as a Google Doc after Pratik asks for it (1:19:14).

Why it matters

It's the course's recurring build ritual in its most compressed form, with the anti-hallucination clause made explicit for a domain (HR facts) where inventing answers is a liability.

People get this wrong

Spec-first means waterfall — write everything before building.

It means each checkpoint is RECORDED before its implementation; the wireframe and running dashboard arrive within the first hour.

Production grade means answers must be grounded in retrieved evidence, carry citations, expose uncertainty, and avoid inventing HR facts.
For your projects

Your pipeline already runs this shape — schema first, validate.py as the drift gate; his frontend-design.md is your open-items.yaml.

Go deeper

In one line: Spec-first build = MD-file scaffold (agents.md/specs.md/design.md) + a chosen v1 boundary + per-checkpoint decision records committed to the repo before implementation, governed by a personalization prompt that forbids rushing to code.

V1 boundary options priced honestly: the agent-that-modifies-HR-systems path rejected for integration cost, not ambition ()

'Sample data explicitly marked temporary' — drift protection extends to fake data, so it can't calcify into the product ()

Branch ceremony dropped mid-session ('just keep doing this on main') — process is a dial, not a religion, in a live solo build ()

'Stop with the browser automation — it just wastes a ton of time' — agent behaviors get pruned when they don't serve the loop ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

What does 'expose uncertainty' require of the UI, not just the model?

A visible state for weak retrieval — the upload chip states (validating/indexing/ready/failed) and the refuse-to-answer path are UI commitments, not prompt wishes.

05

Running an agent team of one: queueing, steering, and the self-documenting side chat

A second Codex chat is told: 'I'm doing a live session right now... watch the main chat's session ID and keep adding resources' — the build documents itself while it happens.

The mechanics, all shown live: MAIN CHAT does the build; LEARNER RESOURCES chat runs his Outskill Session Resource Generator skill, is handed the main chat's session ID, and periodically sweeps it into a Google Drive resource library (prompt library included) — with credentials explicitly scrubbed from the learner copy of the skill. QUEUEING (Cmd+Enter) stacks work without interrupting ('only when the push to GitHub is done, then it starts on this'); STEERING interrupts a stuck or drifting run — 'like a steering wheel... abruptly stop it and ask it to take a different direction.' Cmd+1/Cmd+2 toggles chats.

The model question — asked by Paul — gets the honest answer: 'nothing like that, Paul. Claude is really good... the model is amazing [Opus]. It's just the UI' — Codex desktop's side chats, queue, and connections flow suit live multi-threaded work better than Claude Code's CLI or Mac app, for him. And the harness definition, addressed to Paul: 'a harness is like a skill... a system prompt you're giving your agent — the tools, the prompts, the skills, the access.' Plus the reach trick: his Hermes agent lives on a VPS and he talks to it FROM Codex (Settings → Connections, Codex CLI on both ends) — 'you can be controlling 10 different computers from one MacBook Air.'

Worked example · from the session

The meta-loop worked: mid-session the resource library, prompt library, Cody's knowledge-graph brief, and Syed's build-library site were all folded in, credited, and shared before the build finished.

Why it matters

This is the operational answer to 'how does one person ship and teach and document simultaneously' — parallelism through chats, not through effort.

People get this wrong

Codex vs Claude Code is a model-quality decision.

By his own account it's a WORKFLOW-UI decision — he rates the Claude models highly and uses them; the desktop ergonomics decide which harness runs the live build.

Agents without harness is honestly nothing.
A harness is like a skill. It's like a system prompt that you are giving your agent — the tools, the prompts, the skills, the access.
For your projects

You are IN this transcript: your Codex-vs-Claude question at ~1:21:16 prompted both the UI-preference answer and the harness definition. Worth a listen for the answer as delivered to you.

Go deeper

In one line: Multi-chat orchestration = one building chat + one meta chat (resource/documentation agent with the session ID), coordinated via queue (Cmd+Enter, runs after current work) and steer (interrupt + redirect), with remote agents attached over Connections/CLI as extra hands.

Queue vs steer chosen by whether the current work should finish: queue respects it, steer overrides it ()

The learner-safe skill copy: same skill, credentials and personal account hooks removed — a template for shareable internal tooling ()

Cohort members built in parallel and fed the session (Syed's dashboard beat his; Cody's knowledge graph got adopted) — the room as a swarm ()

Codex↔Hermes over VPS: heavy work goes to the stronger remote machine; the laptop is just the steering wheel ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

Why hand the side chat a session ID instead of pasting content across?

The ID gives it read access to the whole evolving conversation — it can sweep continuously instead of depending on you remembering to paste.

06

Ship hygiene: 1CLI for agent-safe secrets, MIT over Apache for learners

'The AI agent will be using the API key without actually knowing what the API key is.' Said minutes after he pasted a key into chat and promised to rotate it.

Two hygiene lessons, both taught through his own behavior. SECRETS: pasting an API key into an agent chat is the lazy path he demonstrates and disavows — the right pattern is 1CLI, a local secrets broker where keys live outside the conversation and the agent invokes them by reference; it also surfaced a real failure mode (a stale key inherited by an old process sent embeddings to the wrong configuration). Works on a VPS with Hermes too. LICENSES: the repo shipped Apache by accident; he switches to MIT on camera specifically so learners can commercialize — his framing: Apache lets you use it, MIT lets you 'build your very own company out of the entire codebase.' (His Apache characterization is looser than the legal reality — Apache is also commercial-friendly but adds patent/notice obligations; the MIT choice is about maximal simplicity for learners.)

Worked example · from the session

The rotate-after-session promise plus the earlier key-in-chat paste is the before/after picture: convenience under time pressure vs. the broker pattern for anything that persists.

Why it matters

Every agent build eventually needs third-party keys; where they live decides whether a leaked chat log is an incident.

People get this wrong

Env files are the end state for agent secrets.

An agent can read an env file; the broker pattern's point is the agent can USE what it cannot READ.

The AI agent will be using the API key without actually knowing what the API key is.
For your projects

Candidate for a toc-standards lesson: 'agents use keys they cannot read' is a one-line policy you can apply across projects.

Go deeper

In one line: Agent secrets pattern: keys held by a local broker (1CLI), referenced not read by the agent, rotated after any exposure; license chosen for the audience's intended reuse (MIT for maximal learner commercialization).

Failure diagnosed live: 'the old process inherited the stale key and the non-OpenAI base URL, so embeddings were sent to the wrong unauthorized configuration' ()

1CLI view-all shows which keys are live without printing them ()

License switch propagated through the codebase by the agent, not hand-edited ()

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

What made the pasted key comparatively survivable here?

It was scoped (new key created for the demo), promised for rotation, and the session is a controlled broadcast — none of which makes it a pattern; the broker exists so the tradeoff never arises.

07

Own-the-box economics: DGX Spark, the parameters-vs-RAM rule, and when the API still wins

'Instead of paying so much for API tokens, you initially invest in compute and then work on it' — the $6,000 NVIDIA DGX Spark as a birthday-list thesis.

The sizing rule, stated plainly: model capability tracks parameters, and parameters track RAM — a 128GB unified-memory Spark comfortably runs a ~118B-parameter model ('Laguna', released that week and built for the Spark), while frontier models he cites at trillions of parameters would need '6 to 7 of those' boxes. So the box replaces API spend only for workloads a ≤118B model can serve: his plan is to move the Hermes agent, embeddings, and harnesses into one headless box and connect from anywhere.

The counterargument is aired and endorsed: Rahul's math — $6k buys 4-5 years of a $100/month hosted plan, 'and we don't know which one gets better next month.' Verdict: 'it totally depends on privacy and where you want your data stored.' Hosted is more efficient and easier; local is for data custody, open-source repos, and API-free volume. (Model names and parameter counts here are as-heard from the session — treat the specific numbers as color, not citations.)

Worked example · from the session

His own stack today is the hybrid: Azure + Hostinger VPS for Hermes now, the Spark as the aspiration — matching the session's demo-on-OpenAI / production-on-Ollama split.

Why it matters

It's the hardware half of the enterprise-RAG privacy thesis: on-prem needs a box, and the box's RAM decides the model.

People get this wrong

A $6k AI box makes hosted subscriptions obsolete.

It caps you at what its RAM can hold; hosted frontier models remain years of subscription cheaper for capability-bound work — the box wins on custody, not quality.

For your projects

Your Fable-credit burn strategy is the same genre of decision — matching workload to the cheapest adequate compute regime.

Go deeper

In one line: Local-compute rule of thumb: usable model size scales with unified memory (~128GB ≈ ~118B params); buy hardware when privacy or volume dominates, stay hosted when capability or simplicity dominates; the crossover is a privacy decision before it is a cost decision.

The 'bigger is smarter' heuristic immediately qualified: 'not always — look at the latest version of the models' ()

Headless operation: no monitor, reachable from a MacBook anywhere — the box as a private cloud of one ()

Sprint-day echo: the same week's subsidy math showed plan credits ~20x cheaper than API overflow — three price regimes now on the table: plan, API, owned hardware

▶ Watch this taught:

Check yourself

Answer from memory first — the recall attempt is what makes it stick. Then reveal.

A client wants zero data egress AND frontier-model quality. What does this rule say?

Pick one or pay heavily: frontier-scale local inference needs multi-box budgets; most on-prem builds accept a ≤118B-class model as the privacy price.

Every concept, three clicks deep

The same concepts as a quick reference: the closed row is the glance, open is the study card, and every timestamp jumps into the recording.

01The enterprise RAG thesis: data, computation, and LLM on the client's own serverEnterprise RAG = retrieval system where documents, vector store, and inference all run inside the client's…

Enterprise RAG = retrieval system where documents, vector store, and inference all run inside the client's infrastructure (Ollama or equivalent local LLM); hosted APIs allowed only as demo scaffolding; sold as build + retainer, repurposed across verticals by swapping the system prompt.

Rajesh's live challenge — 'if OpenAI is used, how is this enterprise?' — answered directly: OpenAI is demo-only, Ollama is the production path ()

Chat-only vs workspace-library upload semantics taught as a product decision: per-conversation ephemeral vs persistent knowledge base ()

Ravindra's RBAC caveat accepted: a shared workspace library needs role-based access control, deferred as out of MVP scope ()

'What they're able to visually see can be our moat' — the interface, not the RAG, is the defensible part, since the RAG is open source ()

02Choosing a RAG stack by measured footprint, not marketing — Haystack + embedded QdrantLightweight enterprise RAG core = Haystack orchestration + embedded Qdrant vector store (~107MB, in-process…

Lightweight enterprise RAG core = Haystack orchestration + embedded Qdrant vector store (~107MB, in-process, no services), dual provider (OpenAI demo / Ollama production), 600-word overlapping chunks, ≤6-chunk retrieval with citations-before-generation and a refuse-on-empty evidence gate, streamed over line-delimited JSON from a FastAPI backend to a Next.js front end.

The 'awesome RAG github' list is the candidate-sourcing step — vision RAG, agentic RAG, corrective RAG all one curated repo away ()

Scira AI (ex-MiniPerplx) mined for architecture because its Apache license permits it — 'an open-source Perplexity' by an indie builder he follows ()

Big-PDF indexing failed live; a synthetic two-pager was generated to test, then his real 3-page resume indexed and answered with citations — 'Boom' ()

His own bad example owned: pasted an OpenAI key into chat 'just for this session, I'll rotate after' — immediately followed by the 1CLI lesson ()

03'Awesome X GitHub': the curated-list discovery trick (and GitHub MCP over the search bar)Discovery pattern: search 'awesome github', take the top curated list;

Discovery pattern: search 'awesome <topic> github', take the top curated list; for anything deeper, search GitHub through its MCP server from your coding agent rather than the site's search bar.

Works for tool categories (MCP servers), technique families (RAG variants), and assets (design systems) alike

Curated lists are maintenance-shared — fresher than any blog roundup

GitHub MCP search beats the native bar for both keyword and semantic-ish queries ()

04Spec-first with a version-1 boundary: agents.md, design docs, and the anti-drift recordSpec-first build = MD-file scaffold (agents.md/specs.md/design.md) + a chosen v1 boundary + per-checkpoint…

Spec-first build = MD-file scaffold (agents.md/specs.md/design.md) + a chosen v1 boundary + per-checkpoint decision records committed to the repo before implementation, governed by a personalization prompt that forbids rushing to code.

V1 boundary options priced honestly: the agent-that-modifies-HR-systems path rejected for integration cost, not ambition ()

'Sample data explicitly marked temporary' — drift protection extends to fake data, so it can't calcify into the product ()

Branch ceremony dropped mid-session ('just keep doing this on main') — process is a dial, not a religion, in a live solo build ()

'Stop with the browser automation — it just wastes a ton of time' — agent behaviors get pruned when they don't serve the loop ()

05Running an agent team of one: queueing, steering, and the self-documenting side chatMulti-chat orchestration = one building chat + one meta chat (resource/documentation agent with the session…

Multi-chat orchestration = one building chat + one meta chat (resource/documentation agent with the session ID), coordinated via queue (Cmd+Enter, runs after current work) and steer (interrupt + redirect), with remote agents attached over Connections/CLI as extra hands.

Queue vs steer chosen by whether the current work should finish: queue respects it, steer overrides it ()

The learner-safe skill copy: same skill, credentials and personal account hooks removed — a template for shareable internal tooling ()

Cohort members built in parallel and fed the session (Syed's dashboard beat his; Cody's knowledge graph got adopted) — the room as a swarm ()

Codex↔Hermes over VPS: heavy work goes to the stronger remote machine; the laptop is just the steering wheel ()

06Ship hygiene: 1CLI for agent-safe secrets, MIT over Apache for learnersAgent secrets pattern: keys held by a local broker (1CLI), referenced not read by the agent, rotated after…

Agent secrets pattern: keys held by a local broker (1CLI), referenced not read by the agent, rotated after any exposure; license chosen for the audience's intended reuse (MIT for maximal learner commercialization).

Failure diagnosed live: 'the old process inherited the stale key and the non-OpenAI base URL, so embeddings were sent to the wrong unauthorized configuration' ()

1CLI view-all shows which keys are live without printing them ()

License switch propagated through the codebase by the agent, not hand-edited ()

07Own-the-box economics: DGX Spark, the parameters-vs-RAM rule, and when the API still winsLocal-compute rule of thumb: usable model size scales with unified memory (~128GB ≈ ~118B params);

Local-compute rule of thumb: usable model size scales with unified memory (~128GB ≈ ~118B params); buy hardware when privacy or volume dominates, stay hosted when capability or simplicity dominates; the crossover is a privacy decision before it is a cost decision.

The 'bigger is smarter' heuristic immediately qualified: 'not always — look at the latest version of the models' ()

Headless operation: no monitor, reachable from a MacBook anywhere — the box as a private cloud of one ()

Sprint-day echo: the same week's subsidy math showed plan credits ~20x cheaper than API overflow — three price regimes now on the table: plan, API, owned hardware

Tools referenced

ToolCoverageMomentContext
Codex (OpenAI)demonstratedPrimary build agent; queueing, steering, side chats, Connections-to-VPS all demonstrated; worktrees puzzled over live
ChatGPTdemonstratedDesktop app hosting the Codex project ('Talent Lens')
GitHubdemonstratedPhased pushes, README with Drive link, MIT license switch, Dependabot PR bafflement ('I don't know what Dependabot is')
HaystackdemonstratedChosen RAG core — ~107MB with embedded Qdrant; he also wants it inside his Hermes agent
QdrantdemonstratedEmbedded mode — one collection per conversation, no separate service
Next.jsdemonstratedFront end; the backend/front-end split taught from first principles
Tailwind CSS + shadcn/uidemonstratedDashboard block + TweakCN 'Cyberpunk' theme, dark-only
OpenAI APIdemonstratedDemo LLM + embeddings; stale-key failure diagnosed live
OllamaexplainedFirst-class production provider in the spec; not installed on his Mac that day, so smoke-testing deferred
Claude Codementioned'The model is amazing... it's just the UI' — his Codex preference explained to Paul as ergonomics, not capability
NotebookLMmentionedThe citation-UX benchmark the final demo is compared against
PerplexitymentionedThe interface pattern being cloned ('internal Perplexity')
Wispr FlowmentionedVoice-input aside — he clarifies which dictation tool he is (not) using (as heard: 'free flow')

Session materials

Archived locally on V: — click to open. Companion pages link to the LMS.

Action items

Resources mentioned

Resources
  • docRAG Stack Decision Guide
  • docTalent Lens Product Blueprint
  • docTalent Lens Enterprise Integration Blueprint
  • docKnowledge Graph Engineering Brief (Cody Shah)
  • docCodex Personalization Master Prompt
  • docPrompt Library
  • docSafe GitHub Publishing
  • docPDF RAG Build & Debugging Lab
  • docSyed Hasan — Talent Atlas Build Library Guide
  • docTalent Lens GitHub repository
  • docScira AI (ex-MiniPerplx)
  • doc1CLI
  • docAll s22 local attachment files

Extraction notes

This page was built from an auto-generated transcript, which garbles product and people's names. Those were corrected silently in everything above and logged here for transparency. The warnings flag claims that were true on the recording day but change fast.

Transcript corrections applied

The transcript saysThe trainer actually means
Skria / Korea / PriyaScira AI (formerly MiniPerplx)
OLAMA / Olama / OLAMM / old LamaOllama
quadrant / Quant QuadrantQdrant (embedded)
Ramesh agent / Eremen's agent / RMS agentHermes agent
hardness / hardnessesharness(es)
drag / rack / rag flowRAG / RAGflow
codecs / Codec's / Codex TLICodex / Codex CLI
one CLI1CLI (the secrets broker repo)
Gwen 3.5 / Gwen 3.8Qwen (model family)
SuperbaseSupabase
free flow / Whisper Flowdictation-tool aside; likely Wispr Flow vs. a 'Freeflow' app — ambiguous in audio
Laguna / Wizard Lagunaas-heard name of a ~118B open model 'built for the DGX Spark' — unverified; treat as color
ChatGBTChatGPT
Y Combinator bag startupY Combinator-backed startup (LlamaIndex)

True on recording day — verify before relying