Skip to content

Re-lay out this repository's store under ns/<namespace>/ (issue 10) - #156

Open
Hafeok wants to merge 2 commits into
claude/great-feynman-zcdsdd-step-02-legacy-historyfrom
claude/great-feynman-zcdsdd-step-10-repository-store
Open

Hafeok wants to merge 2 commits into
claude/great-feynman-zcdsdd-step-02-legacy-historyfrom
claude/great-feynman-zcdsdd-step-10-repository-store

Conversation

@Hafeok

@Hafeok Hafeok commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Closes #153 (PRD §6 issue 10, §3.11; rulings 63 and 97; AC-82 on this repository). Stacked on #155 (issue 2), which it depends on. It is taken before issues 3 to 9 so that every later pull request is green on the ledger verify --export step: this is the commit that makes #154 and #155 green, and the three are meant to merge together.

The move. One commit (10eaf151) moves the files, byte for byte, as §3.11 lists: .decisions/sets/ddd-governance.yml and hafeok.ddd's 164 log files to .decisions/ns/hafeok.ddd/; .decisions/sets/ledger-design.yml and the other 23 to .decisions/ns/hafeok.ledger/. No file holds two namespaces (scanned). No record is written, no move act is filed (ruling 95). Git shows 189 renames and no content change.

The exports. Regenerated with ledger export --format ntriples: both files are byte-identical to main's, as expected since set IRIs stay as they are until issue 18 and nothing an export carries read a path. No IRI was changed.

The run with the capability. ledger verify --export, blame on, is conformant and prints main's output line for line: 284 entries, 93 decisions, the same three awaiting acceptance, the same two notices, the export line. Conformant with blame on means every acceptance's L009 author is as before the move, since the pickaxe follows each file's lineage (issue 2). 43 s on this clone.

The run without the capability. ledger verify --export --no-legacy-layout refuses with exit 2, naming the first flat commit, cfff91d61c69e2d32b89f61b9109c2b1a57b4a1b (Ledger L0 phase 4, 2026-08-10), and never says conformant.

Tests (ledger-cli/tests/repository_store.rs, second commit): the layout (164 and 23 change-sets where §3.11 puts them, no flat path); conformant with the capability, blame on; refused without it, naming the commit git log reports (skipped in a clone without the flat history). The protocol's v1.9 note records the re-layout; the ledger README's path map names the new log path.

cargo build, cargo t, clippy, ledger verify --export and ddd validate pass on this branch.

🤖 Generated with Claude Code

https://claude.ai/code/session_01GgRcHXmnAu43hChNxhnqxU


Generated by Claude Code

@Hafeok
Hafeok force-pushed the claude/great-feynman-zcdsdd-step-02-legacy-history branch from a07559d to 11063a9 Compare October 11, 2026 06:12
@Hafeok
Hafeok force-pushed the claude/great-feynman-zcdsdd-step-10-repository-store branch from 92b8e57 to efc4bc5 Compare October 11, 2026 06:13
Hafeok added a commit that referenced this pull request Oct 11, 2026
…s included

Issue #146 (PRD issue 3, §3.7; ruling 45; AC-45). A file's namespace is
its directory (LP-3.34), so every entity under `ns/<ns>/` belongs to
`<ns>`. `verify::belonging` makes each one that does not a `SCHEMA`
fault naming the entity: a decision id of another namespace, a version
or an acceptance of such a decision, a binding or a policy whose
`namespace` is another, a revocation of an acceptance or a grant filed
under another directory, a grant acceptance or an interval naming a
grant filed elsewhere, an availability ending an interval filed
elsewhere, and a sidecar under a namespace other than its entity's. A
record whose target is not filed is already a fault and is left to that
finding; a candidate the writer could home nowhere is judged by the
finding that says why, not here. No class is added.

Tests (each failing before the change): `belonging_tests` over in-memory
stores (a decision, its version and its acceptance of another namespace
each named; a binding, a policy and a revocation target of another
namespace named; an unhomed candidate left alone), and
`ledger-cli/tests/belonging.rs` over stores the verbs built and a hand
misfiled: a decision of B under A, an acceptance of B under A, a
revocation under A of B's acceptance (and the same revocation under B in
its place), and B's opening change-set under A, its policy and binding
named. One unit-test store had homed a `fixture.ledger` policy under a
`hafeok.ledger` file; its policy now names the file's namespace.

