@wiki0/cli 0.1.0 → 0.2.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/README.md CHANGED
@@ -18,6 +18,8 @@ wiki0 search "query" [--limit 5] # one cited section per document
18
18
  wiki0 show <target> [--tokens 2000] [--neighbours 1]
19
19
  wiki0 context "query" # top sections as cited Markdown
20
20
  wiki0 lint # broken links and anchors
21
+ wiki0 check [paths] [--all] # after editing docs: check changed files
22
+ wiki0 skill # print the agent skill
21
23
  wiki0 graph # documents and links
22
24
  wiki0 documents # outline and link counts per document
23
25
  wiki0 backlinks <path-or-title>
@@ -28,15 +30,24 @@ wiki0 ui [--no-open] [--stop] # browse the docs in a local web app
28
30
  document title. When the text is longer than the token budget, the
29
31
  output ends with the range to read next.
30
32
 
33
+ `wiki0 skill` prints an agent skill for finding and writing docs.
34
+ wiki0 never writes project files, so save it yourself, e.g.
35
+ `wiki0 skill > .agents/skills/wiki0/SKILL.md` (create the folder
36
+ first).
37
+
31
38
  To show a user this project's docs, an agent runs `npx @wiki0/cli ui`:
32
39
  it prints the URL and returns, and a second run reuses the open
33
40
  server. Flags: [`@wiki0/ui`](../ui/README.md).
34
41
 
35
42
  Every command takes `--root`; by default the project root is the
