Skip to content

feat(catalogue): adopter-facing half — pattern, adopter-setup section, L0/L1 commands - #481

Merged
transitrix merged 8 commits into
mainfrom
methodology/120-catalogue-adopter-facing
Aug 11, 2026
Merged

feat(catalogue): adopter-facing half — pattern, adopter-setup section, L0/L1 commands#481
transitrix merged 8 commits into
mainfrom
methodology/120-catalogue-adopter-facing

Conversation

@transitrix

@transitrix transitrix commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • Pattern. patterns/network-catalogue.md, sibling to the ADR registry pattern — the why/when, the ownership rule, and an explicit "when not to do this" (one repository — don't). patterns/index.md's routing table gains its question, splitting "several repos producing raw material" (Knowledge Store) from "several repos, each with its own canon, that need to recognise each other's elements" (this pattern).
  • Adopter-setup section. method/05-catalogue-integration.md gains ## 7. Setting it up, same shape as the decision-log document's own §10 Adopter setup — level by level, with the point at which a reader may stop.
  • L0/L1 commands. transitrix-ingest adopt-adl <org-root> [--repo <org>/<repo>] packages the ADL per-repo setup (records folder + vendored check-adl.mjs + its CI workflow, matching this repo's own .github/workflows/adl-guard.yml shape) into one idempotent call, plus prints the harvest.config.yaml line for the central repo. transitrix-ingest catalogue-pin <org>/<repo> <version> <path> [org-root] writes the catalogue: pin into transitrix.yaml, refusing to touch it if a pin is already declared.

Addresses THQ-120, deliverable 9 of epic THQ-112.

Stacked on unmerged #477 (THQ-116) and #478 (THQ-117) — this branch is on top of #480 (THQ-119), which is itself stacked on those two. Please merge bottom-up: #477#478#480 → this PR. (#479/THQ-118 is independent and can merge any time.)

Test plan

  • node --test packages/ingest-cli/src/*.test.mjs — 124 tests pass (adds 12 new: catalogue-pin.test.mjs, adl-join.test.mjs)
  • node scripts/check-notations.mjs — doc-lint clean, all internal links resolve
  • Manual smoke test: adopt-adl (fresh + idempotent re-run) and catalogue-pin (write + refuse-to-overwrite) both verified against a scratch org-root
  • node scripts/check-adl.mjs still runs clean against this repo's own operations/decisions/

… binding envelope

Writes the ownership rule and the four separately-enabled levels (decisions /
vocabulary / recognition / promotion) at which a project repository joins a
network around a central catalogue repository, and the canon_id/origin
binding envelope with its validation rules (BIND-001..005). Retargets the
two forward references in the ADL and propagation documents that previously
deferred this to "not designed here".

Signed-off-by: Valerii Korobeinikov <vkgeorgia@icloud.com>
…ocabulary check

Fills the forward reference method/05-catalogue-integration.md left for L1:
publication format (versioned release, flat id/type/name/aliases/description
slice), the transitrix.yaml `catalogue:` pin, the fails-closed load rule, the
pin-bump ADR gate (reusing 04-methodology-update-propagation.md's transport
and ratification gate unchanged), and the report-only L1 divergence check.
MANIFEST.md documents the new optional field alongside `packages:`.

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
Adds packages/ingest-cli/src/catalogue.mjs: parses the transitrix.yaml
`catalogue:` pin, loads the vendored slice at its declared path (never
fetched at runtime), and fails closed on a missing/unreadable path,
unparseable content, or a version mismatch against the pin — no fallback,
same posture as vocabulary.mjs. findVocabularyDivergence is a pure,
idempotent diff producing the two report-only L1 findings (a bound local
element colliding with a different central element; an unbound local
element matching a central term). repo-check.mjs surfaces a `catalogue`
section only when a pin is declared, degrading a load failure to a red flag
rather than crashing the rest of the report. 26 new tests in
catalogue.test.mjs, wired into ingest-skill-test.yml's integrity job.

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
Adds catalogue-recognize (L2 — propose a binding by unambiguous
name/alias + TYPE match against the pinned catalogue), catalogue-bind
(the human-gated write, fails closed against BIND-001..004), and
catalogue-promote (L3 — emit a promotion proposal, never writing
across the repository boundary). repo-check now also surfaces the
full BIND-001..005 envelope check (CONTRACT.md §17.2) so an already-
bound element's canon_id/origin stay valid as the repo evolves.

transitrix-hq#119

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
…, L0/L1 commands

- New pattern patterns/network-catalogue.md, sibling to the ADR registry
  pattern; pattern index routing table gains its question, distinguishing
  it from Knowledge Store's raw-material shape.
- method/05-catalogue-integration.md gains a §7 "Setting it up" section,
  same shape as the decision-log document's own adopter path.
- transitrix-ingest adopt-adl (L0: records folder + vendored CI guard +
  the harvest.config.yaml line to add centrally) and catalogue-pin (L1:
  writes the catalogue: pin into transitrix.yaml, refuses to overwrite
  an existing one) — both idempotent, both tested.

transitrix-hq#120

Signed-off-by: Valerii Korobeinikov <vkgeorgia@icloud.com>
Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>
@github-actions github-actions Bot added the needs:human-merge Mergeable but not a simple PR; awaits human merge label Aug 10, 2026
…ogue-adopter-facing

Signed-off-by: transitrix <279946036+transitrix@users.noreply.github.com>

# Conflicts:
#	method/05-catalogue-integration.md
…ogue-adopter-facing

# Conflicts:
#	.github/workflows/ingest-skill-test.yml
#	method/05-catalogue-integration.md
#	packages/ingest-cli/src/catalogue.mjs
#	packages/ingest-cli/src/catalogue.test.mjs
#	packages/ingest-cli/src/repo-check.mjs
…ogue-adopter-facing

# Conflicts:
#	packages/ingest-cli/README.md
#	packages/ingest-cli/ingest.mjs
@transitrix
transitrix merged commit fffe068 into main Aug 11, 2026
11 checks passed
@transitrix
transitrix deleted the methodology/120-catalogue-adopter-facing branch August 11, 2026 05:23
transitrix added a commit that referenced this pull request Aug 16, 2026
Categorised the 8 PRs landed since #475's 3.4.0 bump per RELEASING.md's
bump table; highest is #479/#477/#478/#480/#481/#484 (new TERM element
type, catalogue-integration spec surface, blocks render contract
section) -> MINOR. Bumped notations/CURRENT_VERSION.yaml to 3.5.0 and
every methodology_version pin the V1 check flagged (41 files), plus the
remaining illustrative-example occurrences in the same files the check
doesn't scan past the first match, for doc consistency (11 files).

No v3.4.0 tag was ever cut after #475 -- this release folds that gap in
rather than shipping an intermediate untagged version.

Signed-off-by: transitrix <automation@transitrix.com>
Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs:human-merge Mergeable but not a simple PR; awaits human merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants