Skip to content

docs: sources provenance design + intent governance sweep - #6

Merged
REPPL merged 12 commits into
mainfrom
docs/sources-provenance-design
Jul 8, 2026
Merged

docs: sources provenance design + intent governance sweep#6
REPPL merged 12 commits into
mainfrom
docs/sources-provenance-design

Conversation

@REPPL

@REPPL REPPL commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Record-only change (no code paths except one committed hook edit) landing three connected arcs of design work.

1. Confidential sources + provenance ledger (itd-76, itd-77)

  • itd-76 (draft): consult-but-never-cite source handling — a user-level corpus (class-segregated per-source folders; location IS the classification), an append-only source→decision influence ledger with a two-level citation gate (source permission AND per-line flip), banlist patterns generated from confidential entries into the itd-74 private guard layer, and team sharing of citation data (never documents) via a committed references.json. A "What It Cannot Enforce" section states the paraphrase residual risk plainly.
  • itd-77 (draft): ~/.abcd/ blessed as abcd's user-level home — a fourth, additive tier; wizard-relocatable, path configurable.
  • The committed .githooks/pre-commit now auto-refreshes the generated banlist block when the user-level corpus exists (no-op on CI/fresh clones; verified live).
  • Design grounding: plan doc + two SOTA research notes under research/notes/.

2. Intent dependency graph (itd-78) + corpus-wide sweep

  • itd-78 (draft): intents declare severity (capture-ledger enum) and one-way blocked_by/builds_on edges; effective priority is DERIVED via priority inheritance (a minor blocker of a major intent computes to major) and never stored. Phases keep sequencing authority (adr-9); lint gains graph checks incl. hand-authored-reverse-field rejection and fingerprint-based suspect links.
  • Sweep ratified across all 64 live intents: severity + evidence-backed edges landed; itd-47/itd-49 retired to superseded/; two priority inversions computed (itd-74→itd-76, itd-20→itd-33). Method + assessor lessons in research/notes/2026-07-08-intent-dependency-sweep.md.

3. Authoring rules and the consume model

  • Personas: personas.json is the single registry (now 14 — Nia/facilitator joins); selection is by role, the role's name is used, they/them throughout; corpus-wide quote sweep applied; principle file points at the registry.
  • Intents gain a required ## Prior Art section; itd-42's promotion-time Tier 2 additionally loads principles/.
  • Consume-model decisions: spec_id is scalar (split-the-intent doctrine; the spec-side intent: list stays — bundle direction); enforced principles promote to discipline-kind intents; the five-state coverage vocabulary (uncovered/shallow/deep/orphaned/unwanted) becomes itd-53's gate reporting language; intent doneness = covered-deep AND the intent's own itd-1 criteria MET.
  • ban_authors flipped to opt-in (the corpus population makes default author bans near-pure false positives); personas principle + ACKNOWLEDGEMENTS entries for adopted patterns (CSL-JSON, Doorstop, priority inheritance, Rust RFC).

make preflight and record-lint green throughout; every diff leak-scanned.

Assisted-by: Claude

REPPL added 12 commits July 8, 2026 09:04
A local-only system for consulting confidential sources without ever
citing them publicly: global CSL-JSON corpus, append-only JSONL
influence ledger, banlist patterns generated from confidential entries
into the itd-74 private pre-commit guard, Quarto profiles for eventual
paper reconstruction. Convention-first scaffold is live at user level;
promotion to 'abcd source' verbs is captured as draft intent itd-76.

Also records the personas principle (Alice, Bob, Carol; user is
they/them) set this session.

Assisted-by: Claude:claude-fable-5
…home)

Grill outcomes: leak guard promises literal strings only (paraphrase
risk stated and handled behaviourally); two-level AND citation gate;
author bans default on with per-source ban_authors opt-out; standalone
source domain (itd-16 optional backend); public render proven by
structural filter plus post-render lint; team sharing of citation data
via committed .abcd/work/references.json (share/ingest); durability via
machine backup + git bundle. The pre-commit guard now auto-refreshes
the generated banlist block from the user-level corpus when present.

itd-77 records the user-level ~/.abcd home as a configurable, wizard-
relocatable fourth tier, additive to the repo .abcd tiers.

Assisted-by: Claude:claude-fable-5
Supersedes today's default-on choice with base-rate information: the
expected corpus (own submitted work, purchased reports, private repos)
makes default author bans near-pure false positives — they would ban
the user's own name — while title/alias patterns carry the actual
protection. Author bans remain available per source for collaborations
that are themselves secret.

Assisted-by: Claude:claude-fable-5
… itd-76/77

