Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
37 changes: 37 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -606,3 +606,40 @@ jobs:
echo "::error::any dependency, run 'uv lock' and commit the result in the SAME commit."
echo "::error::A stale lock means the committed pins are not what this project resolves."
exit 1

prior-art:
name: Prior art evidence corpus
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
fetch-depth: 0

- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
with:
python-version: "3.11"

- name: Validate canonical prior art records
run: python -m tools.prior_art validate

- name: Verify generated prior art reports
run: python -m tools.prior_art render --check

- name: Check prior work declarations in changed experiments
shell: bash
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
exit 0
fi
if [ "${{ github.event_name }}" = "pull_request" ]; then
base="${{ github.event.pull_request.base.sha }}"
else
base="${{ github.event.before }}"
fi
if [ -z "$base" ] || [[ "$base" =~ ^0+$ ]]; then
exit 0
fi
mapfile -t files < <(git diff --name-only --diff-filter=AM "$base" "${{ github.sha }}" -- 'benchmarks/**/*.py' 'results/**/*.py')
if ((${#files[@]})); then
python -m tools.prior_art check-experiments "${files[@]}"
fi
6 changes: 6 additions & 0 deletions benchmarks/EXPERIMENT-CONVENTION.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ or, when nothing was found:
Prior work: none found (docs_search "<query>", source_type=memory)
```

For changed or newly added modules, run the repository check with the affected paths:

```text
python -m tools.prior_art check-experiments benchmarks/my_probe.py
```

## Why this exists rather than a rule someone remembers

On 2026-07-28 an abstention investigation was run that had already been run on 2026-07-24, and
Expand Down
21 changes: 21 additions & 0 deletions docs/PRIOR_ART.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# Prior art, and where this comes from

## Structured prior art evidence system

This page remains the public narrative, while the canonical comparison data now lives in the
[RE-call prior art evidence system](prior_art/README.md). The structured corpus records sources,
systems, capability definitions, atomic claims, evidence locations, and human review decisions.

The generated [capability matrix](prior_art/generated_matrix.md) and [gap report](prior_art/generated_gap_report.md)
are reproducible from the checked in JSON and JSON Lines records. They preserve `verified`,
`partial`, `not_evidenced`, `contradicted`, and `unknown` as separate states. Missing evidence is
not treated as proof that a system lacks a capability.

The current RE-call research hypothesis combines evidence backed claims, explicit validity and
supersession, reversible provenance lineage, authority and scope enforcement, deletion propagation
through derived artifacts, support based abstention, and action outcome feedback. The matrix may
identify this as an unverified research gap, but it does not automatically claim that RE-call is
first, unique, or unprecedented.

The collection scope covers agent memory systems, agent runtimes, benchmarks, privacy, governance,
and continual learning. The search cutoff and evidence rules are recorded in
[report_config.json](prior_art/report_config.json).

## Prior art — and where this genuinely differs

Agent memory is a crowded field. Everything below is Apache-2.0 and further along than this
Expand Down
43 changes: 43 additions & 0 deletions docs/prior_art/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# RE-call prior art evidence system

This directory is the canonical, reviewable evidence corpus behind the public prior art matrix.

The corpus separates five things:

1. Sources, which are external papers, repositories, documentation, benchmarks, protocols, or standards.
2. Systems, which are the products or research systems being compared.
3. Capabilities, which are stable, defined matrix dimensions.
4. Claims, which are atomic statements about one system and one capability.
5. Reviews, which record the human decision that allows a claim into the generated report.

The accepted capability values are `verified`, `partial`, `not_evidenced`, `contradicted`, and
`unknown`. `not_evidenced` means that reviewed sources did not establish a capability. `unknown`
means that the investigation is incomplete. Neither value proves that a system lacks a capability.

## Workflow

Run validation and rendering from the repository root:

```text
python -m tools.prior_art validate
python -m tools.prior_art render
python -m tools.prior_art render --check
python -m tools.prior_art check-experiments benchmarks/my_probe.py
python -m tools.prior_art check-links
```

The link check is intentionally manual because external availability is unstable. It does not
rewrite source records.

## Evidence policy

Secondary sources may discover candidates, but accepted `verified` claims require primary evidence.
Each accepted claim has a source, an evidence locator, a human review record, and a short evidence
note. The renderer never creates a claim from silence and never emits an automatic claim of novelty.

## Generated reports

* [Capability matrix](generated_matrix.md)
* [Gap report](generated_gap_report.md)
* [Machine readable summary](generated_summary.json)
* [Public prior art position](../PRIOR_ART.md)
Loading