agent-docs-kit 2.2.0__tar.gz → 2.2.1__tar.gz
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.
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/.claude-plugin/marketplace.json +2 -2
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/.claude-plugin/plugin.json +1 -1
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/CHANGELOG.md +6 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/PKG-INFO +10 -11
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/README.md +9 -10
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/package.json +1 -1
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/pyproject.toml +1 -1
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/__init__.py +159 -23
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/.github/workflows/publish.yml +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/.gitignore +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/LICENSE +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/__main__.py +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/app/docs/[[...slug]]/page.tsx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/app/docs/layout.tsx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/app/global.css +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/app/layout.tsx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/app/page.tsx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/components/living-docs/index.tsx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/components/mdx.tsx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/content/docs/architecture.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/content/docs/atlas.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/content/docs/components.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/content/docs/glossary.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/content/docs/index.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/content/docs/meta.json +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/lib/layout.shared.ts +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/lib/source.ts +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/next-env.d.ts +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/next.config.mjs +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/package.json +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/source.config.ts +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/fumadocs-starter/tsconfig.json +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/scripts/check.mjs +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/scripts/create-doc.mjs +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/scripts/glossary.mjs +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/templates/architecture.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/templates/atlas.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/templates/change.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/templates/glossary.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/project/.living-docs/templates/plan.mdx +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/styles/atlas.css +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/workflow-skills/living-docs-architecture/SKILL.md +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/workflow-skills/living-docs-change/SKILL.md +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/workflow-skills/living-docs-check/SKILL.md +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/workflow-skills/living-docs-glossary/SKILL.md +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/workflow-skills/living-docs-plan/SKILL.md +0 -0
- {agent_docs_kit-2.2.0 → agent_docs_kit-2.2.1}/src/living_docs_cli/assets/workflow-skills/living-docs-write/SKILL.md +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://anthropic.com/claude-code/marketplace.schema.json",
|
|
3
3
|
"name": "agent-docs-kit",
|
|
4
|
-
"version": "2.2.
|
|
4
|
+
"version": "2.2.1",
|
|
5
5
|
"description": "Standalone marketplace for the living-docs Fumadocs/MDX Project Atlas workflow.",
|
|
6
6
|
"owner": {
|
|
7
7
|
"name": "wuyuxiangX"
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
{
|
|
11
11
|
"name": "agent-docs-kit",
|
|
12
12
|
"description": "Initialize and maintain a Project Atlas: Fumadocs + MDX, project-local templates/scripts, agent skills, managed context blocks, glossary generation, and validation.",
|
|
13
|
-
"version": "2.2.
|
|
13
|
+
"version": "2.2.1",
|
|
14
14
|
"author": {
|
|
15
15
|
"name": "wuyuxiangX"
|
|
16
16
|
},
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-docs-kit",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Bootstrap and maintain a Fumadocs + MDX Project Atlas with project-local scripts, agent skills, managed context blocks, glossary generation, and validation.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "wuyuxiangX"
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.2.1
|
|
4
|
+
|
|
5
|
+
- Replaced the integration prompt with a terminal multi-select UI: Up/Down or `j`/`k` moves, Space toggles, `a` selects all, and Enter confirms.
|
|
6
|
+
- Improved the text fallback parser for compact numeric selections such as `12`, spaced selections such as `1 2`, and normalized terminal input.
|
|
7
|
+
- Updated init next steps and generated agent context to prefer `uvx agent-docs-kit ...` commands so one-time `uvx` users do not hit `living-docs: command not found`.
|
|
8
|
+
|
|
3
9
|
## 2.2.0
|
|
4
10
|
|
|
5
11
|
- Added Project Atlas as the primary project-level architecture map.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agent-docs-kit
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.1
|
|
4
4
|
Summary: Bootstrap and maintain a Fumadocs-powered Project Atlas with agent skills, reusable templates, and validation.
|
|
5
5
|
Project-URL: Homepage, https://github.com/wuyuxiangX/agent-docs-kit
|
|
6
6
|
Project-URL: Repository, https://github.com/wuyuxiangX/agent-docs-kit
|
|
@@ -65,14 +65,13 @@ by PyPI's project-name similarity checks. It still installs both CLI commands:
|
|
|
65
65
|
? Target project [.]:
|
|
66
66
|
? Docs directory [docs]:
|
|
67
67
|
? Agent integrations
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
Selection [codex]:
|
|
68
|
+
Up/Down or j/k moves. Space selects. a selects all. Enter confirms.
|
|
69
|
+
> [x] Codex (codex)
|
|
70
|
+
[ ] Claude Code (claude)
|
|
71
|
+
[ ] GitHub Copilot (copilot)
|
|
72
|
+
[ ] Cursor (cursor)
|
|
73
|
+
[ ] Gemini CLI (gemini)
|
|
74
|
+
[ ] Generic (generic)
|
|
76
75
|
? Style [atlas]:
|
|
77
76
|
? Overwrite existing managed files if needed? [y/N]:
|
|
78
77
|
```
|
|
@@ -329,8 +328,8 @@ One-time PyPI setup for a new package:
|
|
|
329
328
|
After that, publish a release by tagging the commit:
|
|
330
329
|
|
|
331
330
|
```bash
|
|
332
|
-
git tag -a v2.2.
|
|
333
|
-
git push origin v2.2.
|
|
331
|
+
git tag -a v2.2.1 -m v2.2.1
|
|
332
|
+
git push origin v2.2.1
|
|
334
333
|
```
|
|
335
334
|
|
|
336
335
|
The workflow builds the Python package with `uv build` and uploads the
|
|
@@ -51,14 +51,13 @@ by PyPI's project-name similarity checks. It still installs both CLI commands:
|
|
|
51
51
|
? Target project [.]:
|
|
52
52
|
? Docs directory [docs]:
|
|
53
53
|
? Agent integrations
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
Selection [codex]:
|
|
54
|
+
Up/Down or j/k moves. Space selects. a selects all. Enter confirms.
|
|
55
|
+
> [x] Codex (codex)
|
|
56
|
+
[ ] Claude Code (claude)
|
|
57
|
+
[ ] GitHub Copilot (copilot)
|
|
58
|
+
[ ] Cursor (cursor)
|
|
59
|
+
[ ] Gemini CLI (gemini)
|
|
60
|
+
[ ] Generic (generic)
|
|
62
61
|
? Style [atlas]:
|
|
63
62
|
? Overwrite existing managed files if needed? [y/N]:
|
|
64
63
|
```
|
|
@@ -315,8 +314,8 @@ One-time PyPI setup for a new package:
|
|
|
315
314
|
After that, publish a release by tagging the commit:
|
|
316
315
|
|
|
317
316
|
```bash
|
|
318
|
-
git tag -a v2.2.
|
|
319
|
-
git push origin v2.2.
|
|
317
|
+
git tag -a v2.2.1 -m v2.2.1
|
|
318
|
+
git push origin v2.2.1
|
|
320
319
|
```
|
|
321
320
|
|
|
322
321
|
The workflow builds the Python package with `uv build` and uploads the
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-docs-kit",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Bootstrap a Fumadocs + MDX Project Atlas with project-local scripts, agent skills, managed context blocks, glossary generation, and validation.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -8,12 +8,13 @@ import shutil
|
|
|
8
8
|
import socket
|
|
9
9
|
import subprocess
|
|
10
10
|
import sys
|
|
11
|
+
import unicodedata
|
|
11
12
|
import webbrowser
|
|
12
13
|
from dataclasses import dataclass
|
|
13
14
|
from datetime import date
|
|
14
15
|
from pathlib import Path
|
|
15
16
|
|
|
16
|
-
VERSION = "2.2.
|
|
17
|
+
VERSION = "2.2.1"
|
|
17
18
|
PACKAGE_DIR = Path(__file__).resolve().parent
|
|
18
19
|
ASSETS_DIR = PACKAGE_DIR / "assets"
|
|
19
20
|
STYLE_NAMES = ("atlas",)
|
|
@@ -235,12 +236,38 @@ def write_json(path: Path, payload: dict, *, force: bool) -> None:
|
|
|
235
236
|
path.write_text(json.dumps(payload, indent=2, ensure_ascii=False) + "\n")
|
|
236
237
|
|
|
237
238
|
|
|
239
|
+
def expand_integration_token(token: str) -> list[str]:
|
|
240
|
+
if token.isdigit() and len(token) > 1:
|
|
241
|
+
keys: list[str] = []
|
|
242
|
+
for char in token:
|
|
243
|
+
index = int(char) - 1
|
|
244
|
+
if index < 0 or index >= len(INTEGRATION_ORDER):
|
|
245
|
+
return [token]
|
|
246
|
+
keys.append(INTEGRATION_ORDER[index])
|
|
247
|
+
return keys
|
|
248
|
+
return [token]
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
def normalize_integration_tokens(raw: str) -> list[str]:
|
|
252
|
+
normalized = unicodedata.normalize("NFKC", raw)
|
|
253
|
+
normalized = normalized.replace("\ufffd", "")
|
|
254
|
+
tokens = [
|
|
255
|
+
token.strip().lower()
|
|
256
|
+
for token in re.split(r"[\s,,、]+", normalized)
|
|
257
|
+
if token.strip()
|
|
258
|
+
]
|
|
259
|
+
expanded: list[str] = []
|
|
260
|
+
for token in tokens:
|
|
261
|
+
expanded.extend(expand_integration_token(token))
|
|
262
|
+
return expanded
|
|
263
|
+
|
|
264
|
+
|
|
238
265
|
def parse_integration_selection(raw: str, *, default: list[str]) -> list[str]:
|
|
239
266
|
if not raw.strip():
|
|
240
267
|
return default
|
|
241
268
|
|
|
242
269
|
selected: list[str] = []
|
|
243
|
-
tokens =
|
|
270
|
+
tokens = normalize_integration_tokens(raw)
|
|
244
271
|
if any(token in {"all", "*"} for token in tokens):
|
|
245
272
|
return list(INTEGRATION_ORDER)
|
|
246
273
|
|
|
@@ -261,6 +288,104 @@ def parse_integration_selection(raw: str, *, default: list[str]) -> list[str]:
|
|
|
261
288
|
return selected
|
|
262
289
|
|
|
263
290
|
|
|
291
|
+
def read_selection_key() -> str:
|
|
292
|
+
char = sys.stdin.read(1)
|
|
293
|
+
if char == "\x1b":
|
|
294
|
+
seq = sys.stdin.read(2)
|
|
295
|
+
if seq == "[A":
|
|
296
|
+
return "up"
|
|
297
|
+
if seq == "[B":
|
|
298
|
+
return "down"
|
|
299
|
+
return "escape"
|
|
300
|
+
if char in {"\r", "\n"}:
|
|
301
|
+
return "enter"
|
|
302
|
+
if char == " ":
|
|
303
|
+
return "space"
|
|
304
|
+
lowered = char.lower()
|
|
305
|
+
if lowered in {"j", "n"}:
|
|
306
|
+
return "down"
|
|
307
|
+
if lowered in {"k", "p"}:
|
|
308
|
+
return "up"
|
|
309
|
+
if lowered == "a":
|
|
310
|
+
return "all"
|
|
311
|
+
if lowered == "q":
|
|
312
|
+
return "quit"
|
|
313
|
+
return lowered
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
def prompt_integrations_selector(default: list[str]) -> list[str] | None:
|
|
317
|
+
if not (sys.stdin.isatty() and sys.stdout.isatty()):
|
|
318
|
+
return None
|
|
319
|
+
|
|
320
|
+
try:
|
|
321
|
+
import termios
|
|
322
|
+
import tty
|
|
323
|
+
except ImportError:
|
|
324
|
+
return None
|
|
325
|
+
|
|
326
|
+
selected = set(default)
|
|
327
|
+
cursor = 0
|
|
328
|
+
rendered_lines = 0
|
|
329
|
+
|
|
330
|
+
def render(message: str = "") -> None:
|
|
331
|
+
nonlocal rendered_lines
|
|
332
|
+
lines = [
|
|
333
|
+
"? Agent integrations",
|
|
334
|
+
" Up/Down or j/k moves. Space selects. a selects all. Enter confirms.",
|
|
335
|
+
]
|
|
336
|
+
for index, key in enumerate(INTEGRATION_ORDER):
|
|
337
|
+
integration = INTEGRATIONS[key]
|
|
338
|
+
pointer = ">" if index == cursor else " "
|
|
339
|
+
mark = "x" if key in selected else " "
|
|
340
|
+
lines.append(f" {pointer} [{mark}] {integration.label} ({key})")
|
|
341
|
+
lines.append(f" {message}" if message else " ")
|
|
342
|
+
|
|
343
|
+
if rendered_lines:
|
|
344
|
+
sys.stdout.write(f"\x1b[{rendered_lines}A")
|
|
345
|
+
for line in lines:
|
|
346
|
+
sys.stdout.write("\x1b[2K" + line + "\n")
|
|
347
|
+
rendered_lines = len(lines)
|
|
348
|
+
sys.stdout.flush()
|
|
349
|
+
|
|
350
|
+
fd = sys.stdin.fileno()
|
|
351
|
+
old_settings = termios.tcgetattr(fd)
|
|
352
|
+
sys.stdout.write("\x1b[?25l")
|
|
353
|
+
try:
|
|
354
|
+
tty.setcbreak(fd)
|
|
355
|
+
render()
|
|
356
|
+
while True:
|
|
357
|
+
key = read_selection_key()
|
|
358
|
+
if key == "up":
|
|
359
|
+
cursor = (cursor - 1) % len(INTEGRATION_ORDER)
|
|
360
|
+
elif key == "down":
|
|
361
|
+
cursor = (cursor + 1) % len(INTEGRATION_ORDER)
|
|
362
|
+
elif key == "space":
|
|
363
|
+
integration_key = INTEGRATION_ORDER[cursor]
|
|
364
|
+
if integration_key in selected:
|
|
365
|
+
selected.remove(integration_key)
|
|
366
|
+
else:
|
|
367
|
+
selected.add(integration_key)
|
|
368
|
+
elif key == "all":
|
|
369
|
+
if len(selected) == len(INTEGRATION_ORDER):
|
|
370
|
+
selected = set()
|
|
371
|
+
else:
|
|
372
|
+
selected = set(INTEGRATION_ORDER)
|
|
373
|
+
elif key == "enter":
|
|
374
|
+
if selected:
|
|
375
|
+
result = [key for key in INTEGRATION_ORDER if key in selected]
|
|
376
|
+
render(f"Selected: {', '.join(result)}")
|
|
377
|
+
return result
|
|
378
|
+
render("Select at least one integration.")
|
|
379
|
+
continue
|
|
380
|
+
elif key in {"escape", "quit"}:
|
|
381
|
+
return default
|
|
382
|
+
render()
|
|
383
|
+
finally:
|
|
384
|
+
termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
|
|
385
|
+
sys.stdout.write("\x1b[?25h")
|
|
386
|
+
sys.stdout.flush()
|
|
387
|
+
|
|
388
|
+
|
|
264
389
|
def prompt_text(label: str, default: str) -> str:
|
|
265
390
|
suffix = f" [{default}]" if default else ""
|
|
266
391
|
value = input(f"? {label}{suffix}: ").strip()
|
|
@@ -281,12 +406,16 @@ def prompt_bool(label: str, default: bool = False) -> bool:
|
|
|
281
406
|
|
|
282
407
|
|
|
283
408
|
def prompt_integrations(default: list[str]) -> list[str]:
|
|
409
|
+
selected = prompt_integrations_selector(default)
|
|
410
|
+
if selected:
|
|
411
|
+
return selected
|
|
412
|
+
|
|
284
413
|
print("? Agent integrations")
|
|
285
414
|
for index, key in enumerate(INTEGRATION_ORDER, start=1):
|
|
286
415
|
integration = INTEGRATIONS[key]
|
|
287
416
|
marker = " (default)" if key in default else ""
|
|
288
417
|
print(f" {index}. {key} - {integration.label}{marker}")
|
|
289
|
-
print("
|
|
418
|
+
print(" Select one or more integrations, or press Enter for the default.")
|
|
290
419
|
|
|
291
420
|
while True:
|
|
292
421
|
raw = input(f" Selection [{', '.join(default)}]: ")
|
|
@@ -362,9 +491,10 @@ Use living-docs skills when the user asks to create or update project documentat
|
|
|
362
491
|
{skill_lines(integration)}
|
|
363
492
|
|
|
364
493
|
Keep MDX as the source of truth. Do not hand-edit generated HTML output.
|
|
365
|
-
Run `node .living-docs/scripts/check.mjs` or `
|
|
366
|
-
Use `
|
|
367
|
-
Use `
|
|
494
|
+
Run `node .living-docs/scripts/check.mjs` or `uvx agent-docs-kit check` before treating docs work as complete.
|
|
495
|
+
Use `uvx agent-docs-kit atlas --force` to replace the starter Project Atlas with a repository-structure draft.
|
|
496
|
+
Use `uvx agent-docs-kit skills` to list available workflows and `uvx agent-docs-kit web --open` to preview the docs site locally.
|
|
497
|
+
If `agent-docs-kit` was installed with `uv tool install agent-docs-kit`, the shorter `agent-docs-kit ...` commands are also available.
|
|
368
498
|
{CONTEXT_END}
|
|
369
499
|
"""
|
|
370
500
|
|
|
@@ -494,12 +624,17 @@ def init_project(args: argparse.Namespace) -> int:
|
|
|
494
624
|
print()
|
|
495
625
|
print("Next steps:")
|
|
496
626
|
print(f" 1. cd {target}")
|
|
497
|
-
print(" 2.
|
|
498
|
-
print(" 3.
|
|
499
|
-
print(" 4.
|
|
627
|
+
print(" 2. uvx agent-docs-kit web --open")
|
|
628
|
+
print(" 3. uvx agent-docs-kit atlas --force")
|
|
629
|
+
print(" 4. uvx agent-docs-kit skills")
|
|
630
|
+
print()
|
|
631
|
+
print("If you installed persistently with `uv tool install agent-docs-kit`, you can use:")
|
|
632
|
+
print(" agent-docs-kit web --open")
|
|
633
|
+
print(" agent-docs-kit atlas --force")
|
|
634
|
+
print(" agent-docs-kit skills")
|
|
500
635
|
for integration_name in integrations:
|
|
501
636
|
print(f" - {INTEGRATIONS[integration_name].next_step}")
|
|
502
|
-
print(" - Run `
|
|
637
|
+
print(" - Run `uvx agent-docs-kit check` or `node .living-docs/scripts/check.mjs` before committing docs changes.")
|
|
503
638
|
return 0
|
|
504
639
|
|
|
505
640
|
|
|
@@ -1005,23 +1140,24 @@ def skills_command(_: argparse.Namespace) -> int:
|
|
|
1005
1140
|
print("living-docs skills")
|
|
1006
1141
|
print()
|
|
1007
1142
|
print("CLI:")
|
|
1008
|
-
print("
|
|
1009
|
-
print("
|
|
1010
|
-
print("
|
|
1011
|
-
print("
|
|
1012
|
-
print("
|
|
1013
|
-
print("
|
|
1014
|
-
print("
|
|
1015
|
-
print("
|
|
1016
|
-
print("
|
|
1017
|
-
print("
|
|
1018
|
-
print("
|
|
1019
|
-
print("
|
|
1143
|
+
print(" uvx agent-docs-kit init")
|
|
1144
|
+
print(" uvx agent-docs-kit init [target] --integration codex --integration claude")
|
|
1145
|
+
print(" uvx agent-docs-kit init . --integration codex --integration cursor --integration gemini")
|
|
1146
|
+
print(" uvx agent-docs-kit init . --docs-dir docs --style atlas --yes")
|
|
1147
|
+
print(" uvx agent-docs-kit init . --style atlas --interactive")
|
|
1148
|
+
print(" uvx agent-docs-kit web --open")
|
|
1149
|
+
print(" uvx agent-docs-kit atlas --force")
|
|
1150
|
+
print(" uvx agent-docs-kit check")
|
|
1151
|
+
print(" uvx agent-docs-kit skills")
|
|
1152
|
+
print(" uvx agent-docs-kit styles")
|
|
1153
|
+
print(" uvx agent-docs-kit version")
|
|
1154
|
+
print(" uvx agent-docs-kit self check")
|
|
1155
|
+
print(" persistent install alias: agent-docs-kit ... or living-docs ...")
|
|
1020
1156
|
print(f" current style: {style}")
|
|
1021
1157
|
print(" available integrations: " + ", ".join(sorted(INTEGRATIONS)))
|
|
1022
1158
|
print()
|
|
1023
1159
|
print("Docs app:")
|
|
1024
|
-
print("
|
|
1160
|
+
print(" uvx agent-docs-kit web --open")
|
|
1025
1161
|
print(f" cd {docs_root}")
|
|
1026
1162
|
print(" npm run typecheck")
|
|
1027
1163
|
print(" npm run build")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|