Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
84 commits
Select commit Hold shift + click to select a range
981dbbc
docs(identity): freeze the lineage decision policy, rules first
claude Aug 19, 2026
891a747
docs(identity): correct four things the policy claimed but did not hold
claude Aug 20, 2026
9e2862c
docs(identity): give the outcome contract a word for evidence that co…
claude Aug 20, 2026
250aaa4
docs(identity): say what the subset sweep proves, and what it does not
claude Aug 20, 2026
cba0314
docs(identity): remove stale pre-falsification claims from decision p…
claude Aug 20, 2026
a05edeb
test(identity): move the arbitration proofs out of the terminal
claude Aug 20, 2026
bb256a3
test(identity): make the decision-policy proof checks actually bite
claude Aug 20, 2026
ab992fb
fix(identity): state the arbitration the theorem actually proves
claude Aug 20, 2026
c41f960
fix(identity): license the frozen corpus, and unbind the theorem from k
claude Aug 20, 2026
2f97dce
test(identity): preregister the decision-policy fixture matrix
claude Aug 20, 2026
b164f04
fix(identity): stage the decision procedure, and name the right shortage
claude Aug 21, 2026
865fb61
docs(identity): align prose with staged decision semantics
claude Aug 21, 2026
a22cabe
docs(identity): explain the decision policy, and gate the doc on the …
claude Aug 21, 2026
e888b2b
fix(identity): close eight checks that passed while their claim was f…
claude Aug 21, 2026
340c6ad
fix(identity): separate the rejecting stages, and bind refusals to th…
claude Aug 21, 2026
0f4236b
fix(identity): finish the stage split the previous commit left half-done
claude Aug 21, 2026
218136d
fix(identity): one authority for the refusal reason, and fail closed …
claude Aug 21, 2026
01b0998
fix(identity): read the mandate from the contract, and check the clai…
claude Aug 21, 2026
aa31810
test(identity): pin the refusal the contract froze and nothing exercised
claude Aug 21, 2026
41ab38b
fix(identity): bind all three declarations of a refusal reason to one…
claude Aug 21, 2026
480ad1c
fix(identity): match the senior anchor shape, and finish the recall f…
claude Aug 21, 2026
9a9baad
fix(identity): make the duplicate-key scan locate, and cover the fixt…
claude Aug 21, 2026
5340f85
fix(identity): reject duplicate ids in licensed_by
claude Aug 21, 2026
49a981b
fix(identity): a refusal must name the occurrence it is about
claude Aug 21, 2026
57ec08f
fix(identity): report the real path to a duplicated key
claude Aug 21, 2026
5fb9566
test(identity): pin the two refusal reasons nothing exercised
claude Aug 21, 2026
d41dd10
test(identity): pin every rule, not every outcome
claude Aug 21, 2026
0b37686
fix(identity): bind four declarations the contract made and nothing read
claude Aug 21, 2026
236d9e6
fix(identity): a record relates a pair, or it relates nothing
claude Aug 21, 2026
791967e
fix(identity): one record must carry the whole group
claude Aug 21, 2026
0ad1a95
fix(identity): a refused conflict is still carried by its fixture
claude Aug 21, 2026
efd30e6
fix(identity): a type filter is not a namespace
claude Aug 21, 2026
1f45326
fix(identity): four checks that could not see an absence
claude Aug 21, 2026
4ae83f5
fix(identity): validate the declaration, not the set built from it
claude Aug 21, 2026
b9759ad
fix(identity): total is not the same as meaningful
claude Aug 21, 2026
8c58311
fix(identity): a partner profile must face the repeated side
claude Aug 21, 2026
29c0eab
fix(identity): declared where the shape needs it, and nowhere else
claude Aug 21, 2026
f0b5381
fix(identity): a demand for a record must name the record
claude Aug 21, 2026
6be9d9c
fix(identity): the twins are one function now
claude Aug 21, 2026
edc8191
fix(identity): the other pair of twins
claude Aug 21, 2026
20ba790
fix(identity): the same claim one level in
claude Aug 21, 2026
1dc7d8e
fix(identity): revert a widening both reviewers refused
claude Aug 21, 2026
efbbb42
fix(identity): the floor is one question, asked in four places
claude Aug 21, 2026
8d36e57
test(identity): two record fields nothing asked about repeats
claude Aug 21, 2026
4ab40b3
test(identity): the last list the predicate did not reach
claude Aug 21, 2026
a9827f9
fix(identity): a suite that dies reports nothing; and the fifth floor…
claude Aug 21, 2026
f3adcd8
fix(identity): candidates are rivals, not endpoints
claude Aug 21, 2026
29c1235
fix(identity): membership standing in for the correct member, in my o…
claude Aug 21, 2026
7fa0d12
fix(identity): the guard has to survive what it was added to doubt
claude Aug 21, 2026
1eee858
test(identity): prose that restates a declared number
claude Aug 21, 2026
4056e51
fix(identity): checking part of a claim, twice over
claude Aug 21, 2026
a2f435f
docs(contract): a claim about the suite that the suite does not keep
claude Aug 21, 2026
d5b2cee
test(identity): a container checked only through its contents
claude Aug 21, 2026
20c9761
test(identity): a senior claim restated instead of read
claude Aug 21, 2026
cc11aee
test(identity): a record that binds a mapping, holding one end of it
claude Aug 21, 2026
55ff9d5
test(identity): the adjacent suite, still holding the literal
claude Aug 21, 2026
66cb15c
test(identity): records required in code and declared nowhere
claude Aug 21, 2026
c0812ca
test(identity): three spellings of one guard, and a gate instead of a…
claude Aug 21, 2026
212a37f
test(identity): a record cited as a defeat, about somebody else
claude Aug 21, 2026
848515e
test(identity): what runs before the gate, and a contract that never …
claude Aug 21, 2026
1b09ffc
contract(lineage): a kind that survives a move, and a stage before th…
claude Aug 22, 2026
7206ed7
contract(lineage): prohibitions as tokens, and limitations the produc…
claude Aug 22, 2026
b0d7f55
contract(lineage): every off-path successor needs a record, and how r…
claude Aug 22, 2026
688ef36
test(lineage): scan all three corpora for duplicate keys, and ask the…
claude Aug 22, 2026
193ceae
contract(lineage): pin every coverage value to a witness it must actu…
claude Aug 22, 2026
c47c4d2
contract(lineage): the exclusion's promise becomes a condition
claude Aug 22, 2026
f836d6f
contract(lineage): name the rescuer per partner, and stop crashing on…
claude Aug 22, 2026
4f4f358
contract(lineage): one rescuer cannot catch two partners, and the bou…
claude Aug 22, 2026
c221c95
contract(lineage): the cross-reference gate reads all prose, and one …
claude Aug 22, 2026
9cf5559
fix(lineage): restore a sentence my own census deleted, and stop it h…
claude Aug 22, 2026
f6f87c5
test(lineage): identify prose by the field's name, never by what is l…
claude Aug 22, 2026
738b8f1
test(lineage): a prose field has to say something
claude Aug 22, 2026
531f142
contract(lineage): rank the rejecting stages, unbind the b-side, and …
claude Aug 22, 2026
08d63c6
test(lineage): bind the selector's declared reasons to the branches t…
claude Aug 22, 2026
c6cfd63
docs+test(lineage): the rule table must match the rule, and observed_…
claude Aug 22, 2026
fbcf8a2
audit(lineage): bounded semantic reader audit of the decision contrac…
claude Aug 22, 2026
5974de1
test(lineage): bind every entry_shape key, and compare the doc's card…
claude Aug 22, 2026
212dd27
test(lineage): a whole-entry `entry_shape` is a shape, and the corpus…
claude Aug 22, 2026
e1d1523
policy(lineage): a continuation must show the analyser said the same …
claude Aug 22, 2026
93bb253
contract(lineage): what a pair property compares belongs to the contr…
claude Aug 22, 2026
047be49
contract(lineage): pin each pair property by vectors, and make a lice…
claude Aug 25, 2026
992c32c
test(lineage): every equality kind needs a case that makes it fail
claude Aug 25, 2026
3f3bf7f
contract(lineage): a pair property that is not an equality still need…
claude Aug 25, 2026
6dcc02f
test(lineage): a witness that is declared and a witness that runs are…
claude Aug 25, 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 .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ jobs:
PYTHONPATH=. python3 identity/tests/test_pattern.py
PYTHONPATH=. python3 identity/tests/test_occurrence.py
PYTHONPATH=. python3 identity/tests/test_lineage_contract.py
PYTHONUTF8=1 PYTHONPATH=. python3 identity/tests/test_lineage_decision.py
PYTHONPATH=. python3 aggregate/tests/test_normalize.py
PYTHONPATH=. python3 report/tests/test_sarif.py
PYTHONPATH=. python3 report/tests/test_baseline.py
Expand All @@ -60,6 +61,7 @@ jobs:
PYTHONPATH=. python3 -O identity/tests/test_pattern.py
PYTHONPATH=. python3 -O identity/tests/test_occurrence.py
PYTHONPATH=. python3 -O identity/tests/test_lineage_contract.py
PYTHONUTF8=1 PYTHONPATH=. python3 -O identity/tests/test_lineage_decision.py
PYTHONPATH=. python3 -O aggregate/tests/test_normalize.py
PYTHONPATH=. python3 -O report/tests/test_sarif.py
PYTHONPATH=. python3 -O report/tests/test_baseline.py
Expand Down
1,532 changes: 1,532 additions & 0 deletions contracts/finding-lineage-decision-v1.json

Large diffs are not rendered by default.

Loading
Loading