Severity says how much a thing matters; the graph says when to build
it. Intents declare severity (capture-ledger enum) and blocked_by /
builds_on edges; effective priority is derived by priority inheritance
(a minor blocker of a major intent computes to major) and never stored,
per the directory-is-state doctrine. Phases keep sequencing authority
(adr-9); lint gains graph checks (cycles, dangling ids, phase-order
violations, ignored inversions). Records an earlier-session decision
that severity must not determine priority.

Assisted-by: Claude:claude-fable-5
…(itd-78 pilot)

Seven parallel assessments proposed severity + edges for every draft,
planned, and discipline intent. This commit lands only the edges whose
evidence is an explicit statement in the intent's own prose; severities
and low-confidence edges await human ratification. Edges into
superseded targets (itd-47) and direction-suspect edges were withheld.

Assisted-by: Claude:claude-fable-5
…dead intents

All 64 live intents now carry ratified severity (capture-ledger enum)
and their evidence-backed edges; the nine low-confidence edges the
review approved land as builds_on. Record cleanup: itd-47 (superseded
by ADR-22) and itd-49 (superseded by ADR-26) move to superseded/ per
the directory-is-state doctrine; persona names in itd-7, itd-43, and
itd-74 corrected to the Alice/Bob principle.

Assisted-by: Claude:claude-fable-5
The assessor-lessons note seeds a future 'abcd intent assess' flow:
direction flips are the top error mode, most blockers are not intents,
supersession hides in live edges, rosters must come from one commit.
itd-78's dogfood section now records the corpus-wide sweep and the
questions it settled; follow-up anomalies await ledger capture after
the triage branch merges (numbering must not fork).

Assisted-by: Claude:claude-fable-5
Confidentiality is declared at ingestion; the folder location is the
single source of truth, mirrored by the flag with a refuse-on-mismatch
check. Derived artifacts (summaries, notes) inherit confidentiality by
living in the source's folder; declassification is a visible move.

Assisted-by: Claude:claude-fable-5
… fingerprints

personas.json is the single registry: selection by role (the role's
registered name is used), alphabetical roster, they/them throughout;
the principle file now points at it and quote personas are re-bound to
their roles (Frank/Kira/Maya). Intents gain a required Prior Art
section; itd-42's Tier 2 additionally loads principles/ at promotion.
itd-78 gains the hand-authored-reverse-field lint and optional edge
fingerprints for suspect-link detection. Intent doneness stays gated
on the intent's own itd-1 criteria; the consume-model interview is
logged as a follow-up.

Assisted-by: Claude:claude-fable-5
…riority inheritance, Rust RFC)

Assisted-by: Claude:claude-fable-5
…cabulary); persona sweep

Consume-model decisions: spec_id is scalar (split-the-intent doctrine,
itd-67/72 precedent; the spec-side intent list stays — that is the
bundle direction); enforced principles promote to discipline-kind
intents (principles/README records the path); the five-state coverage
vocabulary lands as itd-53's gate reporting language.

Persona sweep across the remaining corpus: 20 flagged quotes rebound
by role (Kira for maintainers, Iris for the product voice, Maya for
practitioners, Bob/staff-engineer fix); Nia (facilitator) joins the
registry as the 14th persona; Bob, Iris, Maya gain role hints.

Assisted-by: Claude:claude-fable-5
@REPPL
REPPL merged commit 9668cf8 into main Jul 8, 2026
12 checks passed
@REPPL
REPPL deleted the docs/sources-provenance-design branch July 8, 2026 15:26
REPPL added a commit that referenced this pull request Jul 11, 2026
* docs: record confidential-sources provenance design (itd-76)

A local-only system for consulting confidential sources without ever
citing them publicly: global CSL-JSON corpus, append-only JSONL
influence ledger, banlist patterns generated from confidential entries
into the itd-74 private pre-commit guard, Quarto profiles for eventual
paper reconstruction. Convention-first scaffold is live at user level;
promotion to 'abcd source' verbs is captured as draft intent itd-76.

Also records the personas principle (Alice, Bob, Carol; user is
they/them) set this session.

Assisted-by: Claude:claude-fable-5

* docs: harden itd-76 after design grill; add itd-77 (relocatable user home)

Grill outcomes: leak guard promises literal strings only (paraphrase
risk stated and handled behaviourally); two-level AND citation gate;
author bans default on with per-source ban_authors opt-out; standalone
source domain (itd-16 optional backend); public render proven by
structural filter plus post-render lint; team sharing of citation data
via committed .abcd/work/references.json (share/ingest); durability via
machine backup + git bundle. The pre-commit guard now auto-refreshes
the generated banlist block from the user-level corpus when present.

