@inkeep/open-knowledge 0.71.0-beta.6 → 0.71.0-beta.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/skills/packs/codebase-wiki/references/generate-and-refresh.md +1 -1
- package/dist/assets/skills/packs/knowledge-base/SKILL.md +2 -0
- package/dist/assets/skills/project/SKILL.md +1 -1
- package/dist/assets/skills/project/references/linking.md +3 -2
- package/dist/cli.mjs +67 -66
- package/dist/config-schema.json +11 -1
- package/dist/config.project.schema.json +11 -1
- package/dist/constants-C00Z0Vc5.mjs +1 -0
- package/dist/dist-DKlhl927.mjs +2096 -0
- package/dist/dist-qYD3pfVS.mjs +1 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +153 -153
- package/dist/{init-DJozyAP4.mjs → init-387Sgpjd.mjs} +61 -61
- package/dist/init-C7UroSzZ.mjs +1 -0
- package/dist/{launch-json-removal-CLXqZ8FV.mjs → launch-json-removal-MGSO0hCE.mjs} +1 -1
- package/dist/{loader-OHqd0KW8.mjs → loader-BIfbDx-U.mjs} +1 -1
- package/dist/loader-D30YP3u7.mjs +1 -0
- package/dist/{md-manager-BGnqyqi1-BnHkV2Y4.mjs → md-manager-BGnqyqi1-CZVfdoIA.mjs} +160 -160
- package/dist/{open-browser-BD03Xcs2.mjs → open-browser-F_j_IYn7.mjs} +1 -1
- package/dist/parse-worker.mjs +1 -1
- package/dist/preview-DhllQMxZ.mjs +1 -0
- package/dist/{preview-Dnpx-15V.mjs → preview-uSl6g7mr.mjs} +1 -1
- package/dist/public/assets/{ActivityModeContent-BJdaznjT.js → ActivityModeContent-BqhnPq_a.js} +1 -1
- package/dist/public/assets/{AddPropertiesButton-CWXtIJBB.js → AddPropertiesButton-BR0KmL9Y.js} +2 -2
- package/dist/public/assets/{AgentDiffPane-Bgb-TqdH.js → AgentDiffPane-GRcu0_tu.js} +1 -1
- package/dist/public/assets/{AgentThreadClientBinder-DpyzkD9R.js → AgentThreadClientBinder-DybMgazg.js} +1 -1
- package/dist/public/assets/{BugReportHistory-NoOgL4e-.js → BugReportHistory-DbM8sn96.js} +1 -1
- package/dist/public/assets/{BugReportHistoryDialog-DYkbQ_VP.js → BugReportHistoryDialog-B6I-9wxu.js} +1 -1
- package/dist/public/assets/{CodeMirrorPropInput-Btu3mHtw.js → CodeMirrorPropInput-CwY0lpkU.js} +1 -1
- package/dist/public/assets/{ConsentDialogBody-Co7zxbd1.js → ConsentDialogBody-B_lo3uhI.js} +1 -1
- package/dist/public/assets/{DiffViewBoundary-CjYhHYXW.js → DiffViewBoundary-CWJp6t9z.js} +1 -1
- package/dist/public/assets/{DocumentContext-Ds-fn6hr.js → DocumentContext-Ds92VnyR.js} +1 -1
- package/dist/public/assets/{EditorModeToggle-dclY5DGp.js → EditorModeToggle-Dt4YO01K.js} +1 -1
- package/dist/public/assets/{EnableSyncConfirmDialog-CY7bePze.js → EnableSyncConfirmDialog-Cn-EqPjx.js} +1 -1
- package/dist/public/assets/{ExcalidrawDocEditor-7BkV5yaY.js → ExcalidrawDocEditor-BYcJf1DQ.js} +1 -1
- package/dist/public/assets/FeedbackForm-BCEjZyZp.js +1 -0
- package/dist/public/assets/{GraphPanel-CAy7iK1-.js → GraphPanel-BSDs51EQ.js} +1 -1
- package/dist/public/assets/{ImageAttachments-CckZxudE.js → ImageAttachments-bSsPilJg.js} +1 -1
- package/dist/public/assets/{ImportSkillDialog-CM7GHBVC.js → ImportSkillDialog-DVqR9Tkt.js} +1 -1
- package/dist/public/assets/{LintConfigEditor-D2adiJ_F.js → LintConfigEditor-B-Ta5KRp.js} +1 -1
- package/dist/public/assets/{ManagedArtifactProperties-biGQX3ij.js → ManagedArtifactProperties-DDsNEt0I.js} +1 -1
- package/dist/public/assets/ManagedArtifactProperties-SrrrT90P.js +1 -0
- package/dist/public/assets/{MermaidDocEditor-BUTIxTnE.js → MermaidDocEditor-CqJr78rm.js} +1 -1
- package/dist/public/assets/{PropertyDisplayRow-fM_A-_6U.js → PropertyDisplayRow-CzRqJYk5.js} +1 -1
- package/dist/public/assets/{RegisteredAgentIcon-Bm7qna_x.js → RegisteredAgentIcon-DMGzGpgO.js} +1 -1
- package/dist/public/assets/{ReportBugDialogBody-Bv7pQbuO.js → ReportBugDialogBody-g5Q3mbZH.js} +1 -1
- package/dist/public/assets/{ReportBugMenuTrigger-0PV_UPMP.js → ReportBugMenuTrigger-DYFailxM.js} +2 -2
- package/dist/public/assets/{SchemaConfigEditor-VAFLWTdf.js → SchemaConfigEditor-DnuDmOi6.js} +1 -1
- package/dist/public/assets/{SessionsHost-ChTej8aQ.js → SessionsHost-DkMgb_Xo.js} +2 -2
- package/dist/public/assets/SettingsDialogBody-BwgdW1bR.js +12 -0
- package/dist/public/assets/{ShareBranchSwitchDialog-DVGxVZvK.js → ShareBranchSwitchDialog-CJQ4GB6s.js} +1 -1
- package/dist/public/assets/{ShareReceiveDialog-D4hyoVKV.js → ShareReceiveDialog-D6i_iBQ2.js} +1 -1
- package/dist/public/assets/{ShareReceiveMissDialog-AD5BnGhc.js → ShareReceiveMissDialog-CWBkt-VH.js} +1 -1
- package/dist/public/assets/{SkillCostValue-DMXVUaE7.js → SkillCostValue-CBfC2ips.js} +1 -1
- package/dist/public/assets/{SkillEditBanner-D9FB_lST.js → SkillEditBanner-BlIGzLHz.js} +1 -1
- package/dist/public/assets/{SkillForkDialog-DtSVNYK4.js → SkillForkDialog-CgsMSc30.js} +1 -1
- package/dist/public/assets/{SkillInstallMenu-BuFRSp_z.js → SkillInstallMenu-ZNyIgqME.js} +1 -1
- package/dist/public/assets/{SkillOriginInline-BW_RoHYE.js → SkillOriginInline-enwQuYHp.js} +1 -1
- package/dist/public/assets/{SkillToolbarControls-BKD6xxHt.js → SkillToolbarControls-BixKWJNq.js} +1 -1
- package/dist/public/assets/{SlidesToolbarControls-8odjAztJ.js → SlidesToolbarControls-BUC_eJlL.js} +1 -1
- package/dist/public/assets/{SourceEditor-C7uucUJz.js → SourceEditor-Crn5Dn8j.js} +1 -1
- package/dist/public/assets/{TerminalPanel-CfiR68PD.js → TerminalPanel-CBeAAbrl.js} +1 -1
- package/dist/public/assets/{TerminalWindowApp-CmC7nqwp.js → TerminalWindowApp-CQ-nswFU.js} +1 -1
- package/dist/public/assets/{TextDocEditor-eGnW8YYf.js → TextDocEditor-BHMLQEPg.js} +1 -1
- package/dist/public/assets/{ThreadView-Bzyz7WGW.js → ThreadView-VQPrmnXZ.js} +1 -1
- package/dist/public/assets/{TimelineDiffPane-BrwPPIS_.js → TimelineDiffPane-Cf5pF4wb.js} +1 -1
- package/dist/public/assets/{agent-diff-store-D-0KFcBI.js → agent-diff-store-DDoqxkng.js} +1 -1
- package/dist/public/assets/{auth-state-cache-DI1ZZBIU.js → auth-state-cache-D2eEmOb0.js} +1 -1
- package/dist/public/assets/{bug-report-send-manager-B5xbQpHt.js → bug-report-send-manager-TbN4yaBB.js} +1 -1
- package/dist/public/assets/client-version-C6hjE838.js +1 -0
- package/dist/public/assets/{comment-chips-Ckz0ppef.js → comment-chips-CwiTG6Bg.js} +1 -1
- package/dist/public/assets/{config-provider-C1jgKj52.js → config-provider-vQEMG7Nb.js} +3 -3
- package/dist/public/assets/{dist-DbRnfSz4.js → dist-D9bF1HlE.js} +106 -106
- package/dist/public/assets/{doc-hash-xMWnMdX4.js → doc-hash-8FM9bAVM.js} +1 -1
- package/dist/public/assets/{doc-undo-manager-Ch4SaORf.js → doc-undo-manager-H8KFHOBe.js} +1 -1
- package/dist/public/assets/{documents-events-CgeDb9QZ.js → documents-events-CDRChc0H.js} +1 -1
- package/dist/public/assets/{file-tree-adapter-B41-ZDHD.js → file-tree-adapter-By107gc7.js} +1 -1
- package/dist/public/assets/{file-tree-utils-DzFH_0CO.js → file-tree-utils-DMzGqq6M.js} +1 -1
- package/dist/public/assets/{folder-config-api-gItnLltV.js → folder-config-api-CTQSuqyE.js} +1 -1
- package/dist/public/assets/i18n-B_wD5kF7.js +1 -0
- package/dist/public/assets/{index-BD5kzJoS.js → index-BSEDm127.js} +8 -8
- package/dist/public/assets/{launcher-selection-CnKhsntZ.js → launcher-selection-Dq-Iaz-L.js} +1 -1
- package/dist/public/assets/{lint-config-client-B2LNzQAQ.js → lint-config-client-DqYHlt4A.js} +1 -1
- package/dist/public/assets/{markdownlint-rule-browser-D1aD4zPr.js → markdownlint-rule-browser-DrdibywL.js} +1 -1
- package/dist/public/assets/{messages-y8_jNBCz.js → messages-1LOOFG95.js} +1 -1
- package/dist/public/assets/{messages-BXPO00AB.js → messages-BSC5unlW.js} +1 -1
- package/dist/public/assets/{messages-D_FOmYUB.js → messages-BTgz3B0o.js} +1 -1
- package/dist/public/assets/{messages-CP6dJaKR.js → messages-C3--iCKr.js} +1 -1
- package/dist/public/assets/{messages-D6neQG-E.js → messages-C7VPCAvR.js} +1 -1
- package/dist/public/assets/{messages-UMvjOgaE.js → messages-CDtZN7oO.js} +1 -1
- package/dist/public/assets/{messages-BNu69c9T.js → messages-CcvMPPNj.js} +1 -1
- package/dist/public/assets/{messages-fNPV3zbW.js → messages-Cn1JY5rt.js} +1 -1
- package/dist/public/assets/{messages-COnreDlS.js → messages-CoNpmm1Q.js} +1 -1
- package/dist/public/assets/{messages-DXNxHZer.js → messages-Dk1dP4RM.js} +1 -1
- package/dist/public/assets/{messages-C3-Gi9UU.js → messages-aRsNVdyl.js} +1 -1
- package/dist/public/assets/{messages-CnkmjihR.js → messages-rCFMyEKG.js} +1 -1
- package/dist/public/assets/{page-list-cache-CjTFJKo7.js → page-list-cache-V-AO2spP.js} +1 -1
- package/dist/public/assets/{pending-receive-nav-store-B95_ZpJ4.js → pending-receive-nav-store-CvNXy4mg.js} +1 -1
- package/dist/public/assets/{progress-ByyPqwYa.js → progress-DYHLJifq.js} +1 -1
- package/dist/public/assets/{project-paths-OL9RkD5R.js → project-paths-B-8h-2Qm.js} +1 -1
- package/dist/public/assets/{prop-types-CHZ5GpmQ.js → prop-types-BiZ7iVmx.js} +1 -1
- package/dist/public/assets/{receive-store-C6AmiC1-.js → receive-store-B6Bh7pE6.js} +1 -1
- package/dist/public/assets/{selection-context-DXlbV8vJ.js → selection-context-DTAo2N4-.js} +1 -1
- package/dist/public/assets/{skill-scope-BgVsrS6b.js → skill-scope-fCMVJzDA.js} +1 -1
- package/dist/public/assets/{skills-api-Dk5al98n.js → skills-api-BS-ceHz7.js} +1 -1
- package/dist/public/assets/{src-BFdtDZAW.js → src-DVgbKFTh.js} +1 -1
- package/dist/public/assets/{startup-marks-DxOAcnz5.js → startup-marks-CobjbgVK.js} +1 -1
- package/dist/public/assets/{tag-pill-input-CQfRLAYz.js → tag-pill-input-DJbRn5A_.js} +1 -1
- package/dist/public/assets/{target-navigation-intent-BS7YXP0N.js → target-navigation-intent-R9KdQ2Fu.js} +1 -1
- package/dist/public/assets/{telemetry-impl-Bi_SKDTr.js → telemetry-impl-BQKcjZge.js} +1 -1
- package/dist/public/assets/{telemetry-startup-DiFIuo5_.js → telemetry-startup-Bi2mCjH6.js} +1 -1
- package/dist/public/assets/{terminal-cli-display-DiFJCQCx.js → terminal-cli-display-BWdubsSN.js} +1 -1
- package/dist/public/assets/{terminal-command-events-Vv4PGtMR.js → terminal-command-events-B7Whrr3Y.js} +1 -1
- package/dist/public/assets/{terminal-telemetry-BAc42SWB.js → terminal-telemetry-_cBq_q5j.js} +1 -1
- package/dist/public/assets/typing-burst-detector-DDeRafVp.js +8 -0
- package/dist/public/assets/{uninstall-BqrgrhoX.js → uninstall-TIAWU-c7.js} +1 -1
- package/dist/public/assets/{use-activity-panel-C8_6jEhu.js → use-activity-panel-BLPaYwcE.js} +1 -1
- package/dist/public/assets/{use-apply-config-color-theme-DkdH-hj1.js → use-apply-config-color-theme-Uti0nOvh.js} +1 -1
- package/dist/public/assets/{use-collab-url-m1hL6d8r.js → use-collab-url-ZMEUMnOG.js} +1 -1
- package/dist/public/assets/{use-conflicts-Bn99xsOZ.js → use-conflicts-BdwovYNz.js} +1 -1
- package/dist/public/assets/{use-live-xterm-theme-DskS89_F.js → use-live-xterm-theme-BochpJxE.js} +1 -1
- package/dist/public/assets/{use-open-skill-CH8ZramM.js → use-open-skill-CqDVd0Ai.js} +1 -1
- package/dist/public/assets/{use-settings-route-Dn37NV_v.js → use-settings-route-CmOczB8a.js} +1 -1
- package/dist/public/assets/{use-skill-origin-Ck9TjCRI.js → use-skill-origin-D6OucFH_.js} +1 -1
- package/dist/public/assets/{use-skills-Cb2xrAj_.js → use-skills-1LOwCFf7.js} +1 -1
- package/dist/public/assets/{use-terminal-enabled-CgDjbKYK.js → use-terminal-enabled-xfsz5-rq.js} +1 -1
- package/dist/public/assets/{use-timeline-entry-diff-Ddrq1TdM.js → use-timeline-entry-diff-vONz71XF.js} +1 -1
- package/dist/public/assets/{use-workspace-BmKjRyd0.js → use-workspace-BjpBfGfA.js} +1 -1
- package/dist/public/index.html +53 -53
- package/dist/public/uninstall.html +4 -4
- package/dist/registry-probes-ChCkpRhO.mjs +17 -0
- package/dist/{removal-file-path-Bov8OpTu.mjs → removal-file-path-C1pITksa.mjs} +1 -1
- package/dist/{repair-launch-json-D0ZDjWKk.mjs → repair-launch-json-tibd9SoD.mjs} +1 -1
- package/dist/{repair-mcp-configs-BHLHBbhv.mjs → repair-mcp-configs-PbNJrWyh.mjs} +1 -1
- package/dist/schemas/v0/config.project.schema.json +11 -1
- package/dist/src-Dao62r3J.mjs +11 -0
- package/dist/src-Daw_qqcs.mjs +1 -0
- package/dist/{start-M8sUGkJO.mjs → start-Cy_9PclH.mjs} +3 -3
- package/dist/start-DEBpwCUT.mjs +1 -0
- package/package.json +4 -4
- package/dist/constants-PI7Uk_9U.mjs +0 -1
- package/dist/dist-Cu24mffC.mjs +0 -1
- package/dist/dist-WGEb77w6.mjs +0 -2096
- package/dist/init-Cxs22dc-.mjs +0 -1
- package/dist/loader-yEu9PpEQ.mjs +0 -1
- package/dist/preview-DPw19SOR.mjs +0 -1
- package/dist/public/assets/FeedbackForm-D6x1Kme5.js +0 -1
- package/dist/public/assets/ManagedArtifactProperties-BjI35KVX.js +0 -1
- package/dist/public/assets/SettingsDialogBody-BwNmDXzH.js +0 -12
- package/dist/public/assets/client-version-9_WlPld6.js +0 -1
- package/dist/public/assets/i18n-Ca-WWW0i.js +0 -1
- package/dist/public/assets/typing-burst-detector-7NR-qtpk.js +0 -8
- package/dist/registry-probes-5hlj224V.mjs +0 -17
- package/dist/src-BC24Oo35.mjs +0 -1
- package/dist/src-DR9TaQqK.mjs +0 -11
- package/dist/start-B_atGdZj.mjs +0 -1
|
@@ -105,7 +105,7 @@ Atomic pages for domain terms and core abstractions (one term each): definition,
|
|
|
105
105
|
2. Run `links({ kind: ["orphans", "hubs"] })`, then `audit`:
|
|
106
106
|
- **orphans** — pages nothing links to. Adopt each by linking it from OVERVIEW or a relevant section page (or, rarely, justify it as intentionally standalone).
|
|
107
107
|
- **hubs** — ranks by *inbound* links. Confirm your **concept/module pages** show up here — that's the signal cross-linking actually happened. Don't expect `OVERVIEW`: a freshly authored nav page has almost no inbound links, so it won't appear (and that's correct — its coverage was checked in step 1).
|
|
108
|
-
- **`audit`** —
|
|
108
|
+
- **`audit`** — fix every reported finding. A clean result proves every checked link resolves only when `brokenLinkSuppression` is absent; when that marker is present, reserved-log findings were deliberately withheld and are not repair work. (This covers links to source files too, not just `.md`/`.mdx`: it's the `orphans`/`hubs` graph above that tracks doc-to-doc edges only. `brokenLinks` on each write/edit is the same check per-write, per the code-reference rule above.)
|
|
109
109
|
3. Append a `wiki/log.md` entry (see *Log discipline*).
|
|
110
110
|
4. Tell the user the wiki is ready and surface the OVERVIEW preview URL.
|
|
111
111
|
|
|
@@ -77,6 +77,8 @@ Log: `ingest` runs (new sources), `research` / `consolidate` runs (provisional o
|
|
|
77
77
|
|
|
78
78
|
**Reference docs as markdown links, not bare paths** — `[path/to/doc](./path/to/doc.md)`, so the entry shows up in `links({ kind: "backlinks" })` for those docs. A bare path string does not register in the graph.
|
|
79
79
|
|
|
80
|
+
Because this append-only `log.md` is a reserved log, its broken links may be withheld from `audit`. When a clean result carries `brokenLinkSuppression`, it is filtered rather than proof that every raw link resolves; do not rewrite log history to clear those links.
|
|
81
|
+
|
|
80
82
|
Entry shape:
|
|
81
83
|
|
|
82
84
|
```markdown
|
|
@@ -79,7 +79,7 @@ KB docs are factual artifacts: every claim traceable, and **the source lives ins
|
|
|
79
79
|
- **No evidence?** Search and ingest the result, OR mark `(TODO: needs source)`, OR don't write the claim. Do NOT fabricate — unsourced speculation rots into untraceable tribal lore.
|
|
80
80
|
## Linking — standard markdown links (MUST)
|
|
81
81
|
|
|
82
|
-
Link every noun-phrase that names another document — `[text](./relative/path.md)` — and link liberally. **Every link must resolve to a doc that exists by the time you're done** (a same-pass forward-reference you create later in the pass is fine; for one that genuinely won't exist, leave the mention as plain prose + a tracked task). Never backtick a link (`` `[text](./foo.md)` `` is a bug) and never use HTML `<a>`. **
|
|
82
|
+
Link every noun-phrase that names another document — `[text](./relative/path.md)` — and link liberally. **Every link must resolve to a doc that exists by the time you're done** (a same-pass forward-reference you create later in the pass is fine; for one that genuinely won't exist, leave the mention as plain prose + a tracked task). Never backtick a link (`` `[text](./foo.md)` `` is a bug) and never use HTML `<a>`. **After every `write`/`edit`, read `brokenLinks`: fix reported `href`s; `[]` means all links resolve unless `brokenLinkSuppression` withheld reserved-log findings; those are not yours to repair.** `audit` is authoritative; its same marker carries the same meaning. External web sources are NOT inline body links (see Grounding). Full rule set + the `[[Page]]` legacy note: `references/linking.md`.
|
|
83
83
|
|
|
84
84
|
## Folders, frontmatter, templates
|
|
85
85
|
|
|
@@ -9,8 +9,9 @@
|
|
|
9
9
|
- **Every link must resolve to a doc that exists by the time you're done.** Within a single multi-doc authoring pass, linking a page you'll create later in the same pass is fine — `brokenLinks` reports it as `no-such-doc` until the target lands, an expected transient forward-reference rather than a wrong-path error. What's not acceptable is *leaving* a dead link behind: create the target in the same pass, or record it as a tracked task (`TaskCreate`, or your host's task tool — if the host has none, tell the user) and leave the mention as plain prose.
|
|
10
10
|
- **Never wrap a link in backticks.** `` `[text](./foo.md)` `` is a bug — the backticks make it render as literal code rather than a link.
|
|
11
11
|
- **Never use HTML anchors** (`<a href="...">`). Markdown link syntax only.
|
|
12
|
-
- **`brokenLinks` on the write/edit response is your primary check — read it before walking away.** Every `write`/`edit` returns `brokenLinks` in the SAME payload: `[]` means every outbound link resolves; a populated list names each broken `href` with its `resolvedTo` + `reason` (`no-such-doc` = resolved to a doc that doesn't exist; `no-such-file` = resolved to a linked asset / source file that isn't on disk at that path; `unresolvable` = the path escapes the content root, usually one `../` too many). This validates **every** local link, not just doc links: a wrong-depth `[src](../../foo.py)` to a source file is caught too. It is report-only — the write landed regardless; fix or remove every one in a follow-up `edit`.
|
|
13
|
-
-
|
|
12
|
+
- **`brokenLinks` on the write/edit response is your primary check — read it before walking away.** Every `write`/`edit` returns `brokenLinks` in the SAME payload: `[]` means every outbound link resolves only when `brokenLinkSuppression` is absent; a populated list names each broken `href` with its `resolvedTo` + `reason` (`no-such-doc` = resolved to a doc that doesn't exist; `no-such-file` = resolved to a linked asset / source file that isn't on disk at that path; `unresolvable` = the path escapes the content root, usually one `../` too many). This validates **every** local link, not just doc links: a wrong-depth `[src](../../foo.py)` to a source file is caught too. It is report-only — the write landed regardless; fix or remove every one in a follow-up `edit`.
|
|
13
|
+
- **An empty `brokenLinks` alongside a `brokenLinkSuppression` does not mean every link resolves.** That field appears only when the project's reserved-log policy withheld findings, and it carries `{ reason: "reserved-log-policy", count: N }` and nothing else. No href comes back because none of them is repair work: the write landed in a lowercase-stemmed `log.md` or `log.mdx`, an append-only history whose entries deliberately reference pages that moved or were never written. **Never rewrite a reserved log's existing entries to clear a link.** Append new entries instead, and treat `links({ kind: "dead" })` on that file as a deliberate audit of raw state, never as a repair queue. The project can turn the policy off (**Settings ▸ This project ▸ Preferences ▸ Content rules**), in which case those findings come back through the normal channels.
|
|
14
|
+
- **`audit` is the authoritative end-state link check** — run it once at the end of a multi-doc pass. Read `brokenLinkSuppression` on its result too: when present, the reserved-log policy withheld `count` findings, so a clean result is filtered rather than proof that every raw link resolves. Do not repair those log findings; use `links({ kind: "dead" })` only when deliberately inspecting raw state. Caveat: `audit` reports links only while the project's `validation.links` setting is not `off` (at `off` it returns clean with no warning), so if the project has silenced link validation, fall back to `links({ kind: "dead" })` — the unconditional read of the dead-link graph, which also lists skill-bundle docs excluded from the Problems plane (optionally scoped: `links({ kind: "dead", sourceDocuments: ["your/doc"] })`). Otherwise `links` is the graph-navigation reader, supplemental to `audit`, not a substitute. Companion `links` kinds: `backlinks` (incoming), `forward` (outgoing), `orphans` (no incoming), `hubs` (high-incoming), `suggest` (untextualized mentions worth linking).
|
|
14
15
|
- **The tool and the editor agree.** Both resolve a bare name the same way — exact, then slug, then folder index, then basename — so a link that opens when you click it is never reported dead, and a link reported dead is genuinely unresolvable. A target that names an asset, or names nothing at all, stays silent rather than being reported as a broken doc link.
|
|
15
16
|
|
|
16
17
|
**Note on wiki-link syntax (`[[Page]]`):** the parser still handles it for legacy content, but it's NO LONGER the recommended default. Write new content with standard markdown links per above. Seed-pack templates (`ok seed --pack <name>`) may still emit `[[Page]]` placeholders inside template body text — those are legacy. When you instantiate a seed-pack template, replace the legacy placeholders with standard markdown links during the `{shape}`-fill pass.
|