@nitra/cursor 5.1.0 → 5.2.1
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/.claude-template/settings.template.json +22 -0
- package/.pi-template/extensions/n-cursor-adr/docs/index.md +15 -9
- package/CHANGELOG.md +18 -1
- package/bin/n-cursor.js +73 -16
- package/docs/stryker.config.md +6 -0
- package/docs/vitest.config.md +6 -0
- package/lib/docs/llm.md +29 -0
- package/lib/docs/models.md +24 -17
- package/lib/docs/omlx.md +32 -0
- package/lib/llm.mjs +137 -0
- package/lib/omlx.mjs +49 -4
- package/package.json +1 -1
- package/rules/abie/docs/fix.md +6 -0
- package/rules/abie/js/docs/applies.md +6 -0
- package/rules/abie/js/docs/env_dns.md +25 -22
- package/rules/abie/js/docs/firebase_hosting.md +6 -0
- package/rules/abie/js/docs/hc_pairing.md +21 -25
- package/rules/abie/js/docs/ua_http_route.md +27 -19
- package/rules/abie/js/docs/ua_node_selector.md +24 -19
- package/rules/abie/lib/docs/enabled.md +13 -7
- package/rules/abie/lib/docs/env-dns.md +9 -3
- package/rules/abie/lib/docs/hc-yaml.md +6 -0
- package/rules/abie/lib/docs/http-route.md +6 -0
- package/rules/abie/lib/docs/k8s-tree.md +6 -0
- package/rules/abie/lib/docs/kustomization-patches.md +6 -0
- package/rules/abie/lib/docs/overlay-paths.md +6 -0
- package/rules/abie/lib/docs/yaml.md +6 -0
- package/rules/adr/docs/fix.md +6 -0
- package/rules/adr/js/docs/hooks.md +29 -244
- package/rules/bun/docs/fix.md +6 -0
- package/rules/bun/js/docs/layout.md +37 -375
- package/rules/capacitor/docs/fix.md +22 -108
- package/rules/capacitor/js/docs/platforms.md +62 -268
- package/rules/changelog/docs/fix.md +6 -0
- package/rules/changelog/js/docs/consistency.md +36 -383
- package/rules/changelog/lib/docs/package-manifest.md +6 -0
- package/rules/ci4/docs/fix.md +23 -165
- package/rules/ci4/js/docs/marksman_config.md +9 -1
- package/rules/docker/docs/fix.md +6 -0
- package/rules/docker/js/docs/lint.md +55 -239
- package/rules/docker/lib/docs/docker-hadolint.md +6 -0
- package/rules/docker/lib/docs/docker-mirror.md +6 -0
- package/rules/docker/lib/docs/docker-native-addon.md +6 -0
- package/rules/docker/lib/docs/docker-nginx-user.md +6 -0
- package/rules/docker/lint/docs/lint.md +9 -1
- package/rules/efes/docs/fix.md +6 -0
- package/rules/feedback/docs/fix.md +21 -131
- package/rules/ga/docs/fix.md +14 -12
- package/rules/ga/js/docs/lint.md +12 -9
- package/rules/ga/js/docs/workflows.md +20 -19
- package/rules/ga/lint/docs/lint.md +6 -0
- package/rules/graphql/docs/fix.md +6 -0
- package/rules/graphql/js/docs/tooling.md +18 -253
- package/rules/graphql/lib/docs/graphql-gql-scan.md +6 -0
- package/rules/hasura/docs/fix.md +18 -111
- package/rules/image-avif/docs/fix.md +6 -0
- package/rules/image-avif/js/docs/avif_generation.md +6 -0
- package/rules/js-bun-db/lib/docs/bun-sql-scan.md +9 -3
- package/rules/js-bun-redis/lib/docs/redis-imports.md +6 -0
- package/rules/js-lint/js/docs/utils_imports.md +6 -0
- package/rules/js-lint-ci/docs/fix.md +7 -1
- package/rules/js-mssql/docs/fix.md +6 -0
- package/rules/js-mssql/lib/docs/mssql-pool-scan.md +6 -0
- package/rules/js-run/docs/fix.md +6 -0
- package/rules/js-run/lib/docs/bunyan-imports.md +6 -0
- package/rules/js-run/lib/docs/check-env-scan.md +6 -0
- package/rules/js-run/lib/docs/conn-file-rules.md +6 -0
- package/rules/js-run/lib/docs/conn-imports-scan.md +6 -0
- package/rules/js-run/lib/docs/promise-settimeout-scan.md +6 -0
- package/rules/js-run/lib/docs/temporal-scan.md +6 -0
- package/rules/k8s/docs/fix.md +6 -0
- package/rules/k8s/lint/docs/lint.md +6 -0
- package/rules/nginx-default-tpl/docs/fix.md +6 -0
- package/rules/npm-module/js/docs/header_doc_pointer.md +7 -0
- package/rules/npm-module/js/header_doc_pointer.mjs +2 -8
- package/rules/php/docs/fix.md +6 -0
- package/rules/php/lint/docs/lint.md +6 -0
- package/rules/python/docs/fix.md +6 -0
- package/rules/python/lint/docs/lint.md +6 -0
- package/rules/rego/lint/docs/lint.md +6 -0
- package/rules/release/docs/change.md +6 -0
- package/rules/release/docs/fix.md +6 -0
- package/rules/release/docs/release.md +6 -0
- package/rules/release/lib/docs/aggregate.md +6 -0
- package/rules/release/lib/docs/change-file.md +6 -0
- package/rules/release/lib/docs/fallback.md +6 -0
- package/rules/rust/lib/docs/has-cargo-toml.md +6 -0
- package/rules/security/docs/fix.md +7 -1
- package/rules/security/js/docs/lint.md +6 -0
- package/rules/style-lint/docs/fix.md +6 -0
- package/rules/tauri/docs/fix.md +6 -0
- package/rules/test/docs/fix.md +6 -0
- package/rules/test/js/data/stryker_config/docs/stryker-vue-macros-ignorer.md +6 -0
- package/rules/test/js/data/stryker_config/docs/stryker.config.baseline.md +6 -0
- package/rules/test/js/data/stryker_config/docs/stryker.config.vue.baseline.md +6 -0
- package/rules/test/js/data/vitest_config/docs/vitest.config.baseline.md +6 -0
- package/rules/text/docs/fix.md +6 -0
- package/rules/text/lint/docs/lint.md +6 -0
- package/rules/text/lint/docs/run-dotenv-linter.md +6 -0
- package/rules/text/lint/docs/run-shellcheck.md +6 -0
- package/rules/text/lint/docs/run-v8r.md +6 -0
- package/rules/vue/lib/docs/vue-forbidden-imports.md +6 -0
- package/scripts/coverage-classify/cache.mjs +1 -1
- package/scripts/coverage-classify/docs/apply.md +6 -0
- package/scripts/coverage-classify/docs/cache.md +6 -0
- package/scripts/coverage-classify/docs/prompt.md +6 -0
- package/scripts/coverage-classify/docs/verdict-schema.md +6 -0
- package/scripts/coverage-classify/prompt.mjs +1 -1
- package/scripts/coverage-fix-extract.mjs +1 -1
- package/scripts/coverage-fix.mjs +2 -1
- package/scripts/docs/auto-skills.md +6 -0
- package/scripts/docs/build-agents-commands.md +7 -1
- package/scripts/docs/cli-entry.md +6 -0
- package/scripts/docs/coverage-fix-extract.md +6 -0
- package/scripts/docs/coverage-fix.md +6 -0
- package/scripts/docs/ensure-nitra-cursor-dev-dependencies.md +6 -0
- package/scripts/docs/lint-cli.md +6 -0
- package/scripts/docs/post-tool-use-fix.md +6 -0
- package/scripts/docs/rename-yaml-extensions.md +6 -0
- package/scripts/docs/skills-cli.md +6 -0
- package/scripts/docs/sync-setup-bun-deps-action.md +6 -0
- package/scripts/docs/upgrade-nitra-cursor-and-install.md +6 -0
- package/scripts/docs/worktree-cli.md +6 -0
- package/scripts/lib/docs/assert-project-root.md +6 -0
- package/scripts/lib/docs/check-mdc-template-refs.md +6 -0
- package/scripts/lib/docs/check-reporter.md +6 -0
- package/scripts/lib/docs/diff-added-lines.md +6 -0
- package/scripts/lib/docs/discover-check-rules-from-cursor.md +6 -0
- package/scripts/lib/docs/discover-checkable-rules.md +6 -0
- package/scripts/lib/docs/ensure-tool.md +6 -0
- package/scripts/lib/docs/generated-markdown.md +6 -0
- package/scripts/lib/docs/gha-workflow.md +6 -0
- package/scripts/lib/docs/inline-template-links.md +6 -0
- package/scripts/lib/docs/list-rule-ids.md +6 -0
- package/scripts/lib/docs/load-cursor-config.md +6 -0
- package/scripts/lib/docs/mirror-parity.md +6 -0
- package/scripts/lib/docs/read-n-cursor-config-lite.md +6 -0
- package/scripts/lib/docs/resolve-target-files.md +6 -0
- package/scripts/lib/docs/root-notice.md +6 -0
- package/scripts/lib/docs/rule-meta-helpers.md +6 -0
- package/scripts/lib/docs/rule-meta.md +6 -0
- package/scripts/lib/docs/run-conftest-batch.md +6 -0
- package/scripts/lib/docs/run-lint-step.md +6 -0
- package/scripts/lib/docs/run-rule-cli.md +6 -0
- package/scripts/lib/docs/run-rule.md +6 -0
- package/scripts/lib/docs/run-standard-lint.md +6 -0
- package/scripts/lib/docs/run-standard-rule.md +6 -0
- package/scripts/lib/docs/skill-meta.md +6 -0
- package/scripts/lib/docs/template.md +6 -0
- package/scripts/lib/docs/timing-summary.md +6 -0
- package/scripts/lib/docs/workspaces.md +6 -0
- package/scripts/lib/docs/worktree-notice.md +6 -0
- package/scripts/lib/docs/worktree.md +6 -0
- package/scripts/lib/mirror-parity.mjs +1 -1
- package/scripts/lib/root-notice.mjs +1 -1
- package/scripts/lib/worktree-notice.mjs +5 -5
- package/scripts/lib/worktree.mjs +1 -1
- package/scripts/sync-claude-config.mjs +3 -0
- package/scripts/utils/docs/ast-scan-utils.md +6 -0
- package/scripts/utils/docs/ensure-gitignore-entries.md +6 -0
- package/scripts/utils/docs/find-package-json-paths.md +6 -0
- package/scripts/utils/docs/lock-cache-dir.md +6 -0
- package/scripts/utils/docs/pass.md +6 -0
- package/scripts/utils/docs/resolve-cargo-manifest.md +6 -0
- package/scripts/utils/docs/resolve-cmd.md +6 -0
- package/scripts/utils/docs/resolve-js-root.md +6 -0
- package/scripts/utils/docs/test-helpers.md +6 -0
- package/scripts/utils/docs/walk-cache.md +6 -0
- package/scripts/utils/docs/walkDir.md +6 -0
- package/scripts/utils/docs/worktree-fingerprint.md +6 -0
- package/scripts/utils/resolve-js-root.mjs +1 -1
- package/skills/doc-aggregate/SKILL.md +129 -0
- package/skills/doc-aggregate/js/docgen-ignore.mjs +9 -0
- package/skills/{docgen → doc-aggregate}/js/docgen-scan.mjs +22 -67
- package/skills/doc-aggregate/js/docs/docgen-ignore.md +21 -0
- package/skills/doc-files/SKILL.md +100 -0
- package/skills/doc-files/js/docgen-crc.mjs +164 -0
- package/skills/{docgen → doc-files}/js/docgen-extract-anchors.mjs +48 -13
- package/skills/{docgen → doc-files}/js/docgen-extract.mjs +39 -10
- package/skills/doc-files/js/docgen-files-batch.mjs +181 -0
- package/skills/doc-files/js/docgen-gen.mjs +336 -0
- package/skills/{docgen → doc-files}/js/docgen-prompts.mjs +65 -50
- package/skills/doc-files/js/docgen-scan.mjs +298 -0
- package/skills/doc-files/js/docs/docgen-crc.md +32 -0
- package/skills/doc-files/js/docs/docgen-extract-anchors.md +27 -0
- package/skills/doc-files/js/docs/docgen-extract.md +29 -0
- package/skills/doc-files/js/docs/docgen-files-batch.md +25 -0
- package/skills/doc-files/js/docs/docgen-gen.md +30 -0
- package/skills/doc-files/js/docs/docgen-prompts.md +32 -0
- package/skills/doc-files/js/docs/docgen-scan.md +25 -0
- package/skills/doc-files/js/units-js.mjs +139 -0
- package/skills/doc-files/js/units.mjs +19 -0
- package/skills/doc-files/meta.json +1 -0
- package/skills/fix/js/docs/llm-worker.md +6 -0
- package/skills/fix/js/docs/orchestrator.md +6 -0
- package/skills/fix/js/llm-worker.mjs +3 -3
- package/skills/fix/js/orchestrator.mjs +1 -1
- package/skills/start-check/js/check.mjs +5 -3
- package/skills/start-check/js/docs/check.md +6 -0
- package/skills/docgen/SKILL.md +0 -224
- package/skills/docgen/bench/etalon/firebase_hosting.md +0 -19
- package/skills/docgen/bench/etalon/k8s-tree.md +0 -24
- package/skills/docgen/bench/etalon/overlay-paths.md +0 -24
- package/skills/docgen/js/docgen-batch-omlx.mjs +0 -82
- package/skills/docgen/js/docgen-batch.mjs +0 -95
- package/skills/docgen/js/docgen-compare-pi-vs-direct.mjs +0 -95
- package/skills/docgen/js/docgen-gen.mjs +0 -306
- package/skills/docgen/js/docs/docgen-extract.md +0 -28
- package/skills/docgen/js/docs/docgen-gen.md +0 -41
- package/skills/docgen/js/docs/docgen-ignore.md +0 -24
- package/skills/docgen/js/docs/docgen-prompts.md +0 -24
- package/skills/docgen/js/docs/docgen-scan.md +0 -48
- /package/skills/{docgen → doc-aggregate}/meta.json +0 -0
- /package/skills/{docgen → doc-files}/js/docgen-ignore.mjs +0 -0
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
---
|
|
2
|
+
docgen:
|
|
3
|
+
source: npm/scripts/lib/mirror-parity.mjs
|
|
4
|
+
crc: 15dc336a
|
|
5
|
+
---
|
|
6
|
+
|
|
1
7
|
## Огляд
|
|
2
8
|
|
|
3
9
|
Модуль `mirror-parity.mjs` забезпечує перевірку парності (parity) між «дзеркальними» файлами правил Cursor у `.cursor/rules/n-<id>.mdc` та їх канонічними джерелами у `npm/rules/<id>/<id>.mdc`. Ідея така: репозиторій містить два представлення одного й того ж правила:
|
|
@@ -19,7 +19,7 @@ export const ROOT_START = '<!-- n-cursor:root:start -->'
|
|
|
19
19
|
export const ROOT_END = '<!-- n-cursor:root:end -->'
|
|
20
20
|
|
|
21
21
|
/** Наявний блок разом із сусідніми порожніми рядками (для чистого видалення). */
|
|
22
|
-
const BLOCK_RE = /\n
|
|
22
|
+
const BLOCK_RE = /\n{0,8}<!-- n-cursor:root:start -->[\s\S]*?<!-- n-cursor:root:end -->\n{0,8}/u
|
|
23
23
|
|
|
24
24
|
/** Закриття YAML-frontmatter на початку файла. */
|
|
25
25
|
const FRONTMATTER_RE = /^(---\n[\s\S]*?\n---\n)/u
|
|
@@ -25,22 +25,22 @@ export const WORKTREE_END = '<!-- n-cursor:worktree:end -->'
|
|
|
25
25
|
const FALLBACK_SUFFIX = 'task'
|
|
26
26
|
|
|
27
27
|
/** Наявний блок разом із сусідніми порожніми рядками (для чистого видалення). */
|
|
28
|
-
const BLOCK_RE = /\n
|
|
28
|
+
const BLOCK_RE = /\n{0,8}<!-- n-cursor:worktree:start -->[\s\S]*?<!-- n-cursor:worktree:end -->\n{0,8}/u
|
|
29
29
|
|
|
30
30
|
/** Закриття YAML-frontmatter на початку файла. */
|
|
31
31
|
const FRONTMATTER_RE = /^(---\n[\s\S]*?\n---\n)/u
|
|
32
32
|
|
|
33
33
|
/** Значення `name` з YAML-frontmatter. */
|
|
34
|
-
const NAME_RE = /^name
|
|
34
|
+
const NAME_RE = /^name:[ \t]{0,8}["']?([^"'\n]+?)["']?[ \t]{0,8}$/mu
|
|
35
35
|
|
|
36
36
|
/** Перший H1 як fallback, якщо frontmatter не містить `name`. */
|
|
37
|
-
const H1_RE =
|
|
37
|
+
const H1_RE = /^#[ \t]{1,8}(.+)$/mu
|
|
38
38
|
|
|
39
39
|
const N_PREFIX_RE = /^n-/u
|
|
40
40
|
const COMBINING_DIACRITICS_RE = /[̀-ͯ]/gu
|
|
41
41
|
const NON_ALPHANUM_RE = /[^a-z0-9]+/gu
|
|
42
|
-
const TRAILING_DASHES_RE =
|
|
43
|
-
const TRAILING_DASH_RE =
|
|
42
|
+
const TRAILING_DASHES_RE = /^-{1,80}|-{1,80}$/gu
|
|
43
|
+
const TRAILING_DASH_RE = /-{1,80}$/u
|
|
44
44
|
const LEADING_NEWLINES_RE = /^\n+/u
|
|
45
45
|
|
|
46
46
|
const CYRILLIC_TRANSLIT = new Map(
|
package/scripts/lib/worktree.mjs
CHANGED
|
@@ -28,7 +28,7 @@ export function sanitizeBranch(branch) {
|
|
|
28
28
|
const sanitized = branch
|
|
29
29
|
.trim()
|
|
30
30
|
.replace(UNSAFE_PATH_CHARS_RE, '-')
|
|
31
|
-
.replaceAll(
|
|
31
|
+
.replaceAll(/^-{1,80}|-{1,80}$/gu, '')
|
|
32
32
|
if (sanitized === '') {
|
|
33
33
|
throw new Error(`worktree: імʼя гілки "${branch}" не містить допустимих символів`)
|
|
34
34
|
}
|
|
@@ -32,6 +32,8 @@ import { join } from 'node:path'
|
|
|
32
32
|
|
|
33
33
|
/** Маркер PostToolUse fix-hook'а (`npx --no \@nitra/cursor post-tool-use-fix`). */
|
|
34
34
|
export const MANAGED_HOOK_COMMAND_MARKER = '@nitra/cursor post-tool-use-fix'
|
|
35
|
+
/** Маркер doc-files staleness-hook'ів (PostToolUse `--hook` і Stop-гейт `--git`). */
|
|
36
|
+
export const DOC_FILES_HOOK_COMMAND_MARKER = '@nitra/cursor doc-files check'
|
|
35
37
|
/** Legacy-маркер старого Stop-hook'а — лишаємо для cleanup-у при оновленні існуючих інсталяцій. */
|
|
36
38
|
export const LEGACY_STOP_HOOK_COMMAND_MARKER = '@nitra/cursor stop-hook'
|
|
37
39
|
/** Маркер ADR Stop-hook'а — підрядок шляху до bash-скрипта capture-decisions. */
|
|
@@ -48,6 +50,7 @@ export const CURSOR_ADR_NORMALIZE_HOOK_COMMAND_MARKER = '.claude/hooks/normalize
|
|
|
48
50
|
*/
|
|
49
51
|
export const MANAGED_HOOK_COMMAND_MARKERS = Object.freeze([
|
|
50
52
|
MANAGED_HOOK_COMMAND_MARKER,
|
|
53
|
+
DOC_FILES_HOOK_COMMAND_MARKER,
|
|
51
54
|
LEGACY_STOP_HOOK_COMMAND_MARKER,
|
|
52
55
|
ADR_HOOK_COMMAND_MARKER,
|
|
53
56
|
ADR_NORMALIZE_HOOK_COMMAND_MARKER
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: doc-aggregate
|
|
3
|
+
description: >-
|
|
4
|
+
Агрегуюча документація за запитом: module-summary на кожен логічний модуль (docs/ARCHITECTURE.md) і доменні доки бізнес-процесів у кореневій docs/ — синтез поверх готових файлових док (doc-files), батч-диспатч субагентів у worktree
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# doc-aggregate — агрегуюча документація (за запитом)
|
|
8
|
+
|
|
9
|
+
## Мета
|
|
10
|
+
|
|
11
|
+
Синтезувати документацію вищого рівня поверх **готових файлових док** (їх підтримує
|
|
12
|
+
обовʼязковий скіл `doc-files`). Два рівні, строго послідовно:
|
|
13
|
+
|
|
14
|
+
1. **Tier 2 — module-summary**: `<module_root>/docs/ARCHITECTURE.md`, субагент на модуль.
|
|
15
|
+
2. **Tier 3 — доменні доки**: `docs/<домен>.md` у кореневій `docs/`, субагент-синтезатор
|
|
16
|
+
виділяє бізнес-домени й пише файл на кожен домен.
|
|
17
|
+
|
|
18
|
+
Агрегат ніколи не випереджає джерело: Tier 3 — лише після завершення всього Tier 2.
|
|
19
|
+
Цей скіл викликається **за запитом** (не обовʼязковий крок задачі).
|
|
20
|
+
|
|
21
|
+
## ⚠️ Паралелізм
|
|
22
|
+
|
|
23
|
+
Tier 2 — батчами **по 5** субагентів одночасно (кожен пише свій файл, гонок немає).
|
|
24
|
+
Tier 3 — **один** субагент-синтезатор після завершення всього Tier 2.
|
|
25
|
+
|
|
26
|
+
## Передумова
|
|
27
|
+
|
|
28
|
+
- Доступний `npx @nitra/cursor`.
|
|
29
|
+
- Файлові доки мають бути свіжі. Перевір і за потреби онови перед агрегацією:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx @nitra/cursor doc-files check --git
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Якщо багато застарілих — спершу прожени `npx @nitra/cursor doc-files gen`.
|
|
36
|
+
|
|
37
|
+
## Крок 1: Tier 2 — module-summary
|
|
38
|
+
|
|
39
|
+
Зібрати список модулів:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx @nitra/cursor doc-aggregate modules
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Команда друкує JSON-масив (усі шляхи абсолютні):
|
|
46
|
+
|
|
47
|
+
```json
|
|
48
|
+
[
|
|
49
|
+
{
|
|
50
|
+
"moduleRoot": "/abs/npm/rules/adr",
|
|
51
|
+
"relRoot": "npm/rules/adr",
|
|
52
|
+
"slug": "npm-rules-adr",
|
|
53
|
+
"docPath": "/abs/npm/rules/adr/docs/ARCHITECTURE.md",
|
|
54
|
+
"members": ["npm/rules/adr/index.mjs"],
|
|
55
|
+
"exists": false
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
module-summary **завжди регенерується** (це агрегат — поле `exists` ігноруй). Розбий модулі
|
|
61
|
+
на батчі по 5 і диспатч субагентів. Промпт кожного (підстав `relRoot`, `docPath`, `members`):
|
|
62
|
+
|
|
63
|
+
```
|
|
64
|
+
Напиши module-summary для одного логічного модуля.
|
|
65
|
+
|
|
66
|
+
МОДУЛЬ: <relRoot>
|
|
67
|
+
ЗАПИСАТИ В: <docPath>
|
|
68
|
+
ФАЙЛИ МОДУЛЯ (members): <members>
|
|
69
|
+
|
|
70
|
+
Кроки:
|
|
71
|
+
1. Прочитай файлові доки членів модуля. <member> — sourcePath відносно кореня проєкту
|
|
72
|
+
(= поточний CWD); його файлова дока — <CWD>/<dir>/docs/<stem>.md. За потреби зазирни
|
|
73
|
+
в самі файли.
|
|
74
|
+
2. Створи теку для <docPath>, якщо її немає.
|
|
75
|
+
3. Запиши markdown у <docPath> за тими ж правилами стилю, що й файлова дока
|
|
76
|
+
(українська, чистий Markdown, контекстна незалежність, без HTML).
|
|
77
|
+
|
|
78
|
+
Секції module-summary:
|
|
79
|
+
## Огляд модуля — призначення модуля <relRoot>, його роль у проєкті.
|
|
80
|
+
## Ключові файли — список із кліковими посиланнями (відносними до розташування цього
|
|
81
|
+
ARCHITECTURE.md) на члени модуля та їхні файлові доки.
|
|
82
|
+
## Публічний API — що модуль експортує назовні.
|
|
83
|
+
## Внутрішній потік — як компоненти модуля взаємодіють.
|
|
84
|
+
## Підмодулі — вкладені модулі, якщо є.
|
|
85
|
+
|
|
86
|
+
Поверни лише підтвердження, що файл <docPath> записано.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Крок 2: Tier 3 — доменні доки
|
|
90
|
+
|
|
91
|
+
Після завершення **всіх** module-summary диспатч **одного** субагента-синтезатора.
|
|
92
|
+
У промпт підстав конкретний перелік шляхів module-summary (`<module_root>/docs/ARCHITECTURE.md`
|
|
93
|
+
кожного модуля з виводу `doc-aggregate modules`), а не інструкцію їх шукати. Промпт:
|
|
94
|
+
|
|
95
|
+
```
|
|
96
|
+
Синтезуй доменну документацію бізнес-процесів проєкту.
|
|
97
|
+
|
|
98
|
+
ДЖЕРЕЛА (module-summary, читай усі): <перелік шляхів ARCHITECTURE.md, підставлений вище>
|
|
99
|
+
|
|
100
|
+
Кроки:
|
|
101
|
+
1. Прочитай усі module-summary.
|
|
102
|
+
2. Виділи бізнес-домени та процеси (можуть перетинати межі модулів). Доменів може бути багато.
|
|
103
|
+
3. Для КОЖНОГО домену запиши окремий файл docs/<домен>.md у кореневій docs/:
|
|
104
|
+
- назва файлу — короткий kebab-slug домену;
|
|
105
|
+
- не перезаписуй файлові доки кореневих файлів у docs/ (напр. app.md, eslint.config.md):
|
|
106
|
+
якщо слаґ домену збігається з іменем такого файлу — додай суфікс -domain
|
|
107
|
+
(напр. app-domain.md). Інакше пиши docs/<домен>.md як є;
|
|
108
|
+
- опиши бізнес-процес домену з кліковими відносними посиланнями на module-summary, конкретні файли й директорії.
|
|
109
|
+
|
|
110
|
+
Правила стилю — ті ж (українська, чистий Markdown, контекстна незалежність, без HTML).
|
|
111
|
+
|
|
112
|
+
Поверни перелік створених файлів docs/<домен>.md.
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Крок 3: Підсумок
|
|
116
|
+
|
|
117
|
+
```
|
|
118
|
+
✓ doc-aggregate завершено.
|
|
119
|
+
Tier 2 (модулі): <M> module-summary.
|
|
120
|
+
Tier 3 (домени): <D> доменних доків у docs/.
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Перелічи файли з помилками (субагент впав або не записав `docPath`), якщо такі є.
|
|
124
|
+
Помилка одного модуля не зупиняє решту.
|
|
125
|
+
|
|
126
|
+
## Нотатки
|
|
127
|
+
|
|
128
|
+
- Не комітити автоматично — користувач вирішує, коли комітити згенеровану доку.
|
|
129
|
+
- Файлові доки (Tier 1) — окремий обовʼязковий скіл `doc-files`; цей скіл їх не пише, лише агрегує.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Re-export спільного списку ignore-глобів зі скіла doc-files.
|
|
3
|
+
*
|
|
4
|
+
* Канонічне джерело — `npm/skills/doc-files/js/docgen-ignore.mjs`: обидва скіли
|
|
5
|
+
* (file-level доки і агрегати) мусять бачити однакове дерево кодових файлів,
|
|
6
|
+
* інакше агрегат посилатиметься на файли без док (або навпаки). Залежність
|
|
7
|
+
* спрямована doc-aggregate → doc-files за ADR про розбиття docgen.
|
|
8
|
+
*/
|
|
9
|
+
export * from '../../doc-files/js/docgen-ignore.mjs'
|