Skip to content

Repository files navigation

Durable Agent Harness

Public engineering notebook by Alex Lennon (@embedded_iot) under the Chop Wood Carry Water brand — building a durable working relationship with AI coding agents.

🌐 Site: https://chopwoodcarrywater.uk/
📦 Repo: https://github.com/DynamicDevices/durable-agent-harness
🏷️ Baseline: v1.2 (2026-09-12) in BASELINE-v1.2.md · previous v1.1 🤖 Agents: AGENTS.md · https://chopwoodcarrywater.uk/agents.html

First-person voice, short blog, playbook, patterns, and honest measurement — personal brand, not a company brochure.

Here, the working relationship is the human experience and the durable agent harness is the versioned, tested mechanism that makes it repeatable. Portable skills are its core; product-specific guidance and controls are host adapters; Codex and Cursor are the cockpits in which it runs.

Layer Meaning in this notebook
Working relationship The human experience: purpose, judgement, collaboration and learning
Durable harness Skills, policy, memory, tools, gates, tests and feedback that should survive a host change
Host adapter Codex- or Cursor-specific guidance, hooks, permissions and task integration
Cockpit / host Codex or Cursor: the agent runtime and interface supplying native controls

Topics: ai · agents · cursor · developer-tools · llm · engineering · documentation · productivity

Site SEO includes canonical URLs, per-insight Open Graph / Twitter cards, BlogPosting JSON-LD, RSS, robots.txt, llms.txt, and a real-URL sitemap. Contract: docs/NOTES-SOCIAL-SHARING.md.

What’s inside

Area What you get
60 minutes Timed checklist + Codex starter pack (Cursor pack retained)
Codex migration Portable Agent Skills, AGENTS.md, worktrees/handoff, host-native controls, self-evals
Playbook Twelve steps to build a thin harness from scratch
Learning MemPalace memory + Kaizen → Hansei → Toyota Way Practices
Runtime Preloop (policy/audit under P0) + OpenRouter (multi-model routing) + PR commit checks (preloop status)
Channels & lean WhatsApp/Briar triage, media ingest, token-lean skills, desktop MCQ, voice, CI checks
Starter kit Copy-paste templates for skills, rules, patterns, lanes, clocks, capability maps (starters/)
Explore Timeline, stack, capability map, patterns, glossary/FAQ, research
Cases Before/after outcomes that show the harness at work
Measure Tenure clocks, metrics that aren’t fake multipliers, weekly ritual
Insights What broke / locked / earned a place on disk — sparks in blog-inbox.md, published at EOW
About Notebook blurb; contributor notes in PRIVACY.md

Local check

npm install
npx playwright install chromium
npm run cards     # regenerate 1200×627 insight cards (Pillow)
npm test          # sync + privacy gate + Playwright (desktop + mobile)
npm run serve     # http://127.0.0.1:4173

Start a private insight package from a rough thought or UTF-8 transcript:

npm run insight:new -- --title "The working title" --text "The first thought"
npm run insight:new -- --title "The working title" --input ~/Downloads/transcript.txt

Drafts default to a private directory outside this public repository and are not published automatically. Use --output-root to select another private location. After publishing the associated LinkedIn post, add its HTTPS URL as discussionUrl so the article invites readers to join that conversation.

Create or refresh a public-but-unlisted review page from a private package:

npm run insight:review -- --package /path/to/private-package
npm run insight:review -- --package /path/to/private-package --replace
npm run sync

The review URL is /review/the-working-title.html. Only the CWCW insight draft section and publication metadata are copied into this public repository; research notes, raw material and social copy stay in the private package. Review pages are visibly marked as drafts, carry noindex,nofollow, and are excluded from Insights, RSS, the sitemap, llms.txt and social-card generation. They are unlisted, not confidential: anyone with the URL or repository access can read them. Every review requires a newly generated, post-specific 1200×627 editorial image derived from that draft's image brief; reusable generic cards are not an acceptable substitute. The generated-image disclosure, meaningful alt text and the exact ../assets/review/<slug>.png path must be present in the manifest before insight:review will promote it. Publishing remains a separate, deliberate edit to content/blog.json.

content/blog.json is the insight source of truth. npm run sync renders static docs/notes/*.html, feed.xml, sitemap.xml and llms.txt; GitHub Pages serves docs/ from main. Review the PR and local Lighthouse results before merging. After production publish, run new URLs through LinkedIn Post Inspector.

Four clocks (frozen starts)

Clock Start
Serious hands-on AI 2025-06-06
Cursor as cockpit 2025-07-23
Codex as cockpit 2026-08-30
Versioned harness 2026-05-31

Licence

See LICENSE for the split.


AI-assisted (Codex) under Alex’s direction. Use at your own risk.

About

Public engineering notebook: build a durable harness around AI coding agents — playbook, starters, patterns, honest measurement.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages