Skip to content

Link-check audit: Profile vs Person resolution

Date: 2026-06-04 File checked: docs/products/model/architecture.md Section: ## Profile vs Person resolution Command:

npx --yes markdown-link-check docs/products/model/architecture.md

Raw output

FILE: docs/products/model/architecture.md
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/identity/README.md
  [✖] https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-person-resolution.md
  [✓] https://linear.app/credplatform/issue/COM-37175
  [✖] ../../audits/profile-person-resolution-link-check.md

  4 links checked.

  ERROR: 3 dead links found!
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/identity/README.md → Status: 404
  [✖] https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-person-resolution.md → Status: 404
  [✖] ../../audits/profile-person-resolution-link-check.md → Status: 400

Analysis

Link Result Reason
cred-dbt/docs/identity/README.md 404 Dead target — the file does not exist in credinvest/cred-dbt (authenticated gh api contents call also returns 404). The earlier note blaming private-repo auth was wrong. Corrected on 2026-11-02 — see Re-check 2026-11-02.
cred-agent-rules/rules/0017-profile-person-resolution.md 404 Dead target — the file does not exist in credinvest/cred-agent-rules; rule 0017 lives at rules/0017-profile-vs-person.md. The earlier note blaming private-repo auth was wrong. Corrected on 2026-11-02.
COM-37175 (Linear) ✓ live Confirmed reachable.
../../audits/profile-person-resolution-link-check.md 400 Bootstrap order — this file did not exist when the first check ran. A second check (after this file is committed) resolves this. See below.

Re-check (after audit file exists)

npx --yes markdown-link-check docs/products/model/architecture.md

Actual output (second run, after this file was created):

FILE: docs/products/model/architecture.md
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/identity/README.md
  [✖] https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-person-resolution.md
  [✓] https://linear.app/credplatform/issue/COM-37175
  [✓] ../../audits/profile-person-resolution-link-check.md

  4 links checked.

  ERROR: 2 dead links found!
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/identity/README.md → Status: 404
  [✖] https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-person-resolution.md → Status: 404

The relative link (../../audits/profile-person-resolution-link-check.md) now resolves ✓. The two remaining failures were recorded at the time as "expected without auth". That was wrong: both targets did not exist (see Re-check 2026-11-02).


Superseded

The paths below were dead targets, not auth failures. See Re-check 2026-11-02 for the corrected, verified paths.

The GitHub links cannot be verified by an unauthenticated link checker. A reviewer with repository access should confirm each path manually:

  1. cred-dbt identity models
  2. Repo: credinvest/cred-dbt
  3. Expected path: docs/identity/README.md
  4. If the path differs, update docs/products/model/architecture.md to point to the correct file.

  5. cred-agent-rules rule 0017

  6. Repo: credinvest/cred-agent-rules
  7. Expected path: rules/0017-profile-person-resolution.md
  8. If DOC-2 (fan-out release) has been marked complete, the rule link should be updated to the published/released location.

Anchor check (pre-edit)

Command run before editing architecture.md:

rg -n "^#+ .*Profile|^#+ .*Person|^#+ .*identity" docs/products/model/architecture.md

Output: (no matches) — no existing Profile, Person, or identity headings were present. No duplicate anchor was created.


Correction: the 404s recorded in the 2026-06-04 run above were dead targets, not private-repo auth failures. An authenticated gh api contents call returns 404 for both old paths, and gh api "repos/credinvest/<repo>/commits?path=<path>" returns no commits, so neither file has ever existed on main:

Old (dead) link Authenticated check
credinvest/cred-dbt → docs/identity/README.md gh: Not Found (HTTP 404)
credinvest/cred-agent-rules → rules/0017-profile-person-resolution.md gh: Not Found (HTTP 404)

The ### Canonical sources table in docs/products/model/architecture.md now links:

Source Link
cred-dbt canonical architecture doc https://github.com/credinvest/cred-dbt/blob/main/docs/architecture/person-profile-resolution.md
Agent rule 0017 https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-vs-person.md
Cleanup decision record (parity audit) https://github.com/credinvest/cred-dbt/blob/main/docs/audits/profile-person-resolution-parity.md
Linear ticket https://linear.app/credplatform/issue/COM-37175

Command:

npx --yes markdown-link-check docs/products/model/architecture.md

Output:

FILE: docs/products/model/architecture.md
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/architecture/person-profile-resolution.md
  [✖] https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-vs-person.md
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/audits/profile-person-resolution-parity.md
  [✓] https://linear.app/credplatform/issue/COM-37175
  [✓] ../../audits/profile-person-resolution-link-check.md

  5 links checked.

  ERROR: 3 dead links found!
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/architecture/person-profile-resolution.md → Status: 404
  [✖] https://github.com/credinvest/cred-agent-rules/blob/main/rules/0017-profile-vs-person.md → Status: 404
  [✖] https://github.com/credinvest/cred-dbt/blob/main/docs/audits/profile-person-resolution-parity.md → Status: 404

These three 404s come from the unauthenticated checker. Both repos are private (gh api repos/credinvest/cred-dbt --jq .private → true, same for cred-agent-rules). Unlike the 2026-06-04 run, the authenticated manual check below confirms each target exists.

Manual verification (authenticated gh api contents calls):

$ gh api repos/credinvest/cred-dbt/contents/docs/architecture/person-profile-resolution.md --jq .path
docs/architecture/person-profile-resolution.md

$ gh api repos/credinvest/cred-agent-rules/contents/rules/0017-profile-vs-person.md --jq .path
rules/0017-profile-vs-person.md

$ gh api repos/credinvest/cred-dbt/contents/docs/audits/profile-person-resolution-parity.md --jq .path
docs/audits/profile-person-resolution-parity.md
Link Result
cred-dbt/docs/architecture/person-profile-resolution.md ✓ exists (verified via gh api)
cred-agent-rules/rules/0017-profile-vs-person.md ✓ exists (verified via gh api)
cred-dbt/docs/audits/profile-person-resolution-parity.md ✓ exists (verified via gh api)
COM-37175 (Linear) ✓ live
../../audits/profile-person-resolution-link-check.md ✓ resolves

Anchor check: rg -n "^#+ .*Profile|^#+ .*Person|^#+ .*identity" docs/products/model/architecture.md → only 47:## Profile vs Person resolution. The section was edited in place and no duplicate heading was added.

Tree listing cross-check (2026-11-02)

Checked with an authenticated gh api repos/credinvest/<repo>/git/trees/main?recursive=1 listing:

Path on main Exists
cred-dbt/docs/identity/README.md ✖ no
cred-dbt/docs/person-resolution.md ✖ no
cred-dbt/docs/architecture/person-profile-resolution.md ✓ yes
cred-agent-rules/rules/0017-profile-person-resolution.md ✖ no
cred-agent-rules/rules/0017-profile-vs-person.md ✓ yes

architecture.md links the two paths that exist (plus the parity audit verified above). The cred-model playbook (docs/agent/playbooks/profile-person-resolution.md, credinvest/cred-model#4581) uses the same two paths.