itd-77 records the user-level ~/.abcd home as a configurable, wizard-
relocatable fourth tier, additive to the repo .abcd tiers.

Assisted-by: Claude:claude-fable-5

* docs: flip author bans to opt-in (ban_authors: true)

Supersedes today's default-on choice with base-rate information: the
expected corpus (own submitted work, purchased reports, private repos)
makes default author bans near-pure false positives — they would ban
the user's own name — while title/alias patterns carry the actual
protection. Author bans remain available per source for collaborations
that are themselves secret.

Assisted-by: Claude:claude-fable-5

* docs: add itd-78 (intent dependency graph); pilot severity + edges on itd-76/77

Severity says how much a thing matters; the graph says when to build
it. Intents declare severity (capture-ledger enum) and blocked_by /
builds_on edges; effective priority is derived by priority inheritance
(a minor blocker of a major intent computes to major) and never stored,
per the directory-is-state doctrine. Phases keep sequencing authority
(adr-9); lint gains graph checks (cycles, dangling ids, phase-order
violations, ignored inversions). Records an earlier-session decision
that severity must not determine priority.

Assisted-by: Claude:claude-fable-5

* docs: land high-confidence dependency edges from the 64-intent sweep (itd-78 pilot)

Seven parallel assessments proposed severity + edges for every draft,
planned, and discipline intent. This commit lands only the edges whose
evidence is an explicit statement in the intent's own prose; severities
and low-confidence edges await human ratification. Edges into
superseded targets (itd-47) and direction-suspect edges were withheld.

Assisted-by: Claude:claude-fable-5

* docs: ratify intent sweep — land severities, remaining edges; retire dead intents

All 64 live intents now carry ratified severity (capture-ledger enum)
and their evidence-backed edges; the nine low-confidence edges the
review approved land as builds_on. Record cleanup: itd-47 (superseded
by ADR-22) and itd-49 (superseded by ADR-26) move to superseded/ per
the directory-is-state doctrine; persona names in itd-7, itd-43, and
itd-74 corrected to the Alice/Bob principle.

Assisted-by: Claude:claude-fable-5

* docs: record intent-sweep methodology; settle itd-78 pilot questions

The assessor-lessons note seeds a future 'abcd intent assess' flow:
direction flips are the top error mode, most blockers are not intents,
supersession hides in live edges, rosters must come from one commit.
itd-78's dogfood section now records the corpus-wide sweep and the
questions it settled; follow-up anomalies await ledger capture after
the triage branch merges (numbering must not fork).

Assisted-by: Claude:claude-fable-5

* docs: record corpus restructure (class-segregated per-source folders)

Confidentiality is declared at ingestion; the folder location is the
single source of truth, mirrored by the flag with a refuse-on-mismatch
check. Derived artifacts (summaries, notes) inherit confidentiality by
living in the source's folder; declassification is a visible move.

Assisted-by: Claude:claude-fable-5

* docs: reconcile persona SSOTs; Prior Art section; one-way-edge lint + fingerprints

personas.json is the single registry: selection by role (the role's
registered name is used), alphabetical roster, they/them throughout;
the principle file now points at it and quote personas are re-bound to
their roles (Frank/Kira/Maya). Intents gain a required Prior Art
section; itd-42's Tier 2 additionally loads principles/ at promotion.
itd-78 gains the hand-authored-reverse-field lint and optional edge
fingerprints for suspect-link detection. Intent doneness stays gated
on the intent's own itd-1 criteria; the consume-model interview is
logged as a follow-up.

Assisted-by: Claude:claude-fable-5

* docs: acknowledge patterns adopted this branch (CSL-JSON, Doorstop, priority inheritance, Rust RFC)

Assisted-by: Claude:claude-fable-5

* docs: interview outcomes (scalar spec_id, promotion path, coverage vocabulary); persona sweep

Consume-model decisions: spec_id is scalar (split-the-intent doctrine,
itd-67/72 precedent; the spec-side intent list stays — that is the
bundle direction); enforced principles promote to discipline-kind
intents (principles/README records the path); the five-state coverage
vocabulary lands as itd-53's gate reporting language.

Persona sweep across the remaining corpus: 20 flagged quotes rebound
by role (Kira for maintainers, Iris for the product voice, Maya for
practitioners, Bob/staff-engineer fix); Nia (facilitator) joins the
registry as the 14th persona; Bob, Iris, Maya gain role hints.

Assisted-by: Claude:claude-fable-5
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