Skip to content

docs(philosophy): v3.0 relatedness ratification — stay deterministic (closes #605) - #610

Merged
robotrocketscience merged 3 commits into
mainfrom
docs/issue-605-philosophy-relatedness
May 11, 2026
Merged

docs(philosophy): v3.0 relatedness ratification — stay deterministic (closes #605)#610
robotrocketscience merged 3 commits into
mainfrom
docs/issue-605-philosophy-relatedness

Conversation

@robotrocketscience

@robotrocketscience robotrocketscience commented May 10, 2026

Copy link
Copy Markdown
Owner

Summary

Ratifies issue #605 (v3.0 PHILOSOPHY decision: natural-language-relatedness gate). Decision: Option 1 — stay deterministic, narrow the surface.

Three commits, atomic:

  1. docs/v3_relatedness_philosophy.md — the ratification memo
  2. docs/PHILOSOPHY.md — one-line cross-reference at the end of the trade-off is real paragraph in § Determinism is the property
  3. CHANGELOG.md — Unreleased entry above the v3.0-scope-cut row

Closes #605.

Why this disposition

PHILOSOPHY.md § Determinism is the property already commits to "no embeddings, no learned re-rankers, no LLM in the retrieval path […] there is no 'mostly deterministic' — either it holds end-to-end or it does not." Options 2 (admit a fenced embedding lane) and 3 (deterministic primary with embedding fallback) both require partitioning the property per-lane, which the existing PHILOSOPHY wording rules out. Re-opening the boundary requires a PHILOSOPHY.md § Determinism amendment, not a dependency-posture change.

Bench evidence the issue cites (#197 R2 WONTFIX, #422 contradiction WONTFIX, #201 R2 close — three corpora, same boundary) confirms the deterministic ceiling on natural-language paraphrase resolution is real. The ratification: the ceiling is accepted, paraphrase / synonymy resolution lives in the consuming agent, R1 dedup surface (aelf doctor dedup) and the typed-slot value-comparator from #422 stay shipped because they do what determinism can do.

Scope

Docs-only. No module surface added or removed. No dependency change. No test change.

Test plan

  • CI green (typos, pattern-scan, secrets-scan, history-scan, release-docs-check, commit-msg-prefix, pr-title-prefix, pr-body-issue-link, size-check)
  • Reviewer reads docs/v3_relatedness_philosophy.md and confirms the rationale aligns with the existing PHILOSOPHY.md § Determinism commitment they want preserved
  • Reviewer confirms the "What this rules out, explicitly" list captures their intent so future tickets can be closed against it without re-litigation

Summary by Sourcery

Document and ratify the v3.0 philosophy decision that natural-language-relatedness gates remain fully deterministic and live outside aelfrice’s retrieval and ingest path.

Documentation:

  • Add a dedicated v3.0 philosophy memo defining natural-language-relatedness gate scope, rationale, and explicit exclusions and openings for future changes.
  • Cross-reference the new relatedness philosophy memo from the determinism section in PHILOSOPHY.md, tying bench evidence to the deterministic boundary.
  • Update the changelog with an unreleased entry describing the v3.0 relatedness philosophy ratification and its implications for where paraphrase and synonymy handling resides.

@robotrocketscience robotrocketscience added the author-noether Authored by parallel session noether label May 10, 2026
@sourcery-ai

sourcery-ai Bot commented May 10, 2026

Copy link
Copy Markdown

Reviewer's Guide

Docs-only PR that ratifies the v3.0 natural-language-relatedness philosophy (remain fully deterministic, push paraphrase/synonymy to consuming agents), adds a dedicated memo documenting the decision and its exclusions, cross-links it from PHILOSOPHY, and records the decision in the changelog.

Sequence diagram for paraphrase-related dedup handled by consuming agent

sequenceDiagram
    actor User
    participant ConsumingAgent
    participant AelfriceIngest as Aelfrice_Ingest_layer
    participant AelfriceRetrieval as Aelfrice_Retrieval_path

    User->>ConsumingAgent: Submit_new_belief(text)
    ConsumingAgent->>ConsumingAgent: Detect_paraphrase_and_contradictions_with_existing_beliefs(LLM_or_embeddings)
    ConsumingAgent->>AelfriceIngest: Store_belief(structured_record)
    AelfriceIngest->>AelfriceIngest: Apply_R1_dedup(hash_collision_only)
    AelfriceIngest->>AelfriceIngest: Apply_typed_slot_value_comparator(numeric_enum)
    AelfriceIngest-->>ConsumingAgent: Ingest_result(deterministic)

    User->>ConsumingAgent: Ask_question(query_text)
    ConsumingAgent->>AelfriceRetrieval: Retrieve(query_text_or_terms)
    AelfriceRetrieval-->>ConsumingAgent: Deterministic_results(BM25F_posterior_HRR)
    ConsumingAgent->>ConsumingAgent: Apply_synonym_bridging_and_paraphrase_rerank(LLM_or_embeddings)
    ConsumingAgent-->>User: Answer_with_coherent_context
Loading

Flow diagram for gating embedding-based relatedness changes by PHILOSOPHY determinism

flowchart TD
    A["Propose_new_relatedness_feature"] --> B["Does_feature_require_embeddings_or_LLM_similarity_in_retrieval_or_ingest_path?"]

    B -->|No| C["Feature_may_ship_if_deterministic_constraints_are_met"]

    B -->|Yes| D["Is_PHILOSOPHY_Determinism_section_amended_to_allow_nondeterministic_lane?"]

    D -->|No| E["Mark_ticket_WONTFIX_per_v3_relatedness_philosophy"]
    E --> F["Option:_run_lab_side_experiments_in_aelfrice_lab_only"]

    D -->|Yes| G["Implement_feature_with_new_global_determinism_contract"]

    C --> H["Use_R1_dedup_or_typed_slot_value_comparator_if_applicable"]
    F --> I["Use_results_as_evidence_for_future_PHILOSOPHY_amendment_proposals"]
Loading

File-Level Changes

Change Details Files
Add a dedicated v3.0 philosophy memo that fixes the boundary for natural-language-relatedness, paraphrase/synonymy handling, and where related capabilities are expected to live.
  • Introduce docs/v3_relatedness_philosophy.md describing the decision to keep retrieval/ingest deterministic and push paraphrase, contradiction, and semantic relatedness to the consuming agent.
  • Document why embedding-based or LLM-judged similarity lanes violate the determinism property as currently defined in PHILOSOPHY, grounding this in prior bench evidence.
  • Explicitly list what is ruled out (embedding/LLM-based similarity in runtime, embedding fallbacks in retrieval/ingest, future tickets that try to reintroduce them without revising PHILOSOPHY) and what remains open (lab-side experiments, future amendments gated on a PHILOSOPHY change).
  • Clarify which existing deterministic surfaces remain in-scope (R1 hash-based dedup, typed-slot value comparator) and that no module behavior changes in this PR.
docs/v3_relatedness_philosophy.md
Tighten PHILOSOPHY determinism documentation by cross-linking to the new relatedness memo and citing prior bench evidence.
  • Extend the "trade-off is real" paragraph in the Determinism section to reference three bench-gate issues that hit the natural-language-relatedness ceiling and closed at the same boundary.
  • Add an inline pointer to v3_relatedness_philosophy.md as the canonical v3.0 ratification that paraphrase/synonymy gates live in the consuming agent, not in aelfrice.
docs/PHILOSOPHY.md
Record the v3.0 relatedness philosophy ratification in the changelog with enough detail for future readers to understand the boundary and how to reopen it.
  • Add a new Unreleased CHANGELOG entry describing the decision to keep natural-language-relatedness gates deterministic, summarizing the new memo, and referencing the supporting issues and existing PHILOSOPHY wording.
  • Clarify that reopening this boundary requires amending PHILOSOPHY’s Determinism section rather than just adding a dependency or feature flag.
CHANGELOG.md

Assessment against linked issues

Issue Objective Addressed Explanation
#605 Ratify and document a v3.0 PHILOSOPHY decision on natural-language-relatedness gates by explicitly choosing among Options 1–3 and recording the rationale in project documentation.
#605 Connect the new relatedness decision to the existing determinism philosophy by updating core PHILOSOPHY documentation so the determinism section references the v3.0 relatedness decision.

Possibly linked issues


Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it. You can also reply to a
    review comment with @sourcery-ai issue to create an issue from it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time. You can also comment
    @sourcery-ai title on the pull request to (re-)generate the title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time exactly where you
    want it. You can also comment @sourcery-ai summary on the pull request to
    (re-)generate the summary at any time.
  • Generate reviewer's guide: Comment @sourcery-ai guide on the pull
    request to (re-)generate the reviewer's guide at any time.
  • Resolve all Sourcery comments: Comment @sourcery-ai resolve on the
    pull request to resolve all Sourcery comments. Useful if you've already
    addressed all the comments and don't want to see them anymore.
  • Dismiss all Sourcery reviews: Comment @sourcery-ai dismiss on the pull
    request to dismiss all existing Sourcery reviews. Especially useful if you
    want to start fresh with a new review - don't forget to comment
    @sourcery-ai review to trigger a new review!

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

@coderabbitai

coderabbitai Bot commented May 10, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@robotrocketscience has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 11 minutes and 34 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c8cb9ff8-3850-407e-84c5-fd87674edd69

📥 Commits

Reviewing files that changed from the base of the PR and between 536e8c9 and 158d983.

⛔ Files ignored due to path filters (1)
  • CHANGELOG.md is excluded by !**/CHANGELOG.md
📒 Files selected for processing (2)
  • docs/PHILOSOPHY.md
  • docs/v3_relatedness_philosophy.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/issue-605-philosophy-relatedness

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@robotrocketscience robotrocketscience added the attn:review Needs review (PR open, awaiting reviewer) label May 10, 2026
@github-actions github-actions Bot added the docs label May 10, 2026

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey - I've found 1 issue, and left some high level feedback:

  • The new cross-reference sentence added to PHILOSOPHY.md is quite long and dense; consider splitting it into two sentences or moving the bench details into the dedicated memo to keep that core paragraph easily scannable.
  • The new CHANGELOG.md entry for the v3.0 PHILOSOPHY ratification is very verbose for a changelog bullet; consider shortening it to the core decision and pushing the detailed rationale and evidence into v3_relatedness_philosophy.md (which you can link from the entry).
Prompt for AI Agents
Please address the comments from this code review:

## Overall Comments
- The new cross-reference sentence added to `PHILOSOPHY.md` is quite long and dense; consider splitting it into two sentences or moving the bench details into the dedicated memo to keep that core paragraph easily scannable.
- The new `CHANGELOG.md` entry for the v3.0 PHILOSOPHY ratification is very verbose for a changelog bullet; consider shortening it to the core decision and pushing the detailed rationale and evidence into `v3_relatedness_philosophy.md` (which you can link from the entry).

## Individual Comments

### Comment 1
<location path="docs/v3_relatedness_philosophy.md" line_range="21" />
<code_context>
+The bench evidence the issue cites confirms the ceiling is real, not the conclusion that the ceiling should be paid for inside aelfrice:
</code_context>
<issue_to_address>
**suggestion (typo):** Sentence structure around "confirms the ceiling is real, not the conclusion" is a bit awkward.

You might rephrase for clarity, for example: "The bench evidence the issue cites confirms the ceiling is real; it does not show that the ceiling should be paid for inside aelfrice."

```suggestion
The bench evidence the issue cites confirms the ceiling is real; it does not show that the ceiling should be paid for inside aelfrice:
```
</issue_to_address>

Sourcery is free for open source - if you like our reviews please consider sharing them ✨
Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.


Option 2 (admit a sentence-embedding lane, fenced) and Option 3 (deterministic primary, embedding fallback) both violate the compositionality clause: any embedding lane in the retrieval path — even fenced behind a flag, even consulted only on miss — is a non-deterministic step in the retrieval path. The property cannot be partitioned per-lane without rewriting `PHILOSOPHY.md` § *Determinism* itself, and the costs cited in that section (debugging boundedness, provenance composition, counterfactual evaluation, audit comprehensible to a non-technical reviewer) are downstream of the global property holding.

The bench evidence the issue cites confirms the ceiling is real, not the conclusion that the ceiling should be paid for inside aelfrice:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

suggestion (typo): Sentence structure around "confirms the ceiling is real, not the conclusion" is a bit awkward.

You might rephrase for clarity, for example: "The bench evidence the issue cites confirms the ceiling is real; it does not show that the ceiling should be paid for inside aelfrice."

Suggested change
The bench evidence the issue cites confirms the ceiling is real, not the conclusion that the ceiling should be paid for inside aelfrice:
The bench evidence the issue cites confirms the ceiling is real; it does not show that the ceiling should be paid for inside aelfrice:

@github-actions github-actions Bot added the attn:merge-conflict PR branch needs rebase label May 10, 2026
@github-actions

Copy link
Copy Markdown

This PR is now behind main. Rebase locally so your commit signatures stay intact:

git fetch origin && git checkout 'docs/issue-605-philosophy-relatedness' && git rebase origin/main
# resolve conflicts if any, then
git push --force-with-lease

Auto-rebase was removed because the bot has no signing key; rebasing as the bot strips author signatures and the required_signatures rule on main then blocks the merge. See #341.

…istic (#605)

Adds docs/v3_relatedness_philosophy.md ratifying Option 1 from the issue
(stay deterministic, narrow the surface) over Option 2 (admit a fenced
embedding lane) and Option 3 (deterministic primary with embedding
fallback).

PHILOSOPHY.md § 'Determinism is the property' already commits to no
embeddings / no learned re-rankers in the retrieval path and is explicit
that the property is end-to-end ('there is no mostly deterministic'),
which rules out the per-lane partition Options 2 and 3 require. Bench
evidence (#197 R2, #422, #201 R2 — three corpora, same boundary)
confirms the deterministic ceiling on natural-language paraphrase is
real; the ratification is that the ceiling is accepted, not paid down
inside aelfrice. Paraphrase / synonymy resolution lives in the consuming
agent. R1 dedup surface and the typed-slot value-comparator stay shipped
because they do what determinism can do.
…m section (#605)

Adds a one-line pointer at the end of the 'trade-off is real' paragraph
in PHILOSOPHY.md § Determinism is the property, naming the three bench
closures (#197, #422, #201) and linking the v3 ratification memo. The
memo itself says 'no doc surgery needed beyond a one-line cross-
reference' — this is that line.
Inserts the entry above the existing v3.0-scope-cut row so the v3.0
PHILOSOPHY ratifications cluster together in Unreleased.
@robotrocketscience
robotrocketscience force-pushed the docs/issue-605-philosophy-relatedness branch from a331f63 to 158d983 Compare May 10, 2026 23:52
@robotrocketscience robotrocketscience added attn:review Needs review (PR open, awaiting reviewer) and removed attn:merge-conflict PR branch needs rebase attn:review Needs review (PR open, awaiting reviewer) labels May 10, 2026
@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:Maxwell:2026-05-11T00:03:24Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[claim:review:leibniz:2026-05-11T00:03:41Z]

@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:leibniz:2026-05-11T00:03:45Z]

@robotrocketscience
robotrocketscience merged commit 158d983 into main May 11, 2026
19 of 20 checks passed
@robotrocketscience
robotrocketscience deleted the docs/issue-605-philosophy-relatedness branch May 11, 2026 00:04
@robotrocketscience

Copy link
Copy Markdown
Owner Author

[release:review:Maxwell:2026-05-11T00:04:59Z]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

attn:review Needs review (PR open, awaiting reviewer) author-noether Authored by parallel session noether docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

v3.0 PHILOSOPHY: natural-language-relatedness gate — deterministic vs embedding

1 participant