Link audit: dead internal links, mangled mailtos, and retired-service links across the vault
- Dominant language
- Shell
- Stars
- 8
- Forks
- 4
- Avg merge
- 21m
- Merged PRs (30d)
- 53
Description
Full-site link audit of memo.d.foundation (method: every published page from `content/memos.json` crawled, 1,066 unique internal links probed redirect-aware since a missing page answers `307 -> /` here, 946 external links checked). Pages themselves: 1,560 published, zero dead. What remains is content-layer and belongs in this vault.
Code-level siblings (the `/radar/index` breadcrumb, the empty `/contributor` directory rendering, an `earn.d.foundation` footer link on icy.so, missing `public/` assets on dwarves.foundation) are being fixed in `dwarvesf/foundation-apps` separately; contributor DATA stays parked for the identity substrate (SPEC-106 M2).
## 1. Mangled mailto links (31 pages)
Written in a form the pipeline turned into relative paths. Fix: make them real `mailto:` links.
- `/careers/archived/mailtospawnd.foundation` on 23 page(s), e.g. `/careers/archived/android`
- `/careers/open-positions/mailtohrd.foundation` on 7 page(s), e.g. `/careers/open-positions/business-manager`
- `/careers/mailtohrd.foundation` on 1 page(s), e.g. `/careers/readme`
- `/consulting/mailtonikkid.foundation` on 1 page(s), e.g. `/consulting/partners-network`
- `/site/token/mailtoteamd.foundation` on 1 page(s), e.g. `/token`
- `/site/token/mailtosecurityd.foundation` on 1 page(s), e.g. `/token-faq`
## 2. Scheme-less external links became relative
Written as `t.me/...` / `discord.gg/...` without `https://`.
- `/discord.gg/dfoundation` on `/about`
- `/site/services/t.me/dfoundation` on `/services-fintech`
## 3. The `/arc` cluster (5 pages link a removed section)
The vault has no `arc/` content and no redirects from `/arc*`. `on-agent` exists as `reports/commentary/on-agent.md` but is draft. Linking pages:
- `/consulting/navigate/experiment` -> `/arc`
- `/consulting/navigate/market-thesis-method` -> `/arc`
- `/consulting/readme` -> `/arc`
- `/what-stays-valuable-when-anyone-can-build` -> `/arc`
- `/org-roadmap-2025` -> `/arc/on-agent`
- `/org-roadmap-2025` -> `/arc/on-blockchain`
- `/org-roadmap-2025` -> `/arc/on-platform`
- `/org-roadmap-2025` -> `/arc/on-spatial`
Options: un-draft and add `redirect:` entries, or edit the five linking posts. Editorial call.
## 4. Links to moved or removed pages (need `redirect:` in the target's frontmatter, or a link update)
- `/careers/additional-info/culture-handbook/` (2 page(s), e.g. `/careers/archived/full-stack-engineer`)
- `/careers/additional-info/life-at-dwarves/` (2 page(s), e.g. `/careers/archived/full-stack-engineer`)
- `/careers/additional-info/the-manifesto/` (2 page(s), e.g. `/careers/archived/full-stack-engineer`)
- `/build-log/company/brand` (1 page(s), e.g. `/careers/open-positions/growth-lead`)
- `/careers/life/life-at-dwarves-with-an-tran/` (1 page(s), e.g. `/careers/readme`)
- `/forward-engineering` (1 page(s), e.g. `/consulting/navigate/experiment`)
- `/playbook/community/how-to-setup-crypto-wallet-to-withdraw-icy/` (1 page(s), e.g. `/handbook/icy/icy-withdraw`)
- `/playground/01_literature/how-to-set-up-environment-for-editing-memo/` (1 page(s), e.g. `/handbook/memo/publish-on-memo`)
- `/updates/wala` (1 page(s), e.g. `/org-roadmap-2025`)
- `/playbook/engineering/sentry.io` (1 page(s), e.g. `/playbook/engineering/error`)
- `/cdeaa142edca44669867f8fbb120c342` (1 page(s), e.g. `/playbook/operations/apply-mbti-in-hr`)
- `/playbook/operations/hiring-approach/` (1 page(s), e.g. `/playbook/operations/checklists/candidate-checklist`)
- `/business/readme` (1 page(s), e.g. `/playbook/readme`)
- `/design/design-sprint` (1 page(s), e.g. `/playbook/readme`)
- `/design/design-system` (1 page(s), e.g. `/playbook/readme`)
- `/design/lean-canvas` (1 page(s), e.g. `/playbook/readme`)
- `/design/prototype` (1 page(s), e.g. `/playbook/readme`)
- `/design/wireframe` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/12-factor-app` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/android` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/backend` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/basic-security` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/changelog` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/ci-cd` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/code-review` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/definition-of-done` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/diagram` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/editor` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/environment` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/error` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/frontend/tech-ecosystem` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/git` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/handover` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/ios` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/license` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/log` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/monitoring` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/production` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/rdd` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/readme` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/readme-how` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/release` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/restful` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/security/api-security` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/security/dev-security` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/setup-laptop` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/setup-project` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/setup-repository` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/stack` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/user-story` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/versioning` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/workflow` (1 page(s), e.g. `/playbook/readme`)
- `/engineering/working-together` (1 page(s), e.g. `/playbook/readme`)
- `/updates/forward/2025-05` (1 page(s), e.g. `/research/compose`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/8-preferences` (1 page(s), e.g. `/research/notes/hr/mbti/8-cognitive-functions`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/8-cognitive-functions` (1 page(s), e.g. `/research/notes/hr/mbti/cognitive-function-stack`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/extroverted-feeling-fe` (1 page(s), e.g. `/research/notes/hr/mbti/fi-fe`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/introverted-feeling-fi` (1 page(s), e.g. `/research/notes/hr/mbti/fi-fe`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/extroverted-intuition-ne` (1 page(s), e.g. `/research/notes/hr/mbti/ne-ni`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/introverted-intuition-ni` (1 page(s), e.g. `/research/notes/hr/mbti/ne-ni`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/extroverted-sensing-se` (1 page(s), e.g. `/research/notes/hr/mbti/si-se`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/introverted-sensing-si` (1 page(s), e.g. `/research/notes/hr/mbti/si-se`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/extroverted-thinking-te` (1 page(s), e.g. `/research/notes/hr/mbti/ti-te`)
- `/research/notes/hr/mbti/obsidian/openvaultdwarvesfilebrain/hr/mbti/introverted-thinking-ti` (1 page(s), e.g. `/research/notes/hr/mbti/ti-te`)
- `/topics/ux/good-research-starts-with-a-good-question` (1 page(s), e.g. `/research/readme`)
- `/topics/ux/landscape-of-ux-research-methods` (1 page(s), e.g. `/research/readme`)
- `/topics/ux/mixed-methods/qualitative-research-excels-at-explanation` (1 page(s), e.g. `/research/readme`)
- `/topics/ux/research-repositories-should-generate-new-knowledge` (1 page(s), e.g. `/research/readme`)
- `/updates/forward` (1 page(s), e.g. `/research/readme`)
- `/handbook/gossip` (1 page(s), e.g. `/research/transfer`)
- `/consulting/case-study/brainery` (1 page(s), e.g. `/services-platform-ops`)
- `/consulting/case-study/kafi` (1 page(s), e.g. `/services-platform-ops`)
## 5. Dead links to our own retired services (33)
Ownership call needed: repoint, or strip from posts.
- http://hedge.foundation/
- http://mermaid.d.foundation/
- http://stt.daf.ug/
- https://brain.d.foundation/
- https://brain.d.foundation/Engineering/Management/Cognitive+load
- https://brain.d.foundation/Engineering/Management/Stream-aligned+team
- https://d.foundation/presskit
- https://d.foundation/security
- https://drive.d.foundation/
- https://dwarves.careers/
- https://dwarves.careers/jobs/quality-assurance-engineer--dwarves-foundation--saigon
- https://dwarves.careers/jobs/software-engineer-android--dwarves-foundation--saigon/
- https://dwarves.careers/jobs/software-engineer-front-end--dwarves-foundation--saigon/
- https://dwarves.careers/jobs/software-engineer-golang--dwarves-foundation--saigon/
- https://dwarves.careers/jobs/software-engineer-ios--dwarves-foundation--saigon/
- https://dwarves.foundation/memo/daily-check-ins
- https://dwarves.foundation/memo/software-development-life-cycle-101-yedyrmilyi
- https://earn.d.foundation/Discord-Engagement-Metrics-Collect-7da7aa955d7a45cf8cdee20f6f157b67
- https://fort.d.foundation/
- https://fortress.d.foundation/
- https://icy.d.foundation/
- https://log.d.foundation/
- https://log.d.foundation/06d0a46163914f10831d3146867dde2d
- https://log.d.foundation/ae3b921059ec4834b2f28195f71aee5f
- https://mail.d.foundation/
- https://mm.daf.ug/
- https://note.d.foundation/memo/dwarves-of-the-year-2022/
- https://outline.d.foundation/doc/software-process-OsdIN0Utsh
- https://radar.d.foundation/
- https://radar.d.foundation/LangChain-181262b7994c4b108ecf559411dc988e
- https://radar.d.foundation/Large-language-model-LLM-60d7f1372aef4e60ae12894bdbafa473
- https://staging.fort.d.foundation/login
- https://www.hedge.foundation/
## 6. Our own GitHub repos now 404 (private or deleted) (13)
- https://github.com/dwarvesf/CoreDataMigrationRevised-Example
- https://github.com/dwarvesf/blurred
- https://github.com/dwarvesf/dotfiles
- https://github.com/dwarvesf/error.ex
- https://github.com/dwarvesf/error.swift
- https://github.com/dwarvesf/gerr
- https://github.com/dwarvesf/glod-cli
- https://github.com/dwarvesf/glod-cli/archive/1.0.3.2.tar.gz
- https://github.com/dwarvesf/go-api
- https://github.com/dwarvesf/monorepo-boilerplate
- https://github.com/dwarvesf/playbook/blob/master/business/README.md
- https://github.com/dwarvesf/playgroud
- https://github.com/dwarvesf/react-toolkit
## 7. Boilerplate placeholders left in post text (2)
- https://github.com/your/project/contributors
- https://github.com/your/project/tags
8. Third-party link rot (66 hard-dead: 404/DNS/TLS)
- http://blog.jaredsinclair.com/post/116436789850/
- http://delyan.me/android-s-matryoshka-problem/
- http://docs.docker.com/reference/commandline/cli/
- http://facebook.github.io/jest/
- http://futurice.com/blog/adaptive-views-in-ios-8
- http://hockeyapp.net/
- http://square.github.io/okhttp/
- http://square.github.io/retrofit/
- http://tieubao.me/writing/2014/12/05/it-is-hard-to-become-a-team-member/
- http://tools.android.com/tech-docs/new-build-system/user-guide
- http://tools.android.com/tips/layout-designtime-attributes
- http://wiki.fasterxml.com/JacksonHome
- http://www.cnet.com/uk/how-to/secure-your-ios-device-with-a-six-digit-passcode-on-ios-9/
- http://xprogramming.com/index.php
- https://3.basecamp.com/4108948/
- https://3.basecamp.com/4108948/buckets/9403032/messages/7244105315
- https://3.basecamp.com/4108948/buckets/9403032/todolists/1557155199
- https://apps.apple.com/us/app/airwatt/id1522009415
- https://basecamp.com/shapeup/1.5-chapter-06_
- https://bit.ly/3qoEEC9
- https://bit.ly/43n7jXe
- https://blog.emlteam.com/sales-personality-myers-briggs-test/
- https://dentalmarketplace.com.sg/
- https://dev.to/rekki/why-we-killed-elixir-3np
- https://developer.android.com/training/testing/ui-testing/espresso-testing.html
- https://dwarvesv.hygger.io/b/64499
- https://elixir-lang.org/getting-started/mix-otp/dependencies-and-umbrella-projects.html
- https://five9sclub.substack.com/p/runbooks-for-better-incident-management
- https://fornax.ai/
- https://functional.works-hub.com/learn/elixir-practical-concurrency-3794f
- https://github.com/marketplace/actions/commit-linter
- https://golang.org.vn/
- https://icrosschain.io/
- https://kislayverma.com/programming/why-programmers-dont-write-documentation/
- https://lindanga.com/nhan-dien-phan-loai-dau-van-tay/
- https://medium0.com/attrace/launch-of-attrace-token-attr-8af568436136?source=rss-43b67b0fd75b------2
- https://mermaid-js.github.io/mermaid/diagrams-and-syntax-and-examples/sequenceDiagram.html
- https://mermaid-js.github.io/mermaid/diagrams-and-syntax-and-examples/stateDiagram.html
- https://mint.splunk.com/
- https://neutronpay.com/
- https://nextjs.org/docs/advanced-features/dynamic-import
- https://osaro.com/product
- https://partytown.builder.io/
- https://pascalprecht.github.io/posts/why-i-use-vim/
- https://play.google.com/store/apps/details?id=com.dwarvesf.airwatt
- https://public.3.basecamp.com/p/HZKduaMQSiwrMMac9nvUGak9
- https://publish.obsidian.md/mobydiction/Sutherland+-+Alchemy
- https://publish.obsidian.md/mobydiction/notes/%E2%89%88+Madsbjerg+-+Sensemaking
- https://publish.obsidian.md/mobydiction/notes/%E2%89%88+Muller+-+The+Tyranny+of+Metrics
- https://publish.obsidian.md/mobydiction/notes/Honing+intuition
- https://publish.obsidian.md/mobydiction/notes/Objectivism+assumes+a+concrete%2C+knowable+world
- https://publish.obsidian.md/mobydiction/notes/Put+mental+models+in+conversation+with+one+another
- https://publish.obsidian.md/mobydiction/notes/Qualitative+and+quantitative+research+methods+each+have+trade-offs
- https://publish.obsidian.md/mobydiction/notes/Qualitative+and+quantitative+research+represent+different+philosophies+of+knowledge
- https://publish.obsidian.md/mobydiction/notes/Qualitative+research+excels+at+explanation
- https://publish.obsidian.md/mobydiction/notes/Quant+data+is+lossy
- https://publish.obsidian.md/mobydiction/notes/Quantitative+analysis+is+not+inherently+more+reliable+than+qualitative+data
- https://staery.io/
- https://superbits.co/
- https://web.eecs.utk.edu/~azh/blog/makinguselessstuff.html
- https://www.cleverism.com/skills-and-tools/technology-trend-awareness/
- https://www.crittercism.com/
- https://www.momos.io/
- https://www.newgenapps.com/blog/how-to-stay-on-top-of-the-latest-business-technology-innovations/
- https://www.youtube.com/@dwarvesfoundation2350
- https://www.youtube.com/watch?v=9xf13VRNPp8
Note: 89 further external links answer 403/429/999 to bots (npmjs, LinkedIn, Quora, nytimes...); most are alive for humans and are excluded above.
Contributor guide
Research direction
Start with content/memos.json and the listed source pages in the vault, then inspect their link targets and frontmatter for malformed mailtos, scheme-less URLs, retired paths, and missing redirects. Resolve the links or record the editorial ownership decisions for the /arc and retired-service cases; done means the reported content-layer link failures are addressed.
Written by the indexing model from the issue text.
Assessment
- Domain
- content, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100