Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
55 commits
Select commit Hold shift + click to select a range
8468ece
chore(pipeline): launch-brief artifacts
claude Jun 25, 2026
babfafd
Add bug catalog for ReviewManager scheduling bug
Jun 25, 2026
b15bcde
Add test for ordering bug B1
Jun 25, 2026
8de67de
test(flashcore-f170-tests): tests/test_review_manager_integration.py
claude Jun 25, 2026
4171957
docs(aiv): verification packet for change 'flashcore-f170-tests'
claude Jun 25, 2026
a7fbe84
docs(aiv): complete design-tests packet evidence classes [A,C,D,E,F] …
claude Jun 25, 2026
3699ca9
Add bug catalog for ReviewManager sorting bug
Jun 25, 2026
c503023
Add unit test for ReviewManager ordering bug
Jun 25, 2026
e6d9768
docs(aiv): verification packet for change 'flashcore-f170-tests'
Jun 25, 2026
897cbeb
test(flashcore-f170-tests): .github/aiv-claims/
claude Jun 25, 2026
32fce97
docs(aiv): verification packet for change 'flashcore-f170-tests'
claude Jun 25, 2026
8d22086
docs(aiv): complete design-tests packet evidence classes [A,C,D,E,F] …
claude Jun 25, 2026
da38330
feat(flashcore-f170-impl): flashcore/review_manager.py
claude Jun 25, 2026
4efc7b2
docs(aiv): verification packet for change 'flashcore-f170-impl'
claude Jun 25, 2026
ae6a8ee
fix(pipeline): restore public symbols dropped by a whole-file rewrite…
claude Jun 25, 2026
8fe2260
fix: preserve scheduler ordering in review queue
Jun 25, 2026
09d5e61
fix: add ReviewManager alias for backwards compatibility
Jun 25, 2026
569a462
docs(aiv): verification packet for change 'flashcore-f170-impl'
claude Jun 25, 2026
b20e899
fix(pipeline): restore public symbols dropped by a whole-file rewrite…
claude Jun 25, 2026
1d25c22
fix: correct ordering of due cards in ReviewSessionManager
Jun 25, 2026
2a59bec
fix: add legacy ReviewManager shim and correct ordering
Jun 25, 2026
0633de7
docs(aiv): verification packet for change 'flashcore-f170-impl'
Jun 25, 2026
12242d8
fix(pipeline): restore public symbols dropped by a whole-file rewrite…
claude Jun 25, 2026
0aa4621
fix: restore ReviewManager alias and correct queue ordering
Jun 25, 2026
26cb6b7
docs(aiv): verification packet for change 'flashcore-f170-impl'
Jun 25, 2026
a233a9d
fix(pipeline): restore public symbols dropped by a whole-file rewrite…
claude Jun 25, 2026
0cc7abe
fix: correct review queue ordering
Jun 25, 2026
4287777
fix: preserve DB ordering of due cards in review queue
Jun 26, 2026
b2f8ba5
docs: add bug catalog for review manager ordering fix
Jun 26, 2026
cbefb02
test: add unit test for due date ordering in review queue
Jun 26, 2026
5942a36
test: add integration test for review queue ordering by due date
Jun 26, 2026
46274bd
test: fix integration test for due date ordering
Jun 26, 2026
09e9d0e
docs(aiv): verification packet for change 'flashcore-f170-fix-order'
Jun 26, 2026
a449006
docs(aiv): complete write-code packet evidence classes [A,C,D,E,F] (o…
claude Jun 26, 2026
2452a3d
docs(aiv): complete verification packet for flashcore-f170-impl
Jun 26, 2026
ee0f057
chore(pipeline): prove-it artifacts
claude Jun 26, 2026
a54bbc4
fix(aiv-packets): reformat adopt packets to AIV Verification Packet v…
claude Jun 26, 2026
e1bb80c
docs(aiv): adoption packet for operator commit a233a9d (flashcore-f170)
claude Jun 26, 2026
5518e15
docs(aiv): adoption packet for operator commit 0aa4621 (flashcore-f170)
claude Jun 26, 2026
5100059
docs(aiv): adoption packet for operator commit 12242d8 (flashcore-f170)
claude Jun 26, 2026
a73ca01
docs(aiv): adoption packet for operator commit 2a59bec (flashcore-f170)
claude Jun 26, 2026
746414c
docs(aiv): adoption packet for operator commit 1d25c22 (flashcore-f170)
claude Jun 26, 2026
a6dcac2
docs(aiv): adoption packet for operator commit b20e899 (flashcore-f170)
claude Jun 26, 2026
4962254
docs(aiv): adoption packet for operator commit 09d5e61 (flashcore-f170)
claude Jun 26, 2026
7e437e5
docs(aiv): adoption packet for operator commit ae6a8ee (flashcore-f170)
claude Jun 26, 2026
0646306
docs(aiv): adoption packet for operator commit c503023 (flashcore-f170)
claude Jun 26, 2026
438931c
docs(aiv): adoption packet for operator commit 3699ca9 (flashcore-f170)
claude Jun 26, 2026
fc7811a
docs(aiv): adoption packet for operator commit 8de67de (flashcore-f170)
claude Jun 26, 2026
fc4e6c4
docs(aiv): adoption packet for operator commit b15bcde (flashcore-f170)
claude Jun 26, 2026
eff3d27
docs(aiv): adoption packet for operator commit babfafd (flashcore-f170)
claude Jun 26, 2026
b8d962d
docs(aiv): adoption packet for operator commit 8468ece (flashcore-f170)
claude Jun 26, 2026
b2449c7
docs(aiv): repair broken provenance SHA refs in 3 evidence files
claude Jun 26, 2026
2e2f5df
test(review-manager): set conflicting modified_at so oracle catches s…
claude Jun 26, 2026
b397ec9
docs(aiv): verification packet for change 'flashcore-f170-crv1-test-o…
claude Jun 26, 2026
87512d9
docs(aiv): repair packet flashcore-f170-crv1-test-oracle — add Class …
claude Jun 26, 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
25 changes: 25 additions & 0 deletions .github/aiv-claims/REVIEW-MANAGER-ORDERING-TEST-CLAIM.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# AIV Claim

## Claim

The test `test_review_manager_ordering_by_due_date` will fail when the buggy sorting by `modified_at` is present, confirming the bug.

## Evidence Classes

### Class A
N/A — test not yet executed.

### Class B
N/A — no external references.

### Class C
The bug is present in current code: `self.review_queue = sorted(due_cards, key=lambda c: c.modified_at)` sorts incorrectly, which will cause the test to fail.
Comment thread
coderabbitai[bot] marked this conversation as resolved.

### Class D
N/A — static analysis not performed yet.

### Class E
https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180

### Class F
N/A — provenance claim not required.
73 changes: 73 additions & 0 deletions .github/aiv-evidence/EVIDENCE_.GITHUB_AIV_CLAIMS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# AIV Evidence File (v1.0)

**File:** `.github/aiv-claims`
**Commit:** `e6d9768`
**Generated:** 2026-06-25T21:43:14Z
**Protocol:** AIV v2.0 + Addendum 2.7 (Zero-Touch Mandate)

---

## Classification (required)

```yaml
classification:
risk_tier: R1
sod_mode: S0
critical_surfaces: []
blast_radius: ".github/aiv-claims"
classification_rationale: "R1"
classified_by: "Claude"
classified_at: "2026-06-25T21:43:14Z"
```

## Claim(s)

1. RED test pins the finding's defect against the cited baseline
2. No existing tests were modified or deleted during this change.

---

## Evidence

### Class E (Intent Alignment)

- **Link:** [https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180](https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180)
- **Requirements Verified:** design-tests: a failing test that names the finding's defect

### Class B (Referential Evidence)

**Scope Inventory** (SHA: [`e6d9768`](https://github.com/ImmortalDemonGod/flashcore/tree/e6d9768025b3362bf7ad4bc24f7dbefb8c81942b))

- [`.github/aiv-claims`](https://github.com/ImmortalDemonGod/flashcore/blob/e6d9768025b3362bf7ad4bc24f7dbefb8c81942b/.github/aiv-claims)

### Class A (Execution Evidence)

**WARNING:** No tests found that directly import or reference the changed file.
This file has no claim-specific execution evidence.

### Code Quality (Linting & Types)

- **ruff:** All checks passed
- **mypy:**

## Claim Verification Matrix

| # | Claim | Type | Evidence | Verdict |
|---|-------|------|----------|---------|
| 1 | RED test pins the finding's defect against the cited baselin... | unresolved | No automatic binding available | REVIEW MANUAL REVIEW |
| 2 | No existing tests were modified or deleted during this chang... | structural | Class C not collected | REVIEW MANUAL REVIEW |

**Verdict summary:** 0 verified, 0 unverified, 2 manual review.
---

## Verification Methodology

**Zero-Touch Mandate:** Verifier inspects artifacts only.
Evidence collected by `aiv commit` running: git diff (scope inventory), pytest (no claim-specific tests found).
Ruff/mypy results are in Code Quality (not Class A) because they prove syntax/types, not behavior.

---

## Summary

for the finding
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# AIV Evidence File (v1.0)

**File:** `flashcore/review_manager.py.bug-catalog.md`
**Commit:** `b2f8ba5`
**Generated:** 2026-06-26T00:15:29Z
**Protocol:** AIV v2.0 + Addendum 2.7 (Zero-Touch Mandate)

---

## Classification (required)

```yaml
classification:
risk_tier: R1
sod_mode: S0
critical_surfaces: []
blast_radius: "flashcore/review_manager.py.bug-catalog.md"
classification_rationale: "R2: documentation for bug fix"
classified_by: "Claude"
classified_at: "2026-06-26T00:15:29Z"
```

## Claim(s)

1. Bug catalog documents the B1 and B2 bugs related to review queue ordering and their fix
2. No existing tests were modified or deleted during this change.

---

## Evidence

### Class E (Intent Alignment)

- **Link:** [https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180](https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180)
- **Requirements Verified:** F170: document the bug and fix

### Class B (Referential Evidence)

**Scope Inventory** (SHA: [`b2f8ba5`](https://github.com/ImmortalDemonGod/flashcore/tree/b2f8ba5f10b7b80cabcabb9fc39f3df8a906e584))

- [`flashcore/review_manager.py.bug-catalog.md#L1-L24`](https://github.com/ImmortalDemonGod/flashcore/blob/b2f8ba5f10b7b80cabcabb9fc39f3df8a906e584/flashcore/review_manager.py.bug-catalog.md#L1-L24)

### Class A (Execution Evidence)

**WARNING:** No tests found that directly import or reference the changed file.
This file has no claim-specific execution evidence.

### Code Quality (Linting & Types)

- **ruff:** All checks passed
- **mypy:** Found 1 error in 1 file (errors prevented further checking)

## Claim Verification Matrix

| # | Claim | Type | Evidence | Verdict |
|---|-------|------|----------|---------|
| 1 | Bug catalog documents the B1 and B2 bugs related to review q... | unresolved | No automatic binding available | REVIEW MANUAL REVIEW |
| 2 | No existing tests were modified or deleted during this chang... | structural | Class C not collected | REVIEW MANUAL REVIEW |

**Verdict summary:** 0 verified, 0 unverified, 2 manual review.
---

## Verification Methodology

**Zero-Touch Mandate:** Verifier inspects artifacts only.
Evidence collected by `aiv commit` running: git diff (scope inventory), pytest (no claim-specific tests found).
Ruff/mypy results are in Code Quality (not Class A) because they prove syntax/types, not behavior.

---

## Summary

Bug catalog for review queue ordering issue
81 changes: 62 additions & 19 deletions .github/aiv-evidence/EVIDENCE_FLASHCORE_REVIEW_MANAGER.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# AIV Evidence File (v1.0)

**File:** `flashcore/review_manager.py`
**Commit:** `77e8843`
**Previous:** `599ddc8`
**Generated:** 2026-06-20T00:05:03Z
**Commit:** `0cc7abe`
**Previous:** `0cc7abe`
**Generated:** 2026-06-26T00:14:47Z
**Protocol:** AIV v2.0 + Addendum 2.7 (Zero-Touch Mandate)

---
Expand All @@ -12,18 +12,18 @@

```yaml
classification:
risk_tier: R0
risk_tier: R1
sod_mode: S0
critical_surfaces: []
blast_radius: "flashcore/review_manager.py"
classification_rationale: "R0 — pure whitespace reformat; no logic, types, or behaviour changed"
classification_rationale: "R2: core correctness fix"
classified_by: "Claude"
classified_at: "2026-06-20T00:05:03Z"
classified_at: "2026-06-26T00:14:47Z"
```

## Claim(s)

1. black -l 79 --check flashcore/review_manager.py exits 0 after this commit
1. ReviewManager.initialize_session now respects the database ordering (next_due_date ASC NULLS FIRST, added_at ASC) instead of re-sorting by modified_at
2. No existing tests were modified or deleted during this change.

---
Expand All @@ -32,31 +32,74 @@ classification:

### Class E (Intent Alignment)

- **Link:** [https://github.com/ImmortalDemonGod/flashcore/blob/60d57b289fe078c5422220a8deffe73b3a2dc12e/pyproject.toml](https://github.com/ImmortalDemonGod/flashcore/blob/60d57b289fe078c5422220a8deffe73b3a2dc12e/pyproject.toml)
- **Requirements Verified:** black==25.12.0 line-length-79 formatting constraint pinned in pyproject.toml
- **Link:** [https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180](https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180)
- **Requirements Verified:** F170: fix review queue ordering bug

### Class B (Referential Evidence)

**Scope Inventory** (SHA: [`77e8843`](https://github.com/ImmortalDemonGod/flashcore/tree/77e8843d3ffa8c9e4679ed489c53fa8cbca4c2c0))
**Scope Inventory** (SHA: [`0cc7abe`](https://github.com/ImmortalDemonGod/flashcore/tree/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b))

- [`flashcore/review_manager.py#L237-L239`](https://github.com/ImmortalDemonGod/flashcore/blob/77e8843d3ffa8c9e4679ed489c53fa8cbca4c2c0/flashcore/review_manager.py#L237-L239)
- [`flashcore/review_manager.py#L1`](https://github.com/ImmortalDemonGod/flashcore/blob/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b/flashcore/review_manager.py#L1)
- [`flashcore/review_manager.py#L5`](https://github.com/ImmortalDemonGod/flashcore/blob/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b/flashcore/review_manager.py#L5)
- [`flashcore/review_manager.py#L79`](https://github.com/ImmortalDemonGod/flashcore/blob/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b/flashcore/review_manager.py#L79)
- [`flashcore/review_manager.py#L110`](https://github.com/ImmortalDemonGod/flashcore/blob/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b/flashcore/review_manager.py#L110)
- [`flashcore/review_manager.py#L344`](https://github.com/ImmortalDemonGod/flashcore/blob/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b/flashcore/review_manager.py#L344)
- [`flashcore/review_manager.py#L348`](https://github.com/ImmortalDemonGod/flashcore/blob/0cc7abed944769f50af9e4880aae4d5c4cc1fe8b/flashcore/review_manager.py#L348)

### Class A (Execution Evidence)

- Local checks skipped (--skip-checks).
- **Skip reason:** pure formatting, zero logic change; black reformats only whitespace


**Per-symbol test coverage (AST analysis):**

- **`ReviewSessionManager`** (L1): PASS -- 21 test(s) call `ReviewSessionManager` directly
- `tests/test_session_analytics_gaps.py::test_review_session_manager_now_creates_session_objects`
- `tests/test_session_analytics_gaps.py::test_review_workflows_now_have_session_integration`
- `tests/test_session_analytics_gaps.py::test_missing_session_lifecycle_management`
- `tests/test_session_analytics_gaps.py::test_missing_session_performance_analytics`
- `tests/test_session_analytics_gaps.py::test_missing_real_time_session_tracking`
- `tests/test_review_manager.py::test_init_successful`
- `tests/test_review_manager.py::test_e2e_session_flow`
- `tests/test_review_manager.py::test_initialize_session_with_tags`
- `tests/test_review_manager.py::test_session_analytics_start_failure`
- `tests/test_review_manager.py::test_record_session_analytics_failure`
- **`ReviewSessionManager.initialize_session`** (L5): PASS -- 20 test(s) call `initialize_session` directly
- `tests/test_session_analytics_gaps.py::test_review_session_manager_now_creates_session_objects`
- `tests/test_session_analytics_gaps.py::test_review_workflows_now_have_session_integration`
- `tests/test_session_analytics_gaps.py::test_missing_session_lifecycle_management`
- `tests/test_session_analytics_gaps.py::test_missing_session_performance_analytics`
- `tests/test_session_analytics_gaps.py::test_missing_real_time_session_tracking`
- `tests/test_review_manager.py::test_start_session_populates_queue`
- `tests/test_review_manager.py::test_start_session_clears_existing_queue`
- `tests/test_review_manager.py::test_e2e_session_flow`
- `tests/test_review_manager.py::test_initialize_session_with_tags`
- `tests/test_review_manager.py::test_session_analytics_start_failure`
- **`ReviewManager`** (L79): PASS -- 1 test(s) call `ReviewManager` directly
- `tests/test_review_manager_order.py::test_review_manager_ordering_by_due_date`

**Coverage summary:** 3/3 symbols verified by tests.

### Code Quality (Linting & Types)

- **ruff:** All checks passed
- **mypy:** Success: no issues found in 1 source file

## Claim Verification Matrix

| # | Claim | Type | Evidence | Verdict |
|---|-------|------|----------|---------|
| 1 | ReviewManager.initialize_session now respects the database o... | symbol | 21 test(s) call `ReviewSessionManager.initialize_session`, `ReviewManager` | PASS VERIFIED |
| 2 | No existing tests were modified or deleted during this chang... | structural | Class C not collected | REVIEW MANUAL REVIEW |

**Verdict summary:** 1 verified, 0 unverified, 1 manual review.
---

## Verification Methodology

**R0 (trivial) -- local checks skipped.**
**Reason:** pure formatting, zero logic change; black reformats only whitespace
Only git diff scope inventory was collected. No execution evidence.
**Zero-Touch Mandate:** Verifier inspects artifacts only.
Evidence collected by `aiv commit` running: git diff (scope inventory), AST symbol-to-test binding (3/3 symbols verified).
Ruff/mypy results are in Code Quality (not Class A) because they prove syntax/types, not behavior.

---

## Summary

Wrap long expression at get_session_stats() line 237 to satisfy black line-length-79
Remove erroneous sorted() call that broke spaced-repetition contract
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# AIV Evidence File (v1.0)

**File:** `tests/test_review_manager.bug-catalog.md`
**Commit:** `babfafdf`
**Generated:** 2026-06-25T21:35:42Z
**Protocol:** AIV v2.0 + Addendum 2.7 (Zero-Touch Mandate)

---

## Classification (required)

```yaml
classification:
risk_tier: R1
sod_mode: S0
critical_surfaces: []
blast_radius: "tests/test_review_manager.bug-catalog.md"
classification_rationale: "high"
classified_by: "Claude"
classified_at: "2026-06-25T21:35:42Z"
```

## Claim(s)

1. Bug catalog enumerates ordering bugs
2. No existing tests were modified or deleted during this change.

---

## Evidence

### Class E (Intent Alignment)

- **Link:** [https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180](https://github.com/ImmortalDemonGod/flashcore/blob/fb1ae5a1c1893939f4ff4f82cbd09d4e90f8e965/audit/02-static-audit.md#L180)
- **Requirements Verified:** testing

### Class B (Referential Evidence)

**Scope Inventory** (SHA: [`babfafdf`](https://github.com/ImmortalDemonGod/flashcore/tree/babfafdf04489082df074958cae9c065c8a8dcc5))

- [`tests/test_review_manager.bug-catalog.md#L1-L24`](https://github.com/ImmortalDemonGod/flashcore/blob/babfafdf04489082df074958cae9c065c8a8dcc5/tests/test_review_manager.bug-catalog.md#L1-L24)

### Class A (Execution Evidence)

**WARNING:** No tests found that directly import or reference the changed file.
This file has no claim-specific execution evidence.

### Code Quality (Linting & Types)

- **ruff:** All checks passed
- **mypy:** Found 1 error in 1 file (errors prevented further checking)

## Claim Verification Matrix

| # | Claim | Type | Evidence | Verdict |
|---|-------|------|----------|---------|
| 1 | Bug catalog enumerates ordering bugs | unresolved | No automatic binding available | REVIEW MANUAL REVIEW |
| 2 | No existing tests were modified or deleted during this chang... | structural | Class C not collected | REVIEW MANUAL REVIEW |

**Verdict summary:** 0 verified, 0 unverified, 2 manual review.
---

## Verification Methodology

**Zero-Touch Mandate:** Verifier inspects artifacts only.
Evidence collected by `aiv commit` running: git diff (scope inventory), pytest (no claim-specific tests found).
Ruff/mypy results are in Code Quality (not Class A) because they prove syntax/types, not behavior.

---

## Summary

Bug catalog for ordering bug
Loading
Loading