Tooling & Lab
Not-Humans-Lab
Governance layer over three personal sub-projects.
2 min read · 422 words
Not-Humans-Lab is a documentation-and-governance layer over three independent, personal sub-projects — daily-dose (an AI-curated arXiv + Hacker News digest), nh-deck (a local-first Markdown/HTML presentation CLI), and nh-skills (a personal collection of AI-agent Skills) — each keeping its own toolchain rather than folding into shared build tooling.
It's deliberately code-light at the root: no scaffolded package.json, no shared build graph, no CI runner. What's centralized instead is governance — Apache-2.0 licensing, a trunk-based Conventional-Commits branch strategy, and Michael Nygard-style Architecture Decision Records for any choice that cuts across sub-projects.
- Governance layer over 3 personal sub-projects: daily-dose · nh-deck · nh-skills
- No shared build tooling by design (YAGNI) — each sub-project keeps its own toolchain
- ADRs + Conventional Commits + mandatory PR review, even solo
2 commits — a brand-new umbrella, still finding its shape.
Architecture
The real workspace has no code to architect — it's a documentation-and-governance layer over three independent sub-projects, each living outside this repo. CLAUDE.md states it outright: no build/test/lint tooling here, no scaffolded package.json. What the repo actually federates is:
- daily-dose — an AI-curated arXiv + Hacker News digest, built on Astro + TypeScript/Node.
- nh-deck — a local-first Markdown/HTML presentation CLI (TypeScript/Node, Commander.js, marked, puppeteer-core/chrome-launcher, Vitest).
- nh-skills — a personal collection of AI-agent Skills: pure Markdown/YAML plus one Node validator script.
There is deliberately no shared build graph, package manager, or CI runner at the root — tech.md is explicit that "no monorepo tooling [is] adopted at this level." The only things standardized centrally are the license (Apache-2.0, chosen for its patent grant) and a trunk-based, Conventional-Commits branch strategy. The architecture doc is capped at C4 Level 1 — three boxes, one relationship: nh-skills' still-unbuilt "blog-to-deck" skill that would eventually invoke nh-deck.
How It Works
With no runtime, "how it works" here means how a decision gets made and stays made. Architecture-level choices go through Michael Nygard-style Architecture Decision Records under docs/adr/ — sequentially numbered, never edited after acceptance, only superseded by a later ADR (ADR-0001, accepted 2026-09-02, formalizes the practice itself). Decisions scoped to a single sub-project stay in that sub-project's own file; decisions.md at the root is reserved for choices that cut across two or more of daily-dose, nh-deck, and nh-skills. Two dated, cross-cutting agent-behavior learnings are logged in agent_learning.md: parallel docs-writing and code-writing agents given the same prose spec independently invented different, non-matching directory structures across all three sub-projects (nh-deck's docs described src/commands/, src/render/, src/server/, src/export/ subdirectories, while the real code stayed flat — src/render.ts, src/server.ts, src/pdfExport.ts); and a machine-global ConfigProtection hook blocks any write to a new sub-project's tsconfig.json without an explicit per-path exception.