Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
67a3676
t1: shared measurement envelope — coherence/schema.py + docs/envelope.md
OriNachum Jul 6, 2026
2060417
merge t1: shared measurement envelope (TDD-gated)
OriNachum Jul 6, 2026
02d6da2
t2: frame provenance core
OriNachum Jul 6, 2026
a1ee548
merge t2: frame provenance core (TDD-gated)
OriNachum Jul 6, 2026
f5a8520
t3: signal series schema + robust loader
OriNachum Jul 6, 2026
e413449
merge t3: signal series schema + robust loader (TDD-gated)
OriNachum Jul 6, 2026
19c5b04
t11: quality domain engine — offline heuristics
OriNachum Jul 6, 2026
1f6101c
merge t11: quality domain engine — offline heuristics (TDD-gated)
OriNachum Jul 6, 2026
7dd1fc1
t12: quality compare — signed component deltas
OriNachum Jul 6, 2026
d4eda17
merge t12: quality compare — signed component deltas (TDD-gated)
OriNachum Jul 6, 2026
81dca9a
t9: signal collect — measurements to series
OriNachum Jul 6, 2026
6185876
t7: signal resonance engine — signed alignment
OriNachum Jul 6, 2026
70e26f6
merge t9: signal collect — measurements to series (TDD-gated)
OriNachum Jul 6, 2026
a86847c
merge t7: signal resonance — signed alignment (TDD-gated)
OriNachum Jul 6, 2026
08e5dc2
t4: signal trend engine
OriNachum Jul 6, 2026
5114038
t6: signal pattern engine
OriNachum Jul 6, 2026
f290d16
merge t6: signal pattern — motif detection (TDD-gated)
OriNachum Jul 6, 2026
f8f255e
merge t4: signal trend engine (TDD-gated)
OriNachum Jul 6, 2026
67a5e44
t14: frames inspect/diff + mixed-frame guard
OriNachum Jul 6, 2026
d79bb3f
merge t14: frames inspect/diff + mixed-frame guard (TDD-gated)
OriNachum Jul 6, 2026
1a8d2a4
t10: meaning outputs gain additive envelope keys
OriNachum Jul 6, 2026
14d2582
merge t10: meaning outputs gain additive envelope keys (TDD-gated)
OriNachum Jul 6, 2026
c282511
t8: signal forecast — labeled extrapolation
OriNachum Jul 6, 2026
9e96822
merge t8: signal forecast — labeled extrapolation (TDD-gated)
OriNachum Jul 6, 2026
415f350
t5: meaning trend delegates difference math to signal layer
OriNachum Jul 6, 2026
2f91976
merge t5: meaning trend delegates to signal layer, byte-identical (TD…
OriNachum Jul 6, 2026
b0e259a
t13: investiture engine — estimated micro-investiture
OriNachum Jul 6, 2026
d62908f
merge t13: investiture engine — estimated micro-investiture (TDD-gated)
OriNachum Jul 6, 2026
30f7b01
t15: assess engine — multi-domain report with honest availability
OriNachum Jul 6, 2026
d07c6d9
merge t15: assess engine — multi-domain report (TDD-gated)
OriNachum Jul 6, 2026
d715157
t17: README + docs — five-domain positioning
OriNachum Jul 6, 2026
d7f9cb9
merge t17: README + docs — five-domain positioning (TDD-gated)
OriNachum Jul 6, 2026
8c85a05
t16: CLI wiring for quality/signal/investiture/frames/assess + explai…
OriNachum Jul 6, 2026
c384a92
merge t16: CLI wiring for all new nouns + explain catalog (TDD-gated)
OriNachum Jul 6, 2026
cdad283
docs: README examples section reflects wired CLI (post-t16 integratio…
OriNachum Jul 6, 2026
862a320
t18: additive-compatibility + structure verification
OriNachum Jul 6, 2026
8dfb13e
merge t18: additive-compatibility + structure verification (TDD-gated)
OriNachum Jul 6, 2026
1370a83
chore: bump version to 0.6.0 + build-session memory
OriNachum Jul 6, 2026
d269fcb
fix(ci): black-format four agent test files; make trend-delegation go…
OriNachum Jul 6, 2026
4050f44
fix(ci): black-format quality/compare.py and signal/collect.py (misse…
OriNachum Jul 6, 2026
a6f8093
fix(ci): backtick the assess <file> placeholder in CHANGELOG (MD033)
OriNachum Jul 6, 2026
c8026e9
refactor: address SonarCloud findings on PR #14 new code
OriNachum Jul 6, 2026
82040de
chore: eidetic memory — CI gotchas from the workforce build
OriNachum Jul 6, 2026
4519b36
fix: address Qodo review findings + CLI boilerplate duplication (PR #14)
OriNachum Jul 6, 2026
0076dba
refactor: split collect() point-building into helpers (S3776, complex…
OriNachum Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .eidetic/memory/coherence-cli__public.jsonl
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
{"id": "sonar-pr-quality-gate-2026-07", "hash": "03491653b0008ba66083221b47cad276364d89a74f546959106d96fffec38cd1", "content": "REFERENCE (paid for): coherence-cli's CI has a SonarCloud quality gate on NEW CODE that blocks the PR (project key agentculture_coherence-cli). Two traps: (1) the /sonarclaude `status` verb queries the MAIN-branch gate, which can read PASSED while the PR gate is ERROR \u2014 query the PR gate directly: `curl -u \"$SONAR_TOKEN:\" \"https://sonarcloud.io/api/qualitygates/project_status?projectKey=agentculture_coherence-cli&pullRequest=<PR>\"`, and PR bugs: `.../api/issues/search?componentKeys=...&pullRequest=<PR>&types=BUG&resolved=false`. (2) Rule python:S1244 (no `== 0.0` on floats) fires on zero-norm guards like `if norm == 0.0:` \u2014 new_reliability_rating jumps to 3 and fails the gate. Fix: guard with a small epsilon (`norm <= 1e-12`), which is also more robust. SONAR_TOKEN is available in this environment. How to apply: after opening a PR here, check the PR-scoped Sonar gate, not just CI red/green or the main-branch status.", "scope": {"name": "coherence-cli", "visibility": "public"}, "metadata": {"type": "note", "record_metadata": {"topic": "CI / SonarCloud", "date": "2026-07-04", "source": "meaning-gradient PR #7"}, "created": "2026-07-04T15:34:16.522259+00:00", "last_recall": "2026-07-06T18:32:32.537944+00:00", "recall_count": 2, "links": [], "supersedes": null, "lifecycle": "active", "added_by": null}}
{"id": "meaning-gradient-mvp-shipped-2026-07-04", "hash": "2b5657f62b8bfa1ef9905e4e98a9ee4c4fecfad30699b180b7fca4a54869c027", "content": "Meaning Gradient MVP is BUILT and in review as coherence-cli PR #7 (branch feat/meaning-gradient, v0.5.0), superseding the continuation pointer. All 10 plan tasks / 6 waves done via /assign-to-workforce (workers were Claude subagents after colleague failed \u2014 see colleague-toolcall-format-bug-2026-07). Ships: `coherence meaning score/compare/trend` (--json, exit 0/1/2), the coherence/meaning engine (embed/axis+12 anchors/diagnostics/score/compare/trend), README + examples/experiments/issue-priority.yaml, and offline tests (133 passing) with committed recorded-vector fixtures + scripts/refresh_meaning_vectors.py. FALSIFIABILITY CONFIRMED: with real Qwen3-Embedding vectors the ordering test passes out of the box \u2014 every high-meaning fixture strictly outranks its paired low one, rewrite series monotonic, NO anchor tuning needed. numpy+httpx are the first runtime deps. Deferred (issue #6 roadmap, no code paths): experiment runner, LLM judge, doctor/certify --dimension meaning, pluggable providers, routing-policy output.", "scope": {"name": "coherence-cli", "visibility": "public"}, "metadata": {"type": "note", "record_metadata": {"topic": "meaning gradient", "pr": "7", "issue": "6", "date": "2026-07-04", "source": "meaning-gradient build session"}, "created": "2026-07-04T15:34:16.522572+00:00", "last_recall": "2026-07-06T18:32:32.697837+00:00", "recall_count": 3, "links": ["colleague-toolcall-format-bug-2026-07", "embed-gear-at-8001-lazyload-2026-07"], "supersedes": "meaning-gradient-continuation-2026-07-04", "lifecycle": "active", "added_by": null}}
{"id": "five-domain-spec-plan-2026-07-06", "hash": "1f20c10063196eb77f5e2e3b8f2f35a0f7fdf4edb7cf5d32e7025b6f1a2f3381", "content": "Five-domain restructure SPEC+PLAN converged and PR-ed (branch spec/five-domains-issues-8-11, v0.5.1): frame coherence-cli-ships-as-a-five-domain-coherence-eng covers issues #8/#9/#10/#11 in one architecture. Key decisions ON RECORD (do not relitigate): (1) quality domain is GREENFIELD \u2014 #11 premise of preserving existing claim-quality code was false, nothing implements the tagline; MVP = offline rule-based quality score+compare with honest cant-verify diagnostics. (2) TWO-SPEED ENVELOPE: new nouns (quality/signal/investiture/assess) emit full envelope {domain, score_type, scores, frame, diagnostics} from day one; existing meaning verbs gain ONLY additive top-level keys (domain, score_type, frame) \u2014 colleague pinned fixture must stay valid, verify additive-tolerance vs colleague#291/#294 before merging implementation (plan risk r1, task t18 gate). (3) meaning trend delegates difference math to coherence.signal.trend, gated by byte-identical golden test on recorded fixtures. (4) User-approved additions beyond issues: signal forecast (the predict surface), assess verb, SIGNED resonance (interference = negative pairs, same code path), frames inspect/diff + mixed-frame guard, signal collect (score JSONs to series glue). (5) coherence/quality/ layout, not claims/. Plan = 18 tasks / 7 file-disjoint waves covering all 38 targets; implement via /assign-to-workforce or serial waves 0-6.", "scope": {"name": "coherence-cli", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"topic": "five-domain restructure", "issues": "#8 #9 #10 #11", "date": "2026-07-06", "source": "spec session (think + spec-to-plan)"}, "created": "2026-07-06T20:39:08.742388+00:00", "last_recall": null, "recall_count": 0, "links": [], "supersedes": null, "lifecycle": "active", "added_by": null}}
{"id": "five-domain-build-complete-2026-07-07", "hash": "b9e62ed174820e95a5011f0f932730ddd1c24c5d073bcd1414f787df30e9a4ed", "content": "Five-domain restructure BUILT via /assign-to-workforce (18 tasks, 7 waves, all Claude subagents: 5 opus risk-carriers t3/t5/t10/t11/t18, 11 sonnet, 2 haiku), branch feat/five-domains, v0.6.0, 665 offline tests (146 baseline -> 665). All TDD merge gates passed first try; zero merge conflicts (file-disjoint waves held). KEY VERDICTS: (1) h15 RESOLVED \u2014 colleague gate is additive-tolerant: colleague/coherence.py _KNOWN_PAYLOAD_KEYS passes unknown keys through verbatim, tests assert subset-style, test_unknown_payload_keys_pass_through_verbatim explicitly injects a frame key (evidence from colleague PR #298, merged). Optional colleague-side nicety: refresh _LIVE_PAYLOAD from a 0.6.0 run. (2) Live-verified frame block reports ACTUAL runtime endpoint (8001 lobes gear, not 8002 default) \u2014 h9 honest. (3) meaning trend delegation proven byte-identical 3 ways: golden JSON snapshot, behavioral equivalence to signal.trend fns, source-level test asserting helpers gone + identity import. GOTCHAS: worktrees dir /home/spark/git/worktrees has root-owned leftovers (agent-t3 = stray Neo4j .data) \u2014 use repo-prefixed names (coherence-tN); entry point is `coherence` NOT `coherence-cli` (README Quickstart line is a stale scaffold leftover, still unfixed); devague `plan waves` numbers waves 1-7 while the plan doc says 0-6.", "scope": {"name": "coherence-cli", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"topic": "five-domain restructure", "branch": "feat/five-domains", "version": "0.6.0", "date": "2026-07-07", "source": "workforce build session"}, "created": "2026-07-06T22:41:11.224183+00:00", "last_recall": null, "recall_count": 0, "links": [], "supersedes": null, "lifecycle": "active", "added_by": null}}
{"id": "workforce-ci-gotchas-2026-07-07", "hash": "25687536ab45dd687d157dc5f36b53e8ff5e992455601f1142b308fcfae93a6e", "content": "GOTCHAS (paid for on PR #14 CI): (1) Golden-test float BYTE-identity breaks across machines \u2014 literals captured on the dev box differ in the last ulp on CI CPUs (CPU/BLAS summation differences). Pin goldens as structure-exact + float-tolerant deep compare (keys/strings/nulls exact, floats math.isclose rel_tol=1e-9), never string-compare JSON with floats in CI. (2) Workforce subagents skip black: 4 of 18 task commits were not black-formatted despite lint instructions in briefs \u2014 future briefs must make running black/isort (not just reading conventions) an explicit acceptance step, or the merger runs black before each wave merge. (3) MD033 <file> placeholders trip markdownlint in CHANGELOG.md too, not just devague exports \u2014 backtick every <placeholder> in changelog entries. (4) devex pr open aborts on ANY uncommitted/untracked files in the tree (even unrelated strays like docs/steward/) and misreports it as network unreachable \u2014 git push manually first, then rerun workflow.sh open. How to apply: check these four before opening PRs from workforce builds.", "scope": {"name": "coherence-cli", "visibility": "public"}, "metadata": {"type": "project", "record_metadata": {"topic": "workforce build / CI", "pr": "14", "date": "2026-07-07", "source": "five-domain build session"}, "created": "2026-07-06T22:55:01.102260+00:00", "last_recall": null, "recall_count": 0, "links": [], "supersedes": null, "lifecycle": "active", "added_by": null}}
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
Format follows [Keep a Changelog](https://keepachangelog.com/). This project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.6.0] - 2026-07-07

### Added

- Five-domain coherence engine: quality, meaning, signal, investiture, frames — implements issues #8, #9, #10, #11 per the converged spec/plan (PR #13). 18 tasks, 7 TDD-gated waves, 665 tests (all offline in CI).
- quality domain (greenfield): coherence quality score/compare — offline rule-based freshness/provenance/fidelity heuristics with visible per-component confidence and honest cant-verify diagnostics (source_liveness_unverified, publication_date_unverified, no_dateable_statements...).
- signal domain: source-agnostic series schema (docs/signal-series.md) + coherence signal trend/pattern/resonance/forecast/collect — f-prime/f-double-prime + monotonicity/volatility, six motif detectors, SIGNED pairwise alignment (positive=resonance, negative=interference, one code path), labeled next-point extrapolation with minimum-points guard, and measurements-to-series glue that carries frame provenance.
- investiture domain: coherence investiture score/compare — estimated micro-investiture (meaning_score x agency x future_constraint x affordance) via coherence.meaning (no duplicate embed path), mode=estimated with persistence/integration/behavioral-effect explicitly null and the missing_behavioral_outcome diagnostic.
- frames domain: coherence frames inspect/diff — provenance completeness (complete/partial/absent), gauge-comparability with differing fields named, and a mixed-frame guard wired into the series loader (mixed_frames / partially_framed warnings).
- assess verb: `coherence assess <file>` — one multi-domain report with per-domain availability honestly reported (embed endpoint down => quality still answers, meaning/investiture listed unavailable with reasons, exit 0).
- Shared measurement envelope (coherence/schema.py + docs/envelope.md): domain, score_type, scores, frame, diagnostics — with the two-speed adoption rule.
- Frame provenance on meaning outputs: score/compare/trend gain ADDITIVE top-level domain/score_type/frame keys resolved from the runtime embed config; explicit null-frame with machine-readable reason on the offline path. Additive-only compatibility proven by golden tests; colleague gate verified additive-tolerant (colleague/coherence.py pass-through).
- README + docs/domains.md: five-domain positioning, JSON contracts, planned-extensions list; banned-terms language test.

### Changed

- meaning trend difference math delegates to coherence.signal.trend (byte-identical output on recorded fixtures, golden-tested).
- explain catalog: 19 new command paths + 7 frame-vocabulary concept entries; cli overview/learn list all five domains.

## [0.5.1] - 2026-07-06

### Added
Expand Down
Loading
Loading