36
- nearest folder with `.git` or `wiki0.toml`. `lint` exits with code 1
37
- when it finds errors.
43
+ nearest folder with `.git` or `wiki0.toml`. `lint` and `check` exit
44
+ with code 1 when they find errors.
45
+
46
+ `check` re-indexes, then checks Markdown changed since `HEAD`
47
+ (`--base <rev>` to compare with another revision). Rules:
48
+ [Links and lint](../../wiki/reference/links-and-lint.md#check-rules).
38
49
 
39
50
  ## Output
40
51
 
41
- `show` and `context` print Markdown (`--json` for structured output).
42
- `ui` prints the URL. The other commands print JSON.
52
+ `show`, `context` and `check` print Markdown (`--json` for structured
53
+ output). `ui` prints the URL. The other commands print JSON.
package/dist/commands.js CHANGED
@@ -1,6 +1,8 @@
1
- import { backlinks_for_page, get_wiki_context, graph_wiki, index_status, index_wiki, lint_wiki, list_documents, search, show, } from '@wiki0/core';
1
+ import { backlinks_for_page, check_docs, get_wiki_context, graph_wiki, index_status, index_wiki, lint_wiki, list_documents, resolve_project_root, search, show, } from '@wiki0/core';
2
2
  import { defineCommand } from 'citty';
3
+ import { relative, resolve } from 'node:path';
3
4
  import { print_json } from './actions.js';
5
+ import { skill_text } from './skill.js';
4
6
  import { run_ui } from './ui.js';
5
7
  const root_arg = {
6
8
  root: {
@@ -96,6 +98,9 @@ export const main = defineCommand({
96
98
  return;
97
99
  }
98
100
  console.log(`Source: ${result.citation}`);
101
+ if (result.status_note) {
102
+ console.log(`Status: ${result.status_note}`);
103
+ }
99
104
  for (const warning of result.warnings) {
100
105
  console.log(`Warning: ${warning}`);
101
106
  }
@@ -132,7 +137,7 @@ export const main = defineCommand({
132
137
  }),
133
138
  lint: defineCommand({
134
139
  meta: {
135
- description: 'Report broken links, missing headings and other link problems',
140
+ description: 'Report link problems across all docs; after editing docs, run check',
136
141
  },
137
142
  args: { ...root_arg },
138
143
  run({ args }) {
@@ -142,6 +147,51 @@ export const main = defineCommand({
142
147
  process.exitCode = 1;
143
148
  },
144
149
  }),
150
+ check: defineCommand({
151
+ meta: {
152
+ description: 'Run after editing docs: checks changed files for broken links, unknown IDs, repeated sections and additions-only changes',
153
+ },
154
+ args: {
155
+ paths: {
156
+ type: 'positional',
157
+ required: false,
158
+ description: 'Documents to check (default: Markdown changed since --base)',
159
+ },
160
+ ...root_arg,
161
+ base: {
162
+ type: 'string',
163
+ description: 'git revision to compare with (default: HEAD)',
164
+ },
165
+ all: {
166
+ type: 'boolean',
167
+ description: 'Check every document, not just changed ones',
168
+ },
169
+ ...json_arg,
170
+ },
171
+ async run({ args }) {
172
+ const root = resolve_project_root(String(args.root));
173
+ const paths = args._.map((path) => relative(root, resolve(path)));
174
+ const result = await check_docs(root, {
175
+ paths,
176
+ base: args.base,
177
+ all: args.all,
178
+ });
179
+ if (args.json)
180
+ print_json(result);
181
+ else
182
+ console.log(format_check(result));
183
+ if (!result.ok)
184
+ process.exitCode = 1;
185
+ },
186
+ }),
187
+ skill: defineCommand({
188
+ meta: {
189
+ description: 'Print the agent skill for finding and writing docs; save it to .agents/skills/wiki0/SKILL.md',
190
+ },
191
+ run() {
192
+ process.stdout.write(skill_text());
193
+ },
194
+ }),
145
195
  graph: defineCommand({
146
196
  meta: { description: 'Output the document link graph' },
147
197
  args: { ...root_arg },
@@ -214,4 +264,24 @@ export const main = defineCommand({
214
264
  }),
215
265
  },
216
266
  });
267
+ function format_check(result) {
268
+ const lines = [
269
+ result.files.length === 0
270
+ ? 'No changed documents to check.'
271
+ : `Checked ${result.files.length} document${result.files.length === 1 ? '' : 's'}.`,
272
+ ];
273
+ for (const warning of result.warnings) {
274
+ lines.push(`Warning: ${warning}`);
275
+ }
276
+ for (const issue of result.issues) {
277
+ const place = issue.line === null
278
+ ? issue.path
279
+ : `${issue.path}:${issue.line}`;
280
+ lines.push(`${place} ${issue.severity} ${issue.rule}: ${issue.message}`);
281
+ }
282
+ if (result.files.length > 0 && result.issues.length === 0) {
283
+ lines.push('No problems found.');
284
+ }
285
+ return lines.join('\n');
286
+ }
217
287
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../src/commands.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function skill_text(): string;
package/dist/skill.js ADDED
@@ -0,0 +1,7 @@
1
+ import { readFileSync } from 'node:fs';
2
+ // The agent skill shipped with the package. `wiki0 skill` prints it so
3
+ // the user or agent saves it; wiki0 never writes project files.
4
+ export function skill_text() {
5
+ return readFileSync(new URL('../skills/wiki0/SKILL.md', import.meta.url), 'utf-8');
6
+ }
7
+ //# sourceMappingURL=skill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,uEAAuE;AACvE,gEAAgE;AAChE,MAAM,UAAU,UAAU;IACzB,OAAO,YAAY,CAClB,IAAI,GAAG,CAAC,0BAA0B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,EACpD,OAAO,CACP,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wiki0/cli",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "wiki0 command line interface",
5
5
  "homepage": "https://github.com/spences10/wiki0/tree/main/packages/cli#readme",
6
6
  "license": "MIT",
@@ -15,6 +15,7 @@
15
15
  },
16
16
  "files": [
17
17
  "dist",
18
+ "skills",
18
19
  "README.md"
19
20
  ],
20
21
  "type": "module",
@@ -30,8 +31,8 @@
30
31
  "access": "public"
31
32
  },
32
33
  "dependencies": {
33
- "@wiki0/core": "0.1.0",
34
- "@wiki0/ui": "0.1.0",
34
+ "@wiki0/core": "0.2.0",
35
+ "@wiki0/ui": "0.1.2",
35
36
  "citty": "^0.2.2"
36
37
  },
37
38
  "devDependencies": {
@@ -0,0 +1,44 @@
1
+ ---
2
+ # prettier-ignore
3
+ name: wiki0
4
+ description: Find and write project docs with wiki0. Use when answering questions from the project's Markdown docs, or before and after adding or editing docs.
5
+ ---
6
+
7
+ # wiki0
8
+
9
+ ## Finding information
10
+
11
+ 1. `npx @wiki0/cli search "<question>"`: one cited section per doc.
12
+ 2. `npx @wiki0/cli show <citation>` to read it. Read the whole file
13
+ only when the section is not enough.
14
+ 3. A result with `status_note` ("idea, not decided") is not a
15
+ decision. Don't act on it as one.
16
+
17
+ ## Before writing
18
+
19
+ - Search first. If a section already covers the topic, edit that
20
+ section; don't add a new one or a new doc.
21
+ - Before saying something is or isn't built, check the code.
22
+
23
+ ## Writing
24
+
25
+ - Decide what a reader needs that the code can't tell them. Keep that.
26
+ Delete everything else, including existing text that is now wrong or
27
+ repeated.
28
+ - Give a source for every number, date, quote and claim: a file and
29
+ line, a commit, or a link. To find it, look in the code and git
30
+ history, then `wiki0 search`, then session history with
31
+ `npx omnirecall` if it is installed. Only the user's messages and
32
+ tool output count as a source, never an assistant's text.
33
+ - Keep the source's strength. Something the user mentioned in passing
34
+ goes in with `status: idea` (or `research`, `planned`,
35
+ `backburner`), never as a plan or a decision. Only a decision the
36
+ user states is a decision.
37
+ - Name things in full. Link an ID such as a decision number to its
38
+ doc.
39
+
40
+ ## After writing
41
+
42
+ 1. `npx @wiki0/cli check` and fix every error.
43
+ 2. For warnings and notices, change only what each one points at.
44
+ Don't rewrite the doc.