Commit History
-
[NOTICKET] feat(knowledge-domain): the declared half — domain TBox + review (V4-9, V4-10)
Rifqi Hafizuddin +1: Claude Opus 5The half that could not be derived: what a domain IS, and what it deliberately is NOT. `measures`, `policies` and `units` fall out of entries; identity and boundary do not, and that is what the review loop exists for. **`boundary` IS DERIVED, and that is the design decision worth keeping.** v3's real lesson was not the rename - it was changing the question so the answer is checkable, `purpose` (composed, unverifiable) becoming `purpose_verbatim` (located, span-checked). A boundary sentence is inherently unquotable, being a statement about ABSENCE, so asking a model to write one reproduces exactly the unfalsifiable claim v3 removed. Instead it is the complement of the covered subdomains over a closed 11-member enum. On the BUMA corpus: covers production, equipment, planning, hauling, loading -> "no approved knowledge about maintenance, drilling_blasting, safety, quality, cost, geology". Deterministic, checkable, and it turns an honest refusal into a fact about the corpus rat…601937c -
[NOTICKET] feat(knowledge): kind CHECK gains 'document'; finalise the v4 workstream
Rifqi Hafizuddin +1: Claude Opus 5Closes the free window before Harry adopts the DDL. SCHEMA. `knowledge_entries.kind` now allows 'document' alongside the existing four, in `knowledge_tables.sql` AND applied live (DROP/ADD CONSTRAINT, 88 rows verified unchanged either side). Under the v4 plan 'domain' becomes the SCOPE-level semantic model and 'document' takes over the per-document brief that 'domain' holds today - both values are legal now, so that split lands without a second schema change. Doing this after Harry adopts the file would have cost a migration round-trip; doing it now cost an edit. ADDITIVE ONLY. The authorisation to delete our knowledge tables was given and deliberately NOT used: the change needed is additive, and the 88 existing entry rows are useful sample data for building the read path. Dropping them would have bought nothing. WORKSTREAM finalised into five phases ordered by a single rule: anything touching the `kind` vocabulary or an entity_id prefix goes BEFORE Harry adopts the DDL and BEFORE a…1b8660e
-
[NOTICKET] feat(knowledge): create the tables and wire the pipeline end to end
Rifqi Hafizuddin +1: Claude Opus 5Stages C, D and E of the persistence plan. The knowledge pipeline now runs from a documents row to persisted rows. TABLES CREATED (stage C). Five tables + 10 indexes applied to dedorch, exactly as docs/knowledge/knowledge_tables.sql, which is committed so what ran is reproducible rather than retyped from prose. Idempotent and additive only: no DROP, no ALTER, nothing touching an existing table. Verified by introspection - column counts 18/20/15/11/15 match the contract, all FKs and CHECKs present. ⚠️ Go still owns the migration (CLAUDE.md 2.2). Python executes no DDL: this was a one-time operator run following the 2026-07-13 message_charts precedent. That precedent's MISTAKE must not repeat - the schema was run by hand and never handed over, so a fresh environment built from Go's migrations comes up without it and both write paths fail silently. Run by hand, then hand over; never by hand only. Harry ask is in the contract section 5 Q5. Two CHECK constraints were correc…c2164ae