@creativeaitools/agent-wiki 2.0.0
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/AGENT-WIKI-SPEC-v2.md +2584 -0
- package/AGENTS.md +314 -0
- package/INBOX.md +19 -0
- package/LICENSE +21 -0
- package/ONBOARD.md +373 -0
- package/README.md +429 -0
- package/WIKI.md +706 -0
- package/_system/config.example.json +105 -0
- package/dist/src/catalog.js +66 -0
- package/dist/src/cli.js +330 -0
- package/dist/src/compile.js +104 -0
- package/dist/src/config.js +84 -0
- package/dist/src/lifecycle.js +171 -0
- package/dist/src/migrate.js +26 -0
- package/dist/src/onboard.js +159 -0
- package/dist/src/page.js +188 -0
- package/dist/src/registry.js +74 -0
- package/dist/src/schedule-prompts.js +74 -0
- package/dist/src/upgrade.js +215 -0
- package/dist/src/wiki-utils.js +112 -0
- package/dist/src/workspace.js +198 -0
- package/package.json +54 -0
- package/skills/compile-wiki/SKILL.md +140 -0
- package/skills/extract-knowledge-primitives/SKILL.md +350 -0
- package/skills/import-link/SKILL.md +101 -0
- package/skills/import-link/config.json +12 -0
- package/skills/process-inbox/SKILL.md +255 -0
- package/skills/process-workspace-sources/SKILL.md +127 -0
- package/skills/update-overview/SKILL.md +140 -0
- package/skills/write-synthesis/SKILL.md +154 -0
package/WIKI.md
ADDED
|
@@ -0,0 +1,706 @@
|
|
|
1
|
+
# WIKI.md
|
|
2
|
+
|
|
3
|
+
Human-readable schema and editorial guide for Agent Wiki.
|
|
4
|
+
Spec version: v2
|
|
5
|
+
Last updated: 2026-05-02
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 1. What this wiki is
|
|
10
|
+
|
|
11
|
+
This wiki is a structured knowledge base designed to be useful for both humans and AI agents.
|
|
12
|
+
|
|
13
|
+
This file is the compact runtime schema and editorial guide for ordinary wiki operations. User agents should prefer this file for page schemas, status enums, ID formats, evidence rules, and common examples.
|
|
14
|
+
|
|
15
|
+
The full project and development contract lives in [[AGENT-WIKI-SPEC-v2]]. Use the full spec when changing project behavior, scripts, skills, configuration policy, validation behavior, or when this file is insufficient. If this file conflicts with the full spec, the full spec remains canonical until the conflict is resolved.
|
|
16
|
+
|
|
17
|
+
It separates:
|
|
18
|
+
- **things** from **ideas**
|
|
19
|
+
- **claims** from **evidence**
|
|
20
|
+
- **sources** from **summaries**
|
|
21
|
+
- **facts** from **interpretations**
|
|
22
|
+
- **human-edited content** from **compiled/generated artifacts**
|
|
23
|
+
- **page structure** from **compiled machine caches**
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 1.1 Documentation layers
|
|
28
|
+
|
|
29
|
+
| File | Use |
|
|
30
|
+
|---|---|
|
|
31
|
+
| [[AGENTS]] | Agent behavior contract: preservation, logging, linking, generated files, and editing boundaries |
|
|
32
|
+
| [[WIKI#4.1 Common runtime schemas]] | Compact runtime schema and editorial reference for ordinary vault work |
|
|
33
|
+
| [[INBOX]] | Short pointer to inbox rules and the `process-inbox` skill |
|
|
34
|
+
| [[ONBOARD]] | First-run setup and local environment workflow |
|
|
35
|
+
| [[AGENT-WIKI-SPEC-v2]] | Full project/development contract and detailed implementation reference |
|
|
36
|
+
|
|
37
|
+
Agents should load the smallest document that answers the task. Routine source import, inbox processing, extraction, overview, and compile work should not require loading the full spec unless there is ambiguity.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. Folder meanings
|
|
42
|
+
|
|
43
|
+
Current vault structure:
|
|
44
|
+
|
|
45
|
+
```text
|
|
46
|
+
<vault>/
|
|
47
|
+
AGENTS.md
|
|
48
|
+
AGENT-WIKI-SPEC-v2.md
|
|
49
|
+
INBOX.md
|
|
50
|
+
ONBOARD.md
|
|
51
|
+
README.md
|
|
52
|
+
WIKI.md
|
|
53
|
+
index.md
|
|
54
|
+
overview.md
|
|
55
|
+
|
|
56
|
+
sources/
|
|
57
|
+
parts/
|
|
58
|
+
entities/
|
|
59
|
+
concepts/
|
|
60
|
+
claims/
|
|
61
|
+
syntheses/
|
|
62
|
+
questions/
|
|
63
|
+
reports/
|
|
64
|
+
skills/
|
|
65
|
+
|
|
66
|
+
_inbox/
|
|
67
|
+
raw/
|
|
68
|
+
_attachments/
|
|
69
|
+
_archive/
|
|
70
|
+
_system/
|
|
71
|
+
config.example.json
|
|
72
|
+
cache/
|
|
73
|
+
indexes/
|
|
74
|
+
logs/
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Fresh template checkouts may omit empty content and runtime folders. Initialization, import, and compile workflows create missing folders as needed.
|
|
78
|
+
|
|
79
|
+
| Folder | What goes here |
|
|
80
|
+
|---|---|
|
|
81
|
+
| `sources/` | Canonical source pages: webpages, PDFs, articles, transcripts, meeting notes, datasets |
|
|
82
|
+
| `sources/parts/` | Source part pages for large partitioned sources |
|
|
83
|
+
| `entities/` | Durable things: people, orgs, projects, products, systems, places, events, artifacts |
|
|
84
|
+
| `concepts/` | Abstract ideas and reusable instructions: definitions, methods, frameworks, workflows, runbooks, checklists |
|
|
85
|
+
| `claims/` | Standalone claim pages: individual atomic propositions with their own evidence and provenance |
|
|
86
|
+
| `syntheses/` | Maintained cross-source interpretations: overviews, analyses, comparisons, briefs, timelines |
|
|
87
|
+
| `questions/` | Unresolved uncertainties and research gaps |
|
|
88
|
+
| `reports/` | Generated maintenance views and dashboards |
|
|
89
|
+
| `skills/` | Agent skill definitions and supporting skill files |
|
|
90
|
+
| `_attachments/` | Attachments referenced by source or other pages (created on init, may be empty) |
|
|
91
|
+
| `_archive/` | Archived content no longer actively maintained (created on init, may be empty) |
|
|
92
|
+
| `_system/` | Machine-generated runtime and compile artifacts (do not hand-edit) |
|
|
93
|
+
| `_inbox/` | Raw intake queue for unprocessed items |
|
|
94
|
+
| `raw/` | Retained original raw files after inbox promotion |
|
|
95
|
+
|
|
96
|
+
Workspace-mode wikis use the same internal structure, but the wiki root is usually `workspace/wiki`. Source candidates can live outside the wiki directory and be discovered by the CLI, while deliberate captures can still land in the wiki's `_inbox/`. They become canonical evidence only after an agent creates `source` pages inside `wiki/sources/`.
|
|
97
|
+
|
|
98
|
+
`_system/config.json` is optional local operational configuration for tool policy and command preferences. It is not canonical vault knowledge, should not contain secrets, and should not be committed. `_system/config.example.json` is the tracked example shape. Optional `knownVaults` entries may map Obsidian vault names to absolute local paths so agents can resolve `obsidian://` cross-vault references for reading only.
|
|
99
|
+
|
|
100
|
+
Use `agent-wiki onboard --check --wiki-root PATH` for deterministic first-run onboarding and local setup probes. The command emits structured JSON for automation. Use `agent-wiki onboard --check --questions --wiki-root PATH` when an agent needs compact multiple-choice setup prompts for the user. Use `agent-wiki onboard --write-config` only after the user approves the exact local setup choices to persist.
|
|
101
|
+
|
|
102
|
+
Use `agent-wiki create-page` to scaffold new canonical pages from caller-supplied metadata and body content. It supports `source`, `entity`, `concept`, `claim`, `question`, and `synthesis` pages, including whole source pages, large-source parent manifests, source part pages, caller-supplied claim evidence records, and synthesis scope. It validates required frontmatter, IDs, filenames, duplicate IDs, target paths, subtype/status enums, required body content, supplied evidence shape, and required synthesis scope. It covers required schema fields, but does not automatically fill every optional recommended field such as `owner`, `summary`, `freshness`, or page-level `confidence`.
|
|
103
|
+
|
|
104
|
+
Each wiki root remains a single Agent Wiki. In vault mode, the repository or selected root is the wiki root. In workspace mode, the wiki root is usually `workspace/wiki`. The CLI may track multiple local Agent Wiki roots through the machine-local registry at `~/.config/agent-wiki/registry.json`. Registry entries are named Agent Wiki roots and can be selected with `agent-wiki --wiki NAME <command>`. The registry is local operator state, not canonical wiki knowledge, and should not be stored inside a wiki.
|
|
105
|
+
|
|
106
|
+
Use `agent-wiki list` to list registered wikis and paths. Use `agent-wiki check --all` for a light read-only registry health check across all registered wikis. Use `agent-wiki check --all --full` when compile and index validation should also run. Obsidian setup is optional and means opening the wiki root as an Obsidian vault; it does not change where skills or scripts write content. `knownVaults` does not create alternate write roots.
|
|
107
|
+
|
|
108
|
+
Use `agent-wiki schedule prompt process-inbox`, `agent-wiki schedule prompt extract-primitives`, and `agent-wiki schedule prompt update-overview` to print scheduled-agent prompts from the registry. These prompts are meant for external scheduled-task harnesses and remain skill-based; the CLI does not execute those workflows. By default they target all registered wikis. Pass wiki names or `--wiki NAME` to target a subset. Scheduled agents should log failures for one wiki and continue to the next.
|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
## 3. Page types
|
|
113
|
+
|
|
114
|
+
Every authored page has a `pageType` in its frontmatter.
|
|
115
|
+
|
|
116
|
+
| `pageType` | Folder | Purpose |
|
|
117
|
+
| ----------- | ------------- | ------------------------------------- |
|
|
118
|
+
| `source` | `sources/` | Information origin |
|
|
119
|
+
| `entity` | `entities/` | Durable thing |
|
|
120
|
+
| `concept` | `concepts/` | Abstract idea, definition, or reusable instruction |
|
|
121
|
+
| `claim` | `claims/` | Standalone atomic proposition |
|
|
122
|
+
| `synthesis` | `syntheses/` | Cross-source rollup or interpretation |
|
|
123
|
+
| `question` | `questions/` | Open question or research gap |
|
|
124
|
+
| `report` | `reports/` | Generated view or dashboard |
|
|
125
|
+
| `index` | `index.md` | Deterministic root page catalog |
|
|
126
|
+
| `overview` | `overview.md` | Human-facing vault landing page |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## 4. Required frontmatter
|
|
131
|
+
|
|
132
|
+
Every authored page (except purely generated reports and the generated root catalog) should include:
|
|
133
|
+
|
|
134
|
+
```yaml
|
|
135
|
+
id: <pageType>.<primitiveSubtype>.<slug>
|
|
136
|
+
pageType: <pageType>
|
|
137
|
+
title: <title>
|
|
138
|
+
status: <status>
|
|
139
|
+
createdAt: YYYY-MM-DD
|
|
140
|
+
updatedAt: YYYY-MM-DD
|
|
141
|
+
aliases: []
|
|
142
|
+
tags: []
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
Recommended additional fields:
|
|
146
|
+
|
|
147
|
+
```yaml
|
|
148
|
+
canonicalName: <canonicalName>
|
|
149
|
+
owner:
|
|
150
|
+
summary:
|
|
151
|
+
sourcePages: []
|
|
152
|
+
relatedPages: []
|
|
153
|
+
confidence:
|
|
154
|
+
freshness:
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## 4.1 Common runtime schemas
|
|
160
|
+
|
|
161
|
+
These compact templates cover routine agent work. Omit optional fields only when they do not apply or cannot be inferred without guessing.
|
|
162
|
+
|
|
163
|
+
### Source
|
|
164
|
+
|
|
165
|
+
```yaml
|
|
166
|
+
id: source.<yyyy-mm-dd>.<sourceType>.<sourceSlug>
|
|
167
|
+
pageType: source
|
|
168
|
+
title: <title>
|
|
169
|
+
status: unprocessed
|
|
170
|
+
sourceType: <sourceType>
|
|
171
|
+
sourceRole: whole
|
|
172
|
+
originUrl:
|
|
173
|
+
originPath:
|
|
174
|
+
publishedAt:
|
|
175
|
+
retrievedAt: YYYY-MM-DD
|
|
176
|
+
createdAt: YYYY-MM-DD
|
|
177
|
+
updatedAt: YYYY-MM-DD
|
|
178
|
+
aliases: []
|
|
179
|
+
tags: []
|
|
180
|
+
attachments: []
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
For large sources, use a short parent source and child part pages:
|
|
184
|
+
|
|
185
|
+
```yaml
|
|
186
|
+
id: source.<yyyy-mm-dd>.<sourceType>.<sourceSlug>
|
|
187
|
+
pageType: source
|
|
188
|
+
title: <title>
|
|
189
|
+
status: partitioned
|
|
190
|
+
sourceType: <sourceType>
|
|
191
|
+
sourceRole: parent
|
|
192
|
+
sourceParts:
|
|
193
|
+
- sources/parts/<yyyy-mm-dd>-<sourceType>-<sourceSlug>-part001.md
|
|
194
|
+
originUrl:
|
|
195
|
+
originPath:
|
|
196
|
+
createdAt: YYYY-MM-DD
|
|
197
|
+
updatedAt: YYYY-MM-DD
|
|
198
|
+
aliases: []
|
|
199
|
+
tags: []
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
```yaml
|
|
203
|
+
id: source.<yyyy-mm-dd>.<sourceType>.<sourceSlug>.part001
|
|
204
|
+
pageType: source
|
|
205
|
+
title: <title> - Part 1
|
|
206
|
+
status: unprocessed
|
|
207
|
+
sourceType: <sourceType>
|
|
208
|
+
sourceRole: part
|
|
209
|
+
parentSourceId: source.<yyyy-mm-dd>.<sourceType>.<sourceSlug>
|
|
210
|
+
partIndex: 1
|
|
211
|
+
partCount: <count>
|
|
212
|
+
locator: <page range, heading path, timestamp range, slide range, or section range>
|
|
213
|
+
originUrl:
|
|
214
|
+
originPath:
|
|
215
|
+
createdAt: YYYY-MM-DD
|
|
216
|
+
updatedAt: YYYY-MM-DD
|
|
217
|
+
aliases: []
|
|
218
|
+
tags: []
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
When conversion produced the Markdown source body, add available provenance:
|
|
222
|
+
|
|
223
|
+
```yaml
|
|
224
|
+
convertedAt: YYYY-MM-DD
|
|
225
|
+
conversionTool: <tool>
|
|
226
|
+
conversionToolVersion: <version>
|
|
227
|
+
conversionBackend: <backend>
|
|
228
|
+
conversionWarnings: []
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### Entity
|
|
232
|
+
|
|
233
|
+
```yaml
|
|
234
|
+
id: entity.<entityType>.<entitySlug>
|
|
235
|
+
pageType: entity
|
|
236
|
+
title: <title>
|
|
237
|
+
entityType: <entityType>
|
|
238
|
+
canonicalName: <canonicalName>
|
|
239
|
+
status: active
|
|
240
|
+
createdAt: YYYY-MM-DD
|
|
241
|
+
updatedAt: YYYY-MM-DD
|
|
242
|
+
aliases: []
|
|
243
|
+
tags: []
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Add a substantive Markdown body after the frontmatter. Describe the entity, why it matters in the vault, important aliases or identifiers, and known uncertainty.
|
|
247
|
+
|
|
248
|
+
### Concept
|
|
249
|
+
|
|
250
|
+
```yaml
|
|
251
|
+
id: concept.<conceptType>.<conceptSlug>
|
|
252
|
+
pageType: concept
|
|
253
|
+
title: <title>
|
|
254
|
+
conceptType: <conceptType>
|
|
255
|
+
status: active
|
|
256
|
+
createdAt: YYYY-MM-DD
|
|
257
|
+
updatedAt: YYYY-MM-DD
|
|
258
|
+
aliases: []
|
|
259
|
+
tags: []
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Add a substantive Markdown body after the frontmatter. Explain the concept, its boundaries, source-grounded examples or steps, and important distinctions.
|
|
263
|
+
|
|
264
|
+
### Claim Page
|
|
265
|
+
|
|
266
|
+
```yaml
|
|
267
|
+
id: claim.<claimType>.<claimSlug>
|
|
268
|
+
pageType: claim
|
|
269
|
+
title: <title>
|
|
270
|
+
claimType: <claimType>
|
|
271
|
+
status: unverified
|
|
272
|
+
confidence: 0.60
|
|
273
|
+
text: <one atomic proposition>
|
|
274
|
+
subjectPageId:
|
|
275
|
+
sourceIds: []
|
|
276
|
+
evidence: []
|
|
277
|
+
createdAt: YYYY-MM-DD
|
|
278
|
+
updatedAt: YYYY-MM-DD
|
|
279
|
+
aliases: []
|
|
280
|
+
tags: []
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Add a substantive Markdown body after the frontmatter. Restate the atomic proposition in prose, summarize the evidence posture, and note caveats or uncertainty.
|
|
284
|
+
|
|
285
|
+
### Synthesis
|
|
286
|
+
|
|
287
|
+
```yaml
|
|
288
|
+
id: synthesis.<synthesisType>.<synthesisSlug>
|
|
289
|
+
pageType: synthesis
|
|
290
|
+
title: <title>
|
|
291
|
+
synthesisType: <synthesisType>
|
|
292
|
+
scope: <scope>
|
|
293
|
+
status: active
|
|
294
|
+
sourcePages: []
|
|
295
|
+
derivedClaims: []
|
|
296
|
+
createdAt: YYYY-MM-DD
|
|
297
|
+
updatedAt: YYYY-MM-DD
|
|
298
|
+
aliases: []
|
|
299
|
+
tags: []
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
Add a substantive Markdown body after the frontmatter. Provide maintained narrative interpretation, scope, source basis, current conclusions, and open tensions.
|
|
303
|
+
|
|
304
|
+
Create synthesis pages when the user needs durable cross-source interpretation, such as a summary, overview, analysis, timeline, brief, or comparison. Do not use synthesis pages for a single atomic proposition, raw captured material, unresolved questions, deterministic reports, or whole-vault landing prose. List source basis in `sourcePages` when sources are used, list tracked claim dependencies in `derivedClaims` when claim pages are used, and preserve uncertainty or contradictions in the body prose.
|
|
305
|
+
|
|
306
|
+
### Embedded Claim
|
|
307
|
+
|
|
308
|
+
```yaml
|
|
309
|
+
claims:
|
|
310
|
+
- id: claim.<claimType>.<claimSlug>
|
|
311
|
+
text: <one atomic proposition>
|
|
312
|
+
status: unverified
|
|
313
|
+
confidence: 0.60
|
|
314
|
+
claimType: <claimType>
|
|
315
|
+
relatedClaimIds: []
|
|
316
|
+
evidence: []
|
|
317
|
+
createdAt: YYYY-MM-DD
|
|
318
|
+
updatedAt: YYYY-MM-DD
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
### Evidence Entry
|
|
322
|
+
|
|
323
|
+
```yaml
|
|
324
|
+
evidence:
|
|
325
|
+
- id: evidence.<kind>.<relation>.<stable-suffix>
|
|
326
|
+
sourceId: source.<yyyy-mm-dd>.<sourceType>.<sourceSlug>
|
|
327
|
+
path: sources/<source-file>.md
|
|
328
|
+
lines:
|
|
329
|
+
kind: quote
|
|
330
|
+
relation: context_only
|
|
331
|
+
weight: 0.60
|
|
332
|
+
note:
|
|
333
|
+
excerpt:
|
|
334
|
+
retrievedAt: YYYY-MM-DD
|
|
335
|
+
updatedAt: YYYY-MM-DD
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
### Question
|
|
339
|
+
|
|
340
|
+
```yaml
|
|
341
|
+
id: question.<domain>.<questionSlug>
|
|
342
|
+
pageType: question
|
|
343
|
+
title: <question>
|
|
344
|
+
priority: medium
|
|
345
|
+
status: open
|
|
346
|
+
relatedClaims: []
|
|
347
|
+
relatedPages: []
|
|
348
|
+
openedAt: YYYY-MM-DD
|
|
349
|
+
createdAt: YYYY-MM-DD
|
|
350
|
+
updatedAt: YYYY-MM-DD
|
|
351
|
+
aliases: []
|
|
352
|
+
tags: []
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Add a substantive Markdown body after the frontmatter. Explain why the question exists, what is already known, what remains unresolved, and what would count as resolution.
|
|
356
|
+
|
|
357
|
+
### Relation
|
|
358
|
+
|
|
359
|
+
```yaml
|
|
360
|
+
relations:
|
|
361
|
+
- subject: <subject-id>
|
|
362
|
+
predicate: <predicate>
|
|
363
|
+
object: <object-id>
|
|
364
|
+
confidence: 0.60
|
|
365
|
+
sourceClaimIds: []
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
### Overview
|
|
369
|
+
|
|
370
|
+
```yaml
|
|
371
|
+
id: meta.overview
|
|
372
|
+
pageType: overview
|
|
373
|
+
title: Vault Overview
|
|
374
|
+
status: active
|
|
375
|
+
createdAt: YYYY-MM-DD
|
|
376
|
+
updatedAt: YYYY-MM-DD
|
|
377
|
+
aliases: []
|
|
378
|
+
tags: []
|
|
379
|
+
```
|
|
380
|
+
|
|
381
|
+
---
|
|
382
|
+
|
|
383
|
+
## 4.2 Authored page bodies
|
|
384
|
+
|
|
385
|
+
New `entity`, `concept`, `claim`, `question`, and `synthesis` pages must include a substantive Markdown body after frontmatter.
|
|
386
|
+
|
|
387
|
+
The body should be detailed, human-facing prose that explains what the page represents, why it matters, and how the structured fields should be understood. It should not be a placeholder, a one-line restatement of the title, or only a machine-readable metadata dump.
|
|
388
|
+
|
|
389
|
+
Agents should use `agent-wiki create-page` for new page files when a skill creates canonical `source`, `entity`, `concept`, `claim`, `question`, or `synthesis` pages. The script is a scaffolder only; the calling skill or agent remains responsible for the actual source capture, body prose, evidence judgment, relationships, source partitioning decisions, synthesis judgment, and optional fields that require judgment. For claim pages, pass already-selected evidence to the scaffolder so it can render spec-shaped block YAML. For synthesis pages, pass an explicit `--scope` and any known `--source-page` or `--derived-claim` values.
|
|
390
|
+
|
|
391
|
+
Agents must preserve existing human-authored body prose unless the operator explicitly asks for a rewrite.
|
|
392
|
+
|
|
393
|
+
## 5. Status vocabularies
|
|
394
|
+
|
|
395
|
+
### General page status
|
|
396
|
+
|
|
397
|
+
| Status | Meaning |
|
|
398
|
+
|---|---|
|
|
399
|
+
| `active` | Maintained page |
|
|
400
|
+
| `draft` | Incomplete page |
|
|
401
|
+
| `archived` | No longer maintained |
|
|
402
|
+
| `deprecated` | Superseded or no longer valid |
|
|
403
|
+
|
|
404
|
+
### Source status
|
|
405
|
+
|
|
406
|
+
| Status | Meaning |
|
|
407
|
+
|---|---|
|
|
408
|
+
| `unprocessed` | Captured as a source page, not yet extracted into knowledge primitives |
|
|
409
|
+
| `partitioned` | Parent source has child source parts that still need extraction |
|
|
410
|
+
| `processed` | Extraction completed |
|
|
411
|
+
| `archived` | Retained but inactive |
|
|
412
|
+
|
|
413
|
+
### Question status
|
|
414
|
+
|
|
415
|
+
| Status | Meaning |
|
|
416
|
+
|---|---|
|
|
417
|
+
| `open` | Unresolved, actively tracked |
|
|
418
|
+
| `researching` | Actively being investigated |
|
|
419
|
+
| `blocked` | Cannot proceed without external input |
|
|
420
|
+
| `resolved` | Answer found and recorded |
|
|
421
|
+
| `dropped` | No longer relevant or pursued |
|
|
422
|
+
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## 6. Claim rules
|
|
427
|
+
|
|
428
|
+
Claims are first-class records that can be evaluated, tracked, and compiled.
|
|
429
|
+
|
|
430
|
+
A claim should express **one proposition**, not several glued together.
|
|
431
|
+
|
|
432
|
+
### Claim status
|
|
433
|
+
|
|
434
|
+
| Status | Meaning |
|
|
435
|
+
|---|---|
|
|
436
|
+
| `supported` | Has strong, direct evidence |
|
|
437
|
+
| `weakly_supported` | Has some evidence but not strong |
|
|
438
|
+
| `inferred` | Derived logically, not directly evidenced |
|
|
439
|
+
| `unverified` | Not yet checked against sources |
|
|
440
|
+
| `contested` | Active disagreement exists |
|
|
441
|
+
| `contradicted` | Evidence directly contradicts it |
|
|
442
|
+
| `deprecated` | No longer applicable |
|
|
443
|
+
|
|
444
|
+
### Confidence
|
|
445
|
+
|
|
446
|
+
`confidence` is a float from `0.0` to `1.0`.
|
|
447
|
+
|
|
448
|
+
| Range | Meaning |
|
|
449
|
+
|---|---|
|
|
450
|
+
| `0.0 – 0.49` | Low confidence — should appear in low-confidence reports |
|
|
451
|
+
| `0.50 – 0.74` | Moderate confidence |
|
|
452
|
+
| `0.75 – 0.89` | High confidence |
|
|
453
|
+
| `0.90 – 1.0` | Very high confidence |
|
|
454
|
+
|
|
455
|
+
### Claim types
|
|
456
|
+
|
|
457
|
+
| Type | Meaning |
|
|
458
|
+
|---|---|
|
|
459
|
+
| `descriptive` | What something is or does |
|
|
460
|
+
| `historical` | What happened at a point in time |
|
|
461
|
+
| `causal` | Why something happened |
|
|
462
|
+
| `interpretive` | What something means |
|
|
463
|
+
| `normative` | What should be done |
|
|
464
|
+
| `forecast` | What is expected to happen |
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## 7. Evidence rules
|
|
469
|
+
|
|
470
|
+
Evidence attaches provenance and support semantics to a claim.
|
|
471
|
+
|
|
472
|
+
### Evidence kinds
|
|
473
|
+
|
|
474
|
+
| Kind | Meaning |
|
|
475
|
+
|---|---|
|
|
476
|
+
| `quote` | Direct quotation from a source |
|
|
477
|
+
| `summary` | Summarized content from a source |
|
|
478
|
+
| `measurement` | Quantitative data point |
|
|
479
|
+
| `observation` | Direct observation record |
|
|
480
|
+
| `screenshot` | Visual capture |
|
|
481
|
+
| `transcript` | Spoken record |
|
|
482
|
+
| `inference` | Derived from other evidence |
|
|
483
|
+
|
|
484
|
+
### Evidence relations
|
|
485
|
+
|
|
486
|
+
| Relation | Meaning |
|
|
487
|
+
|---|---|
|
|
488
|
+
| `supports` | Strengthens the claim |
|
|
489
|
+
| `weakens` | Reduces confidence in the claim |
|
|
490
|
+
| `contradicts` | Directly conflicts with the claim |
|
|
491
|
+
| `context_only` | Provides context but not direct support |
|
|
492
|
+
|
|
493
|
+
`context_only` evidence is NOT counted as support during compile scoring.
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
## 8. Relationship predicates
|
|
498
|
+
|
|
499
|
+
The v2 controlled predicate set:
|
|
500
|
+
|
|
501
|
+
| Predicate | Meaning |
|
|
502
|
+
|---|---|
|
|
503
|
+
| `is_a` | Type relationship |
|
|
504
|
+
| `part_of` | Composition |
|
|
505
|
+
| `depends_on` | Dependency |
|
|
506
|
+
| `uses` | Usage relationship |
|
|
507
|
+
| `produces` | Output relationship |
|
|
508
|
+
| `founded_by` | Founding relationship |
|
|
509
|
+
| `owned_by` | Ownership |
|
|
510
|
+
| `located_in` | Location |
|
|
511
|
+
| `related_to` | General association |
|
|
512
|
+
| `supports` | Supports another object |
|
|
513
|
+
| `contradicts` | Conflicts with another object |
|
|
514
|
+
| `mentions` | References without strong relation |
|
|
515
|
+
| `applies_to` | Scope or applicability |
|
|
516
|
+
| `derived_from` | Derived or based on |
|
|
517
|
+
|
|
518
|
+
---
|
|
519
|
+
|
|
520
|
+
## 9. Generated content
|
|
521
|
+
|
|
522
|
+
Generated structured knowledge should live in frontmatter fields, claim/evidence/relation records, cache files, indexes, reports, or the deterministic root `index.md` catalog.
|
|
523
|
+
|
|
524
|
+
Agents should preserve human-authored page prose unless explicitly asked to rewrite it. Page body prose is ordinary markdown.
|
|
525
|
+
|
|
526
|
+
`index.md` is generated as the root page catalog. Do not place durable manual prose there; use root documentation files such as [[overview]], [[README]], [[WIKI#1.1 Documentation layers]], [[ONBOARD]], or [[AGENTS]] instead.
|
|
527
|
+
|
|
528
|
+
`overview.md` is durable AI-maintained orientation prose. It should summarize the vault for a human reader, but it is not primary evidence and should not replace canonical source, claim, evidence, or page metadata records.
|
|
529
|
+
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
## 10. Compile outputs
|
|
533
|
+
|
|
534
|
+
The compile pipeline reads the vault, emits machine-readable caches to `_system/cache/`, and regenerates the root `index.md` page catalog.
|
|
535
|
+
|
|
536
|
+
Run with:
|
|
537
|
+
|
|
538
|
+
```bash
|
|
539
|
+
agent-wiki compile
|
|
540
|
+
```
|
|
541
|
+
|
|
542
|
+
Required outputs:
|
|
543
|
+
- `pages.json` — normalized page index
|
|
544
|
+
- `claims.jsonl` — all extracted claims
|
|
545
|
+
- `relations.jsonl` — all extracted relations
|
|
546
|
+
- `agent-digest.json` — high-signal agent context
|
|
547
|
+
|
|
548
|
+
Recommended outputs:
|
|
549
|
+
- `contradictions.json`, `questions.json`
|
|
550
|
+
- `timeline-events.json`, `source-index.json`
|
|
551
|
+
|
|
552
|
+
Catalog output:
|
|
553
|
+
- `index.md` — deterministic root-level page catalog rendered from `_system/cache/pages.json`
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## 11. Reports
|
|
558
|
+
|
|
559
|
+
Reports in `reports/` are generated views. They are NOT authoritative.
|
|
560
|
+
|
|
561
|
+
| Report | Purpose |
|
|
562
|
+
|---|---|
|
|
563
|
+
| `open-questions.md` | All open question pages |
|
|
564
|
+
| `contradictions.md` | Tracked claim conflicts |
|
|
565
|
+
| `low-confidence.md` | Claims with confidence below 0.50 |
|
|
566
|
+
| `claim-health.md` | Evidence gap and staleness overview |
|
|
567
|
+
| `stale-pages.md` | Pages not updated recently |
|
|
568
|
+
|
|
569
|
+
Do not treat reports as primary data — they derive from page frontmatter and caches.
|
|
570
|
+
|
|
571
|
+
---
|
|
572
|
+
|
|
573
|
+
## 12. Source types
|
|
574
|
+
|
|
575
|
+
| Type | Meaning |
|
|
576
|
+
|---|---|
|
|
577
|
+
| `webpage` | Web page |
|
|
578
|
+
| `article` | Published article |
|
|
579
|
+
| `document` | Generic long-form document |
|
|
580
|
+
| `pdf` | PDF document |
|
|
581
|
+
| `transcript` | Conversation or meeting transcript |
|
|
582
|
+
| `email` | Email thread |
|
|
583
|
+
| `meeting-notes` | Meeting notes |
|
|
584
|
+
| `dataset` | Structured data |
|
|
585
|
+
| `screenshot` | Visual capture |
|
|
586
|
+
| `bridge` | Bridge page pointing to an external source |
|
|
587
|
+
| `import` | Raw imported file |
|
|
588
|
+
| `other` | Other source type |
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
592
|
+
## 12.1 Entity and concept types
|
|
593
|
+
|
|
594
|
+
### Entity types
|
|
595
|
+
|
|
596
|
+
| Type | Meaning |
|
|
597
|
+
|---|---|
|
|
598
|
+
| `person` | Person |
|
|
599
|
+
| `organization` | Organization |
|
|
600
|
+
| `project` | Project |
|
|
601
|
+
| `product` | Product |
|
|
602
|
+
| `system` | System |
|
|
603
|
+
| `place` | Place |
|
|
604
|
+
| `event` | Event |
|
|
605
|
+
| `artifact` | Artifact |
|
|
606
|
+
| `document` | Document as a thing |
|
|
607
|
+
| `other` | Other entity |
|
|
608
|
+
|
|
609
|
+
### Concept types
|
|
610
|
+
|
|
611
|
+
| Type | Meaning |
|
|
612
|
+
|---|---|
|
|
613
|
+
| `definition` | Definition |
|
|
614
|
+
| `principle` | Principle |
|
|
615
|
+
| `framework` | Framework |
|
|
616
|
+
| `method` | Method |
|
|
617
|
+
| `policy` | Policy |
|
|
618
|
+
| `standard` | Standard |
|
|
619
|
+
| `pattern` | Pattern |
|
|
620
|
+
| `workflow` | Workflow |
|
|
621
|
+
| `runbook` | Runbook |
|
|
622
|
+
| `checklist` | Checklist |
|
|
623
|
+
| `playbook` | Playbook |
|
|
624
|
+
| `theory` | Theory |
|
|
625
|
+
| `taxonomy` | Taxonomy |
|
|
626
|
+
| `other` | Other concept |
|
|
627
|
+
|
|
628
|
+
---
|
|
629
|
+
|
|
630
|
+
## 13. Large sources
|
|
631
|
+
|
|
632
|
+
Large sources should not become one giant markdown file when that would make extraction or evidence citation unreliable.
|
|
633
|
+
|
|
634
|
+
For long documents, transcripts, or captures, use:
|
|
635
|
+
|
|
636
|
+
- a short parent source page in `sources/`
|
|
637
|
+
- source part pages in `sources/parts/`
|
|
638
|
+
- a retained original file in `raw/` when the material came through `_inbox/`
|
|
639
|
+
|
|
640
|
+
The parent source is the document-level record and manifest. It should use `sourceRole: parent`, usually `status: partitioned`, and an ordered `sourceParts` list. The parent body should stay short.
|
|
641
|
+
|
|
642
|
+
Each source part is a canonical source page for a bounded segment. It should use `sourceRole: part`, `parentSourceId`, `partIndex`, `partCount`, and a stable `locator` such as a page range, section path, timestamp range, or slide range.
|
|
643
|
+
|
|
644
|
+
Extraction should run against source parts, not the parent source page. Evidence should cite the most specific source part and locator available.
|
|
645
|
+
|
|
646
|
+
---
|
|
647
|
+
|
|
648
|
+
## 14. Inbox intake strategy
|
|
649
|
+
|
|
650
|
+
The `_inbox/` folder is the raw item intake queue. New unprocessed material should land here first.
|
|
651
|
+
|
|
652
|
+
Raw inbox items are promoted into canonical `source` pages by the `process-inbox` skill. This section owns the durable lifecycle rules; the skill owns the exact operational commands.
|
|
653
|
+
|
|
654
|
+
### Intake lifecycle
|
|
655
|
+
|
|
656
|
+
1. Raw item arrives in `_inbox/`
|
|
657
|
+
2. `process-inbox` reads the raw item
|
|
658
|
+
3. If retained: `process-inbox` uses `agent-wiki create-page` to write a canonical `source` page under `sources/` with `status: unprocessed`, or a large-source parent plus source parts
|
|
659
|
+
4. The original raw file moves to `raw/`
|
|
660
|
+
5. If discarded: the raw file moves to `_inbox/trash/`
|
|
661
|
+
|
|
662
|
+
### `_inbox/` is not canonical
|
|
663
|
+
|
|
664
|
+
- Inbox raw files are NOT `source` pages.
|
|
665
|
+
- Files in `raw/` are retained originals, not canonical source records.
|
|
666
|
+
- Agents MUST NOT treat `_inbox/` or `raw/` items as authoritative source records.
|
|
667
|
+
- Agents SHOULD process inbox items by converting them into proper `source` pages.
|
|
668
|
+
|
|
669
|
+
### Workspace files are not canonical
|
|
670
|
+
|
|
671
|
+
In workspace mode, files outside the wiki directory are discovery inputs. They may be project notes, docs, datasets, exports, or other artifacts worth promoting.
|
|
672
|
+
|
|
673
|
+
Agents SHOULD use:
|
|
674
|
+
|
|
675
|
+
```bash
|
|
676
|
+
agent-wiki workspace pending --json
|
|
677
|
+
```
|
|
678
|
+
|
|
679
|
+
to get a deterministic worklist of new or changed files. The agent then decides which files deserve canonical source pages.
|
|
680
|
+
|
|
681
|
+
Original workspace files MUST stay in place. A workspace source page SHOULD point back to the original file with `originPath`, using the workspace-relative path. The `process-workspace-sources` skill owns this workflow.
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
## 15. Internal linking convention
|
|
686
|
+
|
|
687
|
+
All internal links within the vault use Obsidian-style wikilinks.
|
|
688
|
+
|
|
689
|
+
| Format | Use |
|
|
690
|
+
|---|---|
|
|
691
|
+
| `[[page-slug]]` | Link to a page |
|
|
692
|
+
| `[[page-slug\|Display Text]]` | Link with custom display text |
|
|
693
|
+
| `[[page-slug#section]]` | Link to a section |
|
|
694
|
+
|
|
695
|
+
Standard markdown links are only used for external URLs and `obsidian://` cross-vault references. Cross-vault Obsidian links are not wikilinks; they use the `obsidian://open?vault=<vault-name>&file=<url-encoded-path>` URI form. Agents resolve them only through local `_system/config.json` `knownVaults`; if no mapping exists, treat the URI as an opaque external reference.
|
|
696
|
+
|
|
697
|
+
---
|
|
698
|
+
|
|
699
|
+
## 16. Editorial principles
|
|
700
|
+
|
|
701
|
+
- Claims should be atomic — one proposition per claim.
|
|
702
|
+
- Important assertions should be in frontmatter, not buried in prose, if they matter for agents.
|
|
703
|
+
- Questions should remain open until explicitly resolved.
|
|
704
|
+
- Human-authored notes should be preserved unless explicitly changed by the operator.
|
|
705
|
+
- Reports are views, not truth sources.
|
|
706
|
+
- Inbox items MUST be processed into canonical source pages before being treated as evidence.
|