A AutoLab
Workflows

How work gets done here

AutoLab ships six workflows — each one a Claude Code skill that thin-wraps a CLI verb with doctrine reminders and post-conditions (audit + render + commit + push). The routing table below is the “which one do I want?” reference, with the scaffold vs loop decision called out up top.

The decision that gets miswritten most

The autonomous loop (/autoresearch, /survey) is the special case — narrow sweet spot, only worth the compute on open-ended questions where adversarial iteration genuinely earns its keep. Everything else — equity tearsheets, refreshes, fund composition — is scaffold-driven: copy the template, fill it under the doctrine, audit, ship.

scaffold-driven: 4 workflows
loop-driven: 2 workflows

Routing table

/equity Write up a single name
Scaffold

Scaffold a tearsheet from the canonical template, fill every section under the doctrine, audit + render. The autonomous loop is the wrong tool for single-name tearsheets.

CLI: autolab equity <slug> Output: topics/equities/<slug>.md Rubric: profiles/equity/rubric.md
/refresh Update an existing analysis
Scaffold

Archive the prior version under <slug>.history/<old-date>.md, bump the frontmatter date, edit under the doctrine, then record the new conviction entry to the sidecar. URL stays stable.

CLI: autolab refresh <path> Output: mutates the file; appends to <slug>.history.json Rubric: docs/workflows/REFRESH.md
/fund Compose a portfolio brief
Scaffold

Deterministic composer — takes existing equity tearsheets and produces per-holding cards (PNG) + a combined report (PDF) with sector themes, comparison table, and per-name deep-dive.

CLI: autolab fund <files> Output: web/public/assets/fund/<slug>.{pdf,png} Rubric: profiles/fund/rubric.md
/autoresearch Defend an open thesis
Loop

The autonomous Scout → Researcher → Editor → Scorer → Red-team → Wildcard loop on a question like "Does NVIDIA have a moat?". Narrow sweet spot — only worth the compute on genuinely adversarial questions.

CLI: autolab topic "<question>" Output: topics/research/<slug>-YYYY-MM-DD.md Rubric: profiles/topic/rubric.md
/survey Map a landscape
Loop

Coverage-driven landscape map (players, segments, bottlenecks). Scaffold-first; optional additive survey loop when adversarial completeness is needed.

CLI: autolab research --mode survey Output: topics/research/<slug>-YYYY-MM-DD.md Rubric: profiles/survey/rubric.md
/audit Verify doctrine compliance
Scaffold

Mechanically check every analysis against the doctrine: frontmatter, Snapshot, financials table, bear case, decision boundaries, Sources + tier tags, citation resolution, Markdown well-formedness. Pair with /refresh or /equity to fix gaps.

CLI: python scripts/audit.py Output: stdout (regenerate docs/workflows/AUDIT.md) Rubric: docs/PRINCIPLES.md

How agents pick the right one

  1. Single-name tearsheet?/equity. Done.
  2. User has strong intuitions and just wants to write it up? → scaffold-first (--scaffold on workflows that support both modes). Fill the template interactively with WebSearch + reasoning. Most workflows are this by default; the loop is the exception.
  3. Open-ended adversarial question ("Does X have a moat?", "Will Y trend hold?") where the iteration itself earns its compute? → /autoresearch.
  4. Refresh / update of an existing analysis?/refresh.
  5. Composition from existing tearsheets?/fund.
  6. "Map the landscape" survey?/survey.

If none of the above fits cleanly, ask the user before invoking machinery. The cost of asking is one round-trip; the cost of running the wrong loop is hours of wasted compute and a half-finished artifact that doesn't fit the website.

What every workflow finishes with

Every workflow that writes a new or updated artifact under topics/ leaves the repo in a shippable state:

  1. The new/updated topics/<vertical>/<slug>.md exists with valid frontmatter.
  2. python scripts/audit.py passes (or known gaps are flagged needs_refresh: true honestly — see /audit).
  3. python scripts/build_artifacts.py --vertical <v> regenerates the PDF + PNG in web/public/assets/<v>/.
  4. The change is committed on main and pushed.

If a workflow can't get the artifact to a shippable state in one turn, it says so explicitly rather than half-shipping. The audit is the gate.

Further reading