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
9 changes: 9 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
repos:
- repo: local
hooks:
- id: deferred-validation
name: deferred validation catalog
entry: python shared_scripts/deferred_validation.py --repo-root .
language: python
pass_filenames: false
always_run: true
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,11 @@ provenance and existing-source research work. Issues #8 and #18 remain open for
those executable slices. Plans provide no measurements, permission or consent;
private data continues to live only in the governed private authority.

After installing `.[dev]`, run
`python -m pre_commit run deferred-validation --all-files` to validate the owner
catalog. The existing Python suite exercises this same command and verifies
shared-file hashes. Passing software checks supply no measurement or permission.

## Authorized setup

```powershell
Expand Down
21 changes: 17 additions & 4 deletions docs/development/DEVELOPMENT_LOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,22 @@ reachable from any live state and `abandoned` from `parked`.

## Active

### DL-#63 - Deferred Catalog Enforcement

- **State:** in_review
- **Owner:** codex
- **Issue:** #63; full rollout Repository_Management#1687
- **Branch:** `chore/63-deferred-catalog-guard`
- **PR:** #64
- **Paths:** `shared_scripts/`, `.pre-commit-config.yaml`, `pyproject.toml`, `tests/test_deferred_catalog_hook.py`, `docs/development/`, `AGENTS.md`, `CLAUDE.md`, `README.md`
- **Started:** 2026-09-23
- **Last verified:** SELF (five RED absent-hook/receipt failures; 54 GREEN tests including configured command and exact bundle hashes; actual hook, Ruff lint/format and new-test strict mypy pass; unchanged corpus.py:193 full-mypy limitation retained)
- **Summary:** Enforces the two published catalogs without changing original scope, source snapshots, private data pins or rights/consent boundaries.
- **Next step:** Complete repository checks, publish and verify exact default-branch adoption.

### DL-#59 · Deferred Validation Project Projection

- **State:** in_review
- **State:** shipped
- **Owner:** codex
- **Issue:** #59; parents Repository_Management#1687 and Runner_Dashboard#1248
- **Branch:** `docs/deferred-project-projection`
Expand All @@ -29,7 +42,7 @@ reachable from any live state and `abandoned` from `parked`.
- **Started:** 2026-09-23
- **Last verified:** 2026-09-23 (265bcc7 plus docs; strict catalog and both parsers pass, two parked plans/six decisions; 49 tests and Ruff pass; unchanged local corpus.py:193 typing limitation retained)
- **Summary:** Exposes both published external dependencies and pending decisions without inventing evidence or authority. Existing client, rights and data-custody contracts are preserved.
- **Next step:** Protected publication, default-branch verification, then actual deployed Projects/staff adoption under the fleet parents.
- **Next step:** #60 merged as 16001c7; both parked owner plans are verified in the running dashboard. Enforcement continues in DL-#63.

### DL-#8 - Deferred Paired Data Dependency

Expand All @@ -42,7 +55,7 @@ reachable from any live state and `abandoned` from `parked`.
- **Started:** 2026-09-22
- **Last verified:** 2026-09-22 (base `93d6435` plus planning changes; 49 tests, catalog and Ruff pass; local mypy has one unchanged corpus.py:193 unused-ignore error)
- **Summary:** External obligations are deferred for Board consideration; the mixed source issue stays active for software and source research.
- **Next step:** Publish the planning PR and link the scope split on #8.
- **Next step:** Owner plan is published; executable #8 work stays active and unavailable physical collection remains deferred.

### DL-#18 - Deferred External Rights Decisions

Expand All @@ -55,7 +68,7 @@ reachable from any live state and `abandoned` from `parked`.
- **Started:** 2026-09-22
- **Last verified:** 2026-09-22 (base `93d6435` plus planning changes; 49 tests, catalog and Ruff pass; local mypy has one unchanged corpus.py:193 unused-ignore error)
- **Summary:** External obligations are deferred for Board consideration; the mixed source issue stays active for software and source research.
- **Next step:** Publish the planning PR and link the scope split on #18.
- **Next step:** Owner plan is published; executable #18 source research stays active and rights-holder decisions remain deferred.


### DL-0001 · Chore Bump Private Lock 1672D2D
Expand Down
30 changes: 30 additions & 0 deletions docs/development/HANDOFF.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,33 @@
# Deferred Catalog Enforcement - #63

- Worktree: `C:/Users/diete/Repositories/Worktrees/Launch-Monitor-Data-deferred-guard`.
Branch `chore/63-deferred-catalog-guard`; base `308a1ed`; commit `SELF`; PR [#64](https://github.com/D-sorganization/Launch-Monitor-Data/pull/64), protected auto-merge armed.
- Governing issue #63; full fleet rollout Repository_Management#1687 remains open.
- Exact three-file validator bundle from central `0a104101`, pinned SHA-256 receipt,
always-run local hook and five configured-command/digest tests in the existing
Python CI suite. Invalid activation, missing checker and competing catalog fail.
Both original plans, source snapshots and the private-data lock stay unchanged.
- Synchronizes only the approved deferred-validation managed block from central
`a59cb194`; v1 fields remain distinct from new-adopter fields. Developer tooling
includes pre-commit, PyYAML and its typing stubs. No external data is downloaded.
- TDD: five missing-hook/receipt RED failures, then all 54 Python tests pass.
Root Ruff lint/format (20 files), the actual pre-commit hook and strict typing
of the new consumer test pass. Full local mypy retains the previously documented
unused-ignore failure at unchanged corpus.py:193 (17 files checked). No ignore
or typing gate was relaxed; hosted Python 3.12 qualification remains required.
All original planning bytes, private-data lock and three bundle hashes match.
- Commands: `python -m pytest -q`, `python -m ruff check .`,
`python -m ruff format --check .`, `python -m mypy`,
`python -m pre_commit run deferred-validation --all-files`.
- Previous view #60 merged at `16001c7`; both parked owner plans are visible in
the deployed Projects API/UI. Source issues #8/#18 retain executable software
and existing-source research; resource/rights decisions stay deferred.
- Next: publish through protected CI, and verify default-branch
bundle/hook/rule bytes. No rights-holder contact, consent, calibration or
physical/perceptual validation is authorized or supplied by this deployment.

---

# Deferred Validation Project Projection — #59

- Worktree: `C:/Users/diete/Repositories/Worktrees/Launch-Monitor-Data-deferred-project`.
Expand Down
9 changes: 9 additions & 0 deletions docs/development/deferred-catalog-bundle.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"source_repository": "D-sorganization/Repository_Management",
"source_commit": "0a1041018e737173e49ff97ed4b82283e3cb672f",
"files": {
"shared_scripts/deferred_validation.py": "152ab473b23daf5b3a32618563ef0cddcdb957d71580cf09aeeb03c17f9d5ee5",
"shared_scripts/deferred_planning.py": "521f1a98fecf36990f1f31696144163c85d023be34a465dfbde9aacf81f33f94",
"shared_scripts/handoff_validator.py": "eac9039b72c2a2d7f5708b0cb098f84d2a1e78568ed1ec6d17f6756ca6274cd5"
}
}
4 changes: 3 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ dev = [
"mypy>=1.11",
"pandas-stubs>=2.0",
"pytest>=8.0",
"ruff>=0.6",
"pre-commit>=3.0",
"PyYAML>=6.0",
"types-PyYAML>=6.0", "ruff>=0.6",
]

[project.scripts]
Expand Down
Loading
Loading