Tianyi Cui c870c8fcb1 Merge remote-tracking branch 'origin/split/agent-factory' into split/session-persistence-sqlite 3 miesięcy temu
..
0001-vendor-cordis-as-source.md 066f94c7e0 docs: unwrap hard-wrapped Markdown to one line per paragraph 3 miesięcy temu
0002-microkernel-event-taxonomy.md 066f94c7e0 docs: unwrap hard-wrapped Markdown to one line per paragraph 3 miesięcy temu
0003-event-sourced-sessions.md 066f94c7e0 docs: unwrap hard-wrapped Markdown to one line per paragraph 3 miesięcy temu
0004-own-content-block-vocabulary.md 066f94c7e0 docs: unwrap hard-wrapped Markdown to one line per paragraph 3 miesięcy temu
0005-custom-schema-dsl-over-schemastery.md 066f94c7e0 docs: unwrap hard-wrapped Markdown to one line per paragraph 3 miesięcy temu
0006-tool-schemas-in-prompt-assembly.md 066f94c7e0 docs: unwrap hard-wrapped Markdown to one line per paragraph 3 miesięcy temu
0007-quality-gates.md dabc2ff411 feat: migrate to pnpm 3 miesięcy temu
0008-tsdown-over-dumble.md dabc2ff411 feat: migrate to pnpm 3 miesięcy temu
0009-capability-seams.md 39b3db4b9c docs: accuracy sweep, architecture restructure, two ADRs, review skill 3 miesięcy temu
0010-twin-llm-adapters.md 39b3db4b9c docs: accuracy sweep, architecture restructure, two ADRs, review skill 3 miesięcy temu
0011-runtime-arg-validation.md 11f85b4f88 fix(tools): address Codex review of arg validation (PR 1) 3 miesięcy temu
0012-dev-invariants-over-deep-readonly.md 11a29fdefe feat(invariants): dev-mode event-contract assertions + session-log freeze (RFC 005 pt 3, RFC 008) 3 miesięcy temu
0013-property-based-testing.md 2f6d3b8539 test: property-based tests for protocol-shaped code (RFC 001) 3 miesięcy temu
0014-doc-sync-enforcement.md ffc107aa57 docs: record verify-md-wrap in the doc-sync source-of-truth docs 3 miesięcy temu
0015-structured-error-taxonomy.md 825b57aff9 feat(llm): structured error taxonomy with a shared HarnessError base (RFC 005 pt 2) 3 miesięcy temu
0016-pnpm-over-yarn.md 49e74ed8d0 docs: add ADR 0016 for the pnpm migration 3 miesięcy temu
0017-turn-enclosure-invariant.md 8511b9639c Merge branch 'split/session-persistence' into split/agent-factory 3 miesięcy temu
0018-session-persistence.md dbaef018cc Merge remote-tracking branch 'origin/split/agent-factory' into split/session-persistence-sqlite 3 miesięcy temu
README.md 96331432b8 Merge branch 'split/turn-enclosure' into split/session-persistence 3 miesięcy temu

README.md

Architecture Decision Records

Short, immutable records of the why behind decisions that shape this codebase. Code and docs say what the system does; ADRs say why it does it that way and what we gave up.

Format: one file per decision, numbered, with Status / Context / Decision / Consequences. An ADR is never edited into a different decision — supersede it with a new one and cross-link.

When to write an ADR

Write one when a decision is all three of: durable (it shapes the codebase beyond a single function or package), contested (there was a real alternative you rejected, and a reasonable engineer might have chosen it), and surprising (a future reader would otherwise ask "why on earth is it done this way?"). The ADR captures the why and what we gave up — the parts code and docs can't.

Do NOT write an ADR for: a mechanical or local choice (a variable name, a one-file refactor); anything already enforced and explained by a gate or a convention in AGENTS.md; or a still-provisional decision tagged TODO(...) in the code — record those as TODOs and promote to an ADR only once they settle. When in doubt, the test is the "why on earth" question: if the code alone would mislead a careful reader about intent, write the ADR.

# Title Status
0001 Vendor Cordis as source, not npm dependencies accepted
0002 Microkernel: extension via Cordis event taxonomy, one concrete loop accepted
0003 Event-sourced sessions with derived message history accepted
0004 Provider-neutral content-block vocabulary owned by dsh-llm accepted
0005 Custom typed tool-schema DSL instead of schemastery accepted
0006 Tool schemas are part of the system-prompt assembly accepted
0007 Mechanical quality gates over prose guidelines accepted
0008 tsdown for JS bundling instead of dumble accepted
0009 Capability seams — interface / implementation / consumer split accepted
0010 Two LLM adapters as a design-verification twin accepted
0011 Runtime arg validation at the model boundary accepted
0012 Dev-mode invariants over compile-time deep-readonly accepted
0013 Property-based testing for protocol-shaped code accepted
0014 Doc-sync enforcement (doc code blocks + event taxonomy) accepted
0015 Structured error taxonomy (HarnessError base) accepted
0016 pnpm as the package manager instead of Yarn 4 accepted
0017 Every session event is enclosed in a turn accepted
0018 Session persistence as an abstract service over SessionEvent accepted