Files
tai/taicpp/AGENTS.md
T
retoorandClaude Opus 4.8 d34db8f215 cpp-safety: add the playbook doc and AGENTS rule (missed by *.md ignore)
docs/cpp-safety.md (the four-layer safe-C++ playbook and design decisions) and
the AGENTS.md standing rule were skipped by taicpp/.gitignore's *.md pattern in
79ae6f2; force-add them so the policy is actually in the tree, matching how the
other docs are tracked.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-10-27 19:04:11 +01:00

1.6 KiB

AGENTS.md — detz (taicpp) workflow

Source of truth: ../tai.py (untouched) + ../test_tai.py, ../tai_test.py. Reuse: moloapp (/home/retoor/projects/moloapp) — clients/SSE, llm providers, app patterns. Vendor/link only, never modify.

Workflow (per milestone, in order)

  1. Spec delta: update docs/<module>.md + parity table vs tai.py symbols.
  2. Code: headers .h + impl .cpp, one class per file pair, -std=c++23 -Wall -Wextra, warning-free.
  3. Tests: tests/*_test.cpp mirroring python cases; make test green.
  4. Changelog: prepend CHANGELOG.md entry.

Commands

  • make — build build/detz
  • make test — build + run all tests
  • make lint — warnings + clang-format check
  • make version-bump PART=patch|minor|major
  • make changelog MSG="..."
  • make tag — annotated tag detz-v$(cat VERSION)
  • make release PART=x MSG="..." — bump+changelog+commit+tag (never push unless asked)

Rules

  • No outputs outside build/.
  • src/cli/version.hpp generated from VERSION at build.
  • Max depth/layering, maximally OO. argparse tree must stay molo-subcommand-ready.
  • Safe C++ is mandatory, per docs/cpp-safety.md: any code that parses untrusted bytes uses overflow-safe size checks (len <= size - pos, never pos + len), reads lengths unsigned and range-checked before any allocation or slice, guards every shift/loop bound, and lets no exception escape a top-level dispatch loop. A new parser is unfinished without a hostile-input test and a sanitizer run (tools/san-whatsapp.sh is the pattern). We do not accept regressions here.