Protocol: LP-3.33 loses its not-implemented mark and its note; LP-8.8
gains the clause; Appendix B row; Appendix C note "An entity outside its
namespace's directory is refused". No digest moves; no committed file in
this repository is mixed (0 of 187).

Stacked on #156 (issue 10).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GgRcHXmnAu43hChNxhnqxU
Hafeok and others added 2 commits October 11, 2026 06:22
Issue #153 (PRD issue 10, §3.11; rulings 63 and 97; AC-82 on this
repository). One commit moves the files, byte for byte, as §3.11 lists:
`.decisions/sets/ddd-governance.yml` and `hafeok.ddd`'s 164 log files to
`.decisions/ns/hafeok.ddd/`; `.decisions/sets/ledger-design.yml` and the
other 23 log files to `.decisions/ns/hafeok.ledger/`. No file holds two
namespaces, so each goes where its decisions live. No record is written
and no move act is filed (ruling 95).

Both exports regenerate to the same bytes: set IRIs stay as they are
until issue 18, and nothing an export carries read a path.

With the legacy capability (issue 2) `ledger verify --export` is
conformant, and its output is `main`'s line for line: 284 entries, 93
decisions, the same three awaiting acceptance, the same two notices, the
export line; blame on, so every acceptance's `L009` author is the same
as before the move. Without the capability the verifier refuses with
exit 2, naming the first flat commit, cfff91d
(Ledger L0 phase 4, 2026-08-10).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GgRcHXmnAu43hChNxhnqxU
The companion of the re-layout commit (issue #153). Three tests over this
repository's own store: the layout is one directory per namespace, with
164 and 23 change-sets where §3.11 puts them; with the legacy capability
`ledger verify --export` is conformant with blame on, so every entity's
`L009` author and immutability verdict is as before the move; without it
the verifier refuses with exit 2, naming the first flat commit that
`git log` reports, and never says conformant (skipped in a clone that
does not carry the flat history). The protocol's v1.9 note records the
re-layout, and the ledger README's path map names the new log path.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GgRcHXmnAu43hChNxhnqxU
@Hafeok
Hafeok force-pushed the claude/great-feynman-zcdsdd-step-02-legacy-history branch from 11063a9 to 25ab27a Compare October 11, 2026 06:22
@Hafeok
Hafeok force-pushed the claude/great-feynman-zcdsdd-step-10-repository-store branch from efc4bc5 to ef2ce1a Compare October 11, 2026 06:22
Hafeok added a commit that referenced this pull request Oct 11, 2026
…s included

Issue #146 (PRD issue 3, §3.7; ruling 45; AC-45). A file's namespace is
its directory (LP-3.34), so every entity under `ns/<ns>/` belongs to
`<ns>`. `verify::belonging` makes each one that does not a `SCHEMA`
fault naming the entity: a decision id of another namespace, a version
or an acceptance of such a decision, a binding or a policy whose
`namespace` is another, a revocation of an acceptance or a grant filed
under another directory, a grant acceptance or an interval naming a
grant filed elsewhere, an availability ending an interval filed
elsewhere, and a sidecar under a namespace other than its entity's. A
record whose target is not filed is already a fault and is left to that
finding; a candidate the writer could home nowhere is judged by the
finding that says why, not here. No class is added.

Tests (each failing before the change): `belonging_tests` over in-memory
stores (a decision, its version and its acceptance of another namespace
each named; a binding, a policy and a revocation target of another
namespace named; an unhomed candidate left alone), and
`ledger-cli/tests/belonging.rs` over stores the verbs built and a hand
misfiled: a decision of B under A, an acceptance of B under A, a
revocation under A of B's acceptance (and the same revocation under B in
its place), and B's opening change-set under A, its policy and binding
named. One unit-test store had homed a `fixture.ledger` policy under a
`hafeok.ledger` file; its policy now names the file's namespace.

Protocol: LP-3.33 loses its not-implemented mark and its note; LP-8.8
gains the clause; Appendix B row; Appendix C note "An entity outside its
namespace's directory is refused". No digest moves; no committed file in
this repository is mixed (0 of 187).

Stacked on #156 (issue 10).

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GgRcHXmnAu43hChNxhnqxU
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant