@cr8rcho/alkahest 0.1.86 → 0.1.88

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.
@@ -0,0 +1,69 @@
1
+ # alkahest/wiki-lint — keep the wiki healthy
2
+
3
+ A periodic health check of the wiki: find what has drifted, fix what is mechanical, propose
4
+ what needs the user, and leave a report the next lint can read. Read `alkahest/wiki` first
5
+ for the layout and the tools.
6
+
7
+ ## When to run
8
+
9
+ Run a lint when the user asks ("lint the wiki", "위키 정리해줘", "health check"), and
10
+ **offer one yourself** when either is true:
11
+ - roughly ten sources have been ingested since the last lint, or
12
+ - the newest note under `outputs/lint` is older than two weeks (or there is none).
13
+
14
+ (A real schedule — a weekly agent routine — is the user's choice; this skill only makes
15
+ the agent raise its hand.)
16
+
17
+ ## Start with the Trash
18
+
19
+ `notes` hides trashed pages, but the last lint may have sent pages there that the user
20
+ has not reviewed. Before doing anything new, read the previous `outputs/lint` report's
21
+ "Sent to the Trash" section: anything still inside its 30-day window is a pending
22
+ decision — mention it, don't pile more on top without asking.
23
+
24
+ ## Checks
25
+
26
+ Read the map with `notes` (excerpts; `full_bodies` only when the wiki is small), then:
27
+
28
+ | Check | What to look for | Mechanical fix |
29
+ |---|---|---|
30
+ | **Orphans** | pages with no `[[…]]` backlinks and none outgoing (`get_note` shows both) | connect: add a `## Related` reference from the closest hub page, or into the orphan |
31
+ | **Duplicates** | two pages on one topic (`notes q=` around suspicious titles) | merge into the better page, then trash the other |
32
+ | **Empty / stub pages** | title only, or a body under a couple of lines with no references | fill from the source pages, or trash |
33
+ | **Contradictions** | pages that disagree; a source page newer than the claim it contradicts | **write the difference into the page**, prefer the newer claim — never delete the older claim |
34
+ | **Stale claims** | dated statements superseded by later sources | same as above; add "as of <date>" |
35
+ | **Missing pages** | an entity or concept referenced as `[[…]]` from several pages but with no page of its own (unresolved references stay literal — they are the tell) | propose; create only when the sources on the map already support a page |
36
+ | **Missing cross-references** | pages that obviously belong together but don't cite each other | add the references |
37
+ | **Data gaps** | questions the wiki cannot answer that a web search or a new source could | list as follow-up research in the report |
38
+
39
+ ## Delete policy — three rules
40
+
41
+ Deleting is `update_note` with `delete: true` and a **`reason`**. It is a soft delete: the
42
+ page goes to the project Trash, restorable for 30 days from the web Trash view or with
43
+ `update_note restore: true`, and only then is purged. The activity journal shows every
44
+ deletion with its reason. That safety net is why lint may delete at all — and it is the
45
+ whole safety net, so:
46
+
47
+ 1. **The reason says *why it should go*, in one line the user can judge without opening
48
+ the page** — `duplicate of [[X]], content merged`, `empty stub, topic covered by [[Y]]`,
49
+ `superseded by [[Z]] — lint 2026-09-19`. Never `cleanup`.
50
+ 2. **`raw/` is never deleted or edited.** It is the source of truth the wiki is compiled
51
+ from; a raw page's only lint outcome is "unlinked — no source page yet".
52
+ 3. **Contradictions and stale claims are written, not deleted.** "We used to think X" is
53
+ knowledge. Orphans are connected, not deleted.
54
+
55
+ On a shared wiki, a page created by someone else is **proposed, not trashed** — list it in
56
+ the report with the suggested action.
57
+
58
+ ## The report
59
+
60
+ Write `outputs/lint/<YYYY-MM-DD> wiki lint` (`props.tags: ["lint"]`) with:
61
+
62
+ - **Fixed** — what you connected, merged, filled, annotated (page links)
63
+ - **Sent to the Trash** — each page with its reason, and one line on how to restore
64
+ - **Proposed** — what needs the user: pages to create, contradictions to resolve, other
65
+ people's pages that look retirable
66
+ - **Follow-up research** — the questions the wiki cannot answer yet
67
+ - **Counts** — pages / orphans / trashed, so the next lint sees the trend
68
+
69
+ Tell the user the report's link and the two or three items that most need their eye.
@@ -0,0 +1,93 @@
1
+ # alkahest/wiki — an LLM-maintained knowledge wiki
2
+
3
+ You maintain a **knowledge wiki** for the user: a hosted alkahest project whose notes are
4
+ markdown documents the LLM writes and keeps current, and whose note map draws the graph.
5
+ The user curates sources, asks questions and reads; **you do the bookkeeping** — summaries,
6
+ cross-references, filing, consistency. Knowledge is compiled once and kept current, not
7
+ re-derived from raw material on every question.
8
+
9
+ The pattern is Andrej Karpathy's *LLM Wiki* idea file
10
+ (<https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f>). This skill is that
11
+ pattern instantiated on alkahest: the three layers and three loops are his; the note pool,
12
+ the graph and the tools below are where they land.
13
+
14
+ ## The three layers, on alkahest
15
+
16
+ | Layer | Karpathy | Here |
17
+ |---|---|---|
18
+ | Raw sources | `raw/` — immutable | notes under folder **`raw/…`** (`raw/articles`, `raw/notes`, `raw/transcripts`). You read them; you **never edit or delete them**. |
19
+ | The wiki | `wiki/` — LLM-owned | notes under **`wiki/…`**: `sources` (one page per ingested source), `concepts`, `entities` (people, companies, products, tools), `topics`, `comparisons`, `syntheses`, `overviews`. |
20
+ | The schema | `CLAUDE.md` / `AGENTS.md` | **this skill** plus its siblings `alkahest/wiki-capture` and `alkahest/wiki-lint`. Local preferences (language, extra folders) go in a note `wiki/overviews/Conventions` — read it when it exists. |
21
+
22
+ Deliverables (briefs, decks, lint reports) go under **`outputs/…`** (`outputs/briefs`, `outputs/lint`).
23
+
24
+ Two of Karpathy's files have no counterpart here, on purpose — **do not create them**:
25
+ - `index.md` → the note map, the tree sidebar (folders) and server-side search (`search`, `notes q=`) are the catalog.
26
+ - `log.md` → note history (revisions) and the activity journal already record what changed and when.
27
+
28
+ ## Tools
29
+
30
+ `notes` (list — excerpts, `q` for full-body search, `map`) · `get_note` (one document + its links and backlinks)
31
+ · `add_note` (`title`, `body`, `folder`, `props`, `map`) · `update_note` (`body`/`folder`/`props`; `delete`+`reason`
32
+ and `restore` — lint only) · `note_props` (the notebook's property schema) · `search` (notes + issues + tasks in one).
33
+
34
+ **Note-to-note connections are `[[Title]]` references in the body.** The graph derives them at
35
+ read time; there is no separate edge to draw. A note nobody references and that references
36
+ nothing is an island — always name at least one neighbour in the body.
37
+
38
+ Properties: use `props.tags` (string array) for cross-cutting labels; keep a `source`
39
+ property on `wiki/sources` pages pointing at the raw note (`[[Raw title]]`). Keep the tag
40
+ vocabulary small — a tag on 3–12 notes is a useful hub, a tag on 1 is noise.
41
+
42
+ ## Loop 1 — Ingest (a new source arrives)
43
+
44
+ 1. **File the raw source** as a note under `raw/<kind>` with the original text (or the
45
+ text you fetched from the URL), the URL and date in a short frontmatter-style header.
46
+ Preserve the source's language. `props.tags: ["raw"]`.
47
+ 2. **Read it and discuss** the key takeaways with the user before writing — one source at
48
+ a time, the user stays involved. (A batch ingest is fine when they ask for it.)
49
+ 3. **Write the source page** under `wiki/sources`: what it claims, why it matters, key
50
+ quotes, and a `## Related` section of `[[…]]` references. Meaning-first title, not the
51
+ raw file name.
52
+ 4. **Update the wiki pages it touches** — `notes q=` first, then `update_note` existing
53
+ concept/entity/topic pages (add the new evidence, cite the source page) and `add_note`
54
+ only for concepts that have no page yet. A single source can rightly touch 5–15 pages.
55
+ 5. **Never erase a claim the new source contradicts.** State the difference in the page
56
+ ("Source A (2025) says X; Source B (2026) says Y") and prefer the newer claim when you
57
+ present current understanding.
58
+ 6. End with the map link and a one-paragraph summary of what changed.
59
+
60
+ ## Loop 2 — Query (the user asks a question)
61
+
62
+ 1. `search` / `notes q=` first, then `get_note` the pages that matter — read the wiki, not
63
+ the raw sources, unless the wiki is silent.
64
+ 2. Answer with citations as `[[Page title]]` references.
65
+ 3. **File the good answers back.** A comparison, an analysis, a connection the user
66
+ asked for is knowledge — save it under `wiki/comparisons` or `wiki/syntheses` with its
67
+ sources referenced, so explorations compound like ingested sources do. Ask when unsure
68
+ whether an answer is worth keeping; a throwaway answer stays in chat.
69
+
70
+ ## Loop 3 — Lint
71
+
72
+ Periodically health-check the wiki: `alkahest/wiki-lint` has the checks, the self-trigger
73
+ rule and the delete policy. Capturing knowledge that surfaced *during a session* (not from
74
+ a source) is `alkahest/wiki-capture`.
75
+
76
+ ## Rules
77
+
78
+ - **One topic per note.** Prefer updating an existing page to adding a near-duplicate —
79
+ always `notes q=` before `add_note`.
80
+ - **Meaning-first titles.** The title is the node label and the `[[…]]` key other pages
81
+ cite; date-prefixed titles are for `raw/` only.
82
+ - **Bodies are small markdown documents** — `##` sections, a `## Related` list, code where
83
+ it carries the knowledge. Consistent beats comprehensive.
84
+ - **Language**: raw stays as it came; wiki pages follow the user's language (say it in
85
+ `wiki/overviews/Conventions` if it isn't obvious from the existing pages).
86
+ - **Deletion is lint's job**, never ingest's or query's.
87
+
88
+ ## Getting this read
89
+
90
+ Hosted skills are read when something asks for them. Tell your agent once, in whatever
91
+ rules file it reads (`CLAUDE.md`, `AGENTS.md`, a user-level rules file):
92
+ *"My knowledge wiki is the alkahest project `<slug>` — read the `alkahest/wiki` skill over MCP
93
+ before touching it."* Or just say "read the alkahest/wiki skill" when you start a session.
@@ -1,13 +0,0 @@
1
- /** `alkahest presets` — list the registry (the same list every surface reads). */
2
- export declare function presetsList(): void;
3
- export interface DocsInitOptions {
4
- api?: string;
5
- slug?: string;
6
- path?: string;
7
- preset?: string;
8
- force?: boolean;
9
- /** Append the CLAUDE.md snippet without prompting. */
10
- claudeMd?: boolean;
11
- }
12
- /** `alkahest docs init` — install a preset: skills + scaffold + script + maps + snippet. */
13
- export declare function docsInitCmd(options: DocsInitOptions): Promise<void>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"docsInit.js","sourceRoot":"","sources":["../../src/core/docsInit.ts"],"names":[],"mappings":"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"}