@nitra/cursor 11.4.1 → 12.0.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/hooks/normalize-decisions.sh +34 -3
- package/.pi-template/extensions/n-cursor-adr/docs/index.md +3 -5
- package/CHANGELOG.md +12 -0
- package/bin/n-cursor.js +2 -8
- package/docs/index.md +12 -0
- package/docs/stryker.config.md +3 -5
- package/docs/vitest.config.md +3 -5
- package/lib/docs/index.md +14 -0
- package/lib/docs/llm.md +4 -6
- package/lib/docs/models.md +3 -5
- package/lib/docs/omlx-trace.md +3 -5
- package/lib/docs/omlx.md +4 -6
- package/package.json +2 -1
- package/rules/abie/docs/fix.md +3 -5
- package/rules/abie/docs/index.md +11 -0
- package/rules/abie/js/docs/applies.md +3 -5
- package/rules/abie/js/docs/env_dns.md +3 -5
- package/rules/abie/js/docs/firebase_hosting.md +3 -5
- package/rules/abie/js/docs/hc_pairing.md +3 -5
- package/rules/abie/js/docs/index.md +16 -0
- package/rules/abie/js/docs/ua_http_route.md +3 -5
- package/rules/abie/js/docs/ua_node_selector.md +3 -5
- package/rules/abie/lib/docs/enabled.md +3 -5
- package/rules/abie/lib/docs/env-dns.md +3 -5
- package/rules/abie/lib/docs/hc-yaml.md +3 -5
- package/rules/abie/lib/docs/http-route.md +3 -5
- package/rules/abie/lib/docs/index.md +18 -0
- package/rules/abie/lib/docs/k8s-tree.md +3 -5
- package/rules/abie/lib/docs/kustomization-patches.md +3 -5
- package/rules/abie/lib/docs/overlay-paths.md +3 -5
- package/rules/abie/lib/docs/yaml.md +3 -5
- package/rules/adr/adr.mdc +2 -2
- package/rules/adr/docs/fix.md +3 -5
- package/rules/adr/docs/index.md +11 -0
- package/rules/adr/js/docs/hooks.md +3 -5
- package/rules/adr/js/docs/index.md +11 -0
- package/rules/bun/docs/fix.md +3 -5
- package/rules/bun/docs/index.md +11 -0
- package/rules/bun/js/docs/index.md +11 -0
- package/rules/bun/js/docs/layout.md +3 -5
- package/rules/capacitor/docs/fix.md +3 -5
- package/rules/capacitor/docs/index.md +11 -0
- package/rules/capacitor/js/docs/index.md +11 -0
- package/rules/capacitor/js/docs/platforms.md +3 -5
- package/rules/changelog/docs/fix.md +3 -5
- package/rules/changelog/docs/index.md +11 -0
- package/rules/changelog/js/docs/consistency.md +3 -5
- package/rules/changelog/js/docs/index.md +11 -0
- package/rules/changelog/lib/docs/index.md +11 -0
- package/rules/changelog/lib/docs/package-manifest.md +3 -5
- package/rules/ci4/docs/fix.md +3 -5
- package/rules/ci4/docs/index.md +11 -0
- package/rules/ci4/js/docs/index.md +11 -0
- package/rules/ci4/js/docs/marksman_config.md +3 -5
- package/rules/doc-files/docs/fix.md +3 -5
- package/rules/doc-files/docs/index.md +11 -0
- package/rules/doc-files/js/docgen-crc.mjs +50 -14
- package/rules/doc-files/js/docgen-files-batch.mjs +73 -2
- package/rules/doc-files/js/docs/docgen-crc.md +4 -6
- package/rules/doc-files/js/docs/docgen-extract-anchors.md +3 -5
- package/rules/doc-files/js/docs/docgen-extract.md +3 -5
- package/rules/doc-files/js/docs/docgen-files-batch.md +4 -6
- package/rules/doc-files/js/docs/docgen-gen.md +4 -6
- package/rules/doc-files/js/docs/docgen-ignore.md +3 -5
- package/rules/doc-files/js/docs/docgen-judge-measure.md +3 -5
- package/rules/doc-files/js/docs/docgen-judge.md +3 -5
- package/rules/doc-files/js/docs/docgen-prompts.md +3 -5
- package/rules/doc-files/js/docs/docgen-scan.md +4 -6
- package/rules/doc-files/js/docs/index.md +24 -0
- package/rules/doc-files/js/docs/lint.md +4 -6
- package/rules/doc-files/js/docs/units-js.md +3 -5
- package/rules/doc-files/js/docs/units-rs.md +3 -5
- package/rules/doc-files/js/docs/units.md +3 -5
- package/rules/doc-files/lint/docs/index.md +11 -0
- package/rules/doc-files/lint/docs/lint.md +3 -5
- package/rules/docker/docs/fix.md +3 -5
- package/rules/docker/docs/index.md +11 -0
- package/rules/docker/js/docs/index.md +11 -0
- package/rules/docker/js/docs/lint.md +3 -5
- package/rules/docker/lib/docs/docker-hadolint.md +3 -5
- package/rules/docker/lib/docs/docker-mirror.md +3 -5
- package/rules/docker/lib/docs/docker-native-addon.md +3 -5
- package/rules/docker/lib/docs/docker-nginx-user.md +3 -5
- package/rules/docker/lib/docs/index.md +14 -0
- package/rules/docker/lint/docs/index.md +11 -0
- package/rules/docker/lint/docs/lint.md +3 -5
- package/rules/efes/docs/fix.md +3 -5
- package/rules/efes/docs/index.md +11 -0
- package/rules/feedback/docs/fix.md +3 -5
- package/rules/feedback/docs/index.md +11 -0
- package/rules/ga/docs/fix.md +3 -5
- package/rules/ga/docs/index.md +11 -0
- package/rules/ga/js/docs/index.md +12 -0
- package/rules/ga/js/docs/lint.md +3 -5
- package/rules/ga/js/docs/workflows.md +3 -5
- package/rules/ga/lint/docs/index.md +11 -0
- package/rules/ga/lint/docs/lint.md +3 -5
- package/rules/graphql/docs/fix.md +3 -5
- package/rules/graphql/docs/index.md +11 -0
- package/rules/graphql/js/docs/index.md +11 -0
- package/rules/graphql/js/docs/tooling.md +3 -5
- package/rules/graphql/lib/docs/graphql-gql-scan.md +3 -5
- package/rules/graphql/lib/docs/index.md +11 -0
- package/rules/hasura/docs/fix.md +3 -5
- package/rules/hasura/docs/index.md +11 -0
- package/rules/hasura/js/docs/index.md +11 -0
- package/rules/hasura/js/docs/internal_urls.md +3 -5
- package/rules/image-avif/docs/fix.md +3 -5
- package/rules/image-avif/docs/index.md +11 -0
- package/rules/image-avif/js/docs/avif_generation.md +3 -5
- package/rules/image-avif/js/docs/index.md +11 -0
- package/rules/image-compress/docs/fix.md +3 -5
- package/rules/image-compress/docs/index.md +11 -0
- package/rules/image-compress/js/docs/index.md +11 -0
- package/rules/image-compress/js/docs/package_setup.md +3 -5
- package/rules/js-bun-db/docs/fix.md +3 -5
- package/rules/js-bun-db/docs/index.md +11 -0
- package/rules/js-bun-db/js/docs/index.md +11 -0
- package/rules/js-bun-db/js/docs/safety.md +3 -5
- package/rules/js-bun-db/lib/docs/bun-sql-scan.md +3 -5
- package/rules/js-bun-db/lib/docs/index.md +11 -0
- package/rules/js-bun-redis/docs/fix.md +3 -5
- package/rules/js-bun-redis/docs/index.md +11 -0
- package/rules/js-bun-redis/js/docs/imports.md +3 -5
- package/rules/js-bun-redis/js/docs/index.md +11 -0
- package/rules/js-bun-redis/lib/docs/index.md +11 -0
- package/rules/js-bun-redis/lib/docs/redis-imports.md +3 -5
- package/rules/js-lint/docs/fix.md +3 -5
- package/rules/js-lint/docs/index.md +11 -0
- package/rules/js-lint/js/docs/index.md +14 -0
- package/rules/js-lint/js/docs/lint-findings.md +3 -5
- package/rules/js-lint/js/docs/lint.md +3 -5
- package/rules/js-lint/js/docs/tooling.md +3 -5
- package/rules/js-lint/js/docs/utils_imports.md +3 -5
- package/rules/js-lint-ci/docs/fix.md +3 -5
- package/rules/js-lint-ci/docs/index.md +11 -0
- package/rules/js-lint-ci/js/docs/index.md +11 -0
- package/rules/js-lint-ci/js/docs/lint.md +3 -5
- package/rules/js-mssql/docs/fix.md +3 -5
- package/rules/js-mssql/docs/index.md +11 -0
- package/rules/js-mssql/js/docs/deps.md +3 -5
- package/rules/js-mssql/js/docs/index.md +11 -0
- package/rules/js-mssql/lib/docs/index.md +11 -0
- package/rules/js-mssql/lib/docs/mssql-pool-scan.md +3 -5
- package/rules/js-run/docs/fix.md +3 -5
- package/rules/js-run/docs/index.md +11 -0
- package/rules/js-run/js/docs/index.md +11 -0
- package/rules/js-run/js/docs/runtime.md +3 -5
- package/rules/js-run/lib/docs/bunyan-imports.md +3 -5
- package/rules/js-run/lib/docs/check-env-scan.md +3 -5
- package/rules/js-run/lib/docs/conn-file-rules.md +3 -5
- package/rules/js-run/lib/docs/conn-imports-scan.md +3 -5
- package/rules/js-run/lib/docs/index.md +16 -0
- package/rules/js-run/lib/docs/promise-settimeout-scan.md +3 -5
- package/rules/js-run/lib/docs/temporal-scan.md +3 -5
- package/rules/k8s/docs/fix.md +3 -5
- package/rules/k8s/docs/index.md +11 -0
- package/rules/k8s/k8s.mdc +10 -0
- package/rules/k8s/lint/docs/index.md +11 -0
- package/rules/k8s/lint/docs/lint.md +3 -5
- package/rules/k8s/policy/manifest/manifest.rego +48 -2
- package/rules/lint/docs/fix.md +3 -5
- package/rules/lint/docs/index.md +11 -0
- package/rules/lint/js/docs/index.md +11 -0
- package/rules/lint/js/docs/orchestrate.md +4 -6
- package/rules/nginx-default-tpl/docs/fix.md +3 -5
- package/rules/nginx-default-tpl/docs/index.md +11 -0
- package/rules/nginx-default-tpl/js/docs/index.md +11 -0
- package/rules/nginx-default-tpl/js/docs/template.md +3 -5
- package/rules/npm-module/docs/fix.md +3 -5
- package/rules/npm-module/docs/index.md +11 -0
- package/rules/npm-module/js/docs/header_doc_pointer.md +3 -5
- package/rules/npm-module/js/docs/index.md +14 -0
- package/rules/npm-module/js/docs/package_structure.md +3 -5
- package/rules/npm-module/js/docs/rule_meta.md +3 -5
- package/rules/npm-module/js/docs/skill_meta.md +3 -5
- package/rules/php/docs/fix.md +3 -5
- package/rules/php/docs/index.md +11 -0
- package/rules/php/js/docs/index.md +11 -0
- package/rules/php/js/docs/tooling.md +3 -5
- package/rules/php/lint/docs/index.md +11 -0
- package/rules/php/lint/docs/lint.md +3 -5
- package/rules/python/docs/fix.md +3 -5
- package/rules/python/docs/index.md +11 -0
- package/rules/python/js/docs/applies.md +3 -5
- package/rules/python/js/docs/index.md +12 -0
- package/rules/python/js/docs/tooling.md +3 -5
- package/rules/python/lint/docs/index.md +11 -0
- package/rules/python/lint/docs/lint.md +3 -5
- package/rules/rego/docs/fix.md +3 -5
- package/rules/rego/docs/index.md +11 -0
- package/rules/rego/js/docs/applies.md +3 -5
- package/rules/rego/js/docs/index.md +12 -0
- package/rules/rego/js/docs/lint.md +3 -5
- package/rules/rego/lint/docs/index.md +11 -0
- package/rules/rego/lint/docs/lint.md +3 -5
- package/rules/release/docs/change.md +3 -5
- package/rules/release/docs/fix.md +3 -5
- package/rules/release/docs/index.md +13 -0
- package/rules/release/docs/release.md +4 -6
- package/rules/release/lib/docs/aggregate.md +3 -5
- package/rules/release/lib/docs/change-file.md +3 -3
- package/rules/release/lib/docs/fallback.md +3 -5
- package/rules/release/lib/docs/index.md +13 -0
- package/rules/rust/docs/fix.md +3 -5
- package/rules/rust/docs/index.md +11 -0
- package/rules/rust/js/docs/applies.md +3 -5
- package/rules/rust/js/docs/index.md +11 -0
- package/rules/rust/lib/docs/has-cargo-toml.md +3 -5
- package/rules/rust/lib/docs/index.md +11 -0
- package/rules/security/docs/fix.md +3 -5
- package/rules/security/docs/index.md +11 -0
- package/rules/security/js/docs/index.md +13 -0
- package/rules/security/js/docs/lint.md +3 -5
- package/rules/security/js/docs/sample_secret.md +3 -5
- package/rules/security/js/docs/trufflehog.md +3 -5
- package/rules/style-lint/docs/fix.md +3 -5
- package/rules/style-lint/docs/index.md +11 -0
- package/rules/style-lint/js/docs/index.md +12 -0
- package/rules/style-lint/js/docs/lint.md +3 -5
- package/rules/style-lint/js/docs/tooling.md +3 -5
- package/rules/tauri/docs/fix.md +3 -5
- package/rules/tauri/docs/index.md +11 -0
- package/rules/tauri/js/docs/cargo_mutants_config.md +3 -5
- package/rules/tauri/js/docs/index.md +12 -0
- package/rules/tauri/js/docs/tooling.md +3 -5
- package/rules/test/docs/fix.md +3 -5
- package/rules/test/docs/index.md +11 -0
- package/rules/test/js/data/stryker_config/docs/index.md +13 -0
- package/rules/test/js/data/stryker_config/docs/stryker-vue-macros-ignorer.md +3 -5
- package/rules/test/js/data/stryker_config/docs/stryker.config.baseline.md +3 -5
- package/rules/test/js/data/stryker_config/docs/stryker.config.vue.baseline.md +3 -5
- package/rules/test/js/data/vitest_config/docs/index.md +11 -0
- package/rules/test/js/data/vitest_config/docs/vitest.config.baseline.md +3 -5
- package/rules/test/js/docs/cargo_mutants_config.md +3 -5
- package/rules/test/js/docs/index.md +16 -0
- package/rules/test/js/docs/location.md +3 -5
- package/rules/test/js/docs/no-process-chdir.md +3 -5
- package/rules/test/js/docs/no-relative-fs-path.md +3 -5
- package/rules/test/js/docs/stryker_config.md +3 -5
- package/rules/test/js/docs/vitest-config-pool-forks.md +3 -5
- package/rules/text/docs/fix.md +3 -5
- package/rules/text/docs/index.md +11 -0
- package/rules/text/js/docs/forbidden-prettier.md +3 -5
- package/rules/text/js/docs/formatting.md +4 -6
- package/rules/text/js/docs/index.md +13 -0
- package/rules/text/js/docs/lint.md +4 -6
- package/rules/text/lint/docs/cspell-fix.md +4 -6
- package/rules/text/lint/docs/index.md +15 -0
- package/rules/text/lint/docs/lint.md +4 -6
- package/rules/text/lint/docs/run-dotenv-linter.md +3 -5
- package/rules/text/lint/docs/run-shellcheck.md +3 -5
- package/rules/text/lint/docs/run-v8r.md +3 -5
- package/rules/vue/docs/fix.md +3 -5
- package/rules/vue/docs/index.md +11 -0
- package/rules/vue/js/docs/index.md +11 -0
- package/rules/vue/js/docs/packages.md +3 -5
- package/rules/vue/lib/docs/index.md +11 -0
- package/rules/vue/lib/docs/vue-forbidden-imports.md +3 -5
- package/rules/worktree/docs/fix.md +3 -5
- package/rules/worktree/docs/index.md +11 -0
- package/rules/worktree/worktree.mdc +8 -8
- package/scripts/coverage-classify/docs/apply.md +3 -5
- package/scripts/coverage-classify/docs/cache.md +3 -5
- package/scripts/coverage-classify/docs/index.md +9 -27
- package/scripts/coverage-classify/docs/prompt.md +3 -5
- package/scripts/coverage-classify/docs/verdict-schema.md +3 -5
- package/scripts/dispatcher/docs/index.md +11 -0
- package/scripts/dispatcher/docs/trace.md +3 -5
- package/scripts/docs/auto-rules.md +3 -5
- package/scripts/docs/auto-skills.md +3 -5
- package/scripts/docs/build-agents-commands.md +3 -5
- package/scripts/docs/cli-entry.md +3 -5
- package/scripts/docs/coverage-fix-extract.md +3 -5
- package/scripts/docs/coverage-fix.md +3 -5
- package/scripts/docs/ensure-nitra-cursor-dev-dependencies.md +3 -5
- package/scripts/docs/index.md +24 -0
- package/scripts/docs/post-tool-use-fix.md +4 -6
- package/scripts/docs/rename-yaml-extensions.md +3 -5
- package/scripts/docs/skills-cli.md +3 -5
- package/scripts/docs/sync-claude-config.md +3 -5
- package/scripts/docs/sync-setup-bun-deps-action.md +3 -5
- package/scripts/docs/upgrade-nitra-cursor-and-install.md +3 -5
- package/scripts/docs/worktree-cli.md +3 -5
- package/scripts/lib/adr/docs/index.md +12 -0
- package/scripts/lib/adr/docs/normalize-cli.md +3 -5
- package/scripts/lib/adr/docs/normalize-pipeline.md +4 -6
- package/scripts/lib/adr/normalize-pipeline.mjs +140 -46
- package/scripts/lib/docs/assert-project-root.md +3 -5
- package/scripts/lib/docs/changed-files.md +3 -5
- package/scripts/lib/docs/check-mdc-template-refs.md +3 -5
- package/scripts/lib/docs/check-reporter.md +3 -5
- package/scripts/lib/docs/diff-added-lines.md +3 -5
- package/scripts/lib/docs/discover-check-rules-from-cursor.md +3 -5
- package/scripts/lib/docs/discover-checkable-rules.md +3 -5
- package/scripts/lib/docs/ensure-tool.md +3 -5
- package/scripts/lib/docs/generated-markdown.md +3 -5
- package/scripts/lib/docs/gha-workflow.md +3 -5
- package/scripts/lib/docs/index.md +44 -0
- package/scripts/lib/docs/inline-template-links.md +3 -5
- package/scripts/lib/docs/list-project-rules-mdc.md +3 -5
- package/scripts/lib/docs/list-rule-ids.md +3 -5
- package/scripts/lib/docs/load-cursor-config.md +3 -5
- package/scripts/lib/docs/mirror-parity.md +3 -3
- package/scripts/lib/docs/read-n-cursor-config-lite.md +3 -5
- package/scripts/lib/docs/resolve-target-files.md +3 -5
- package/scripts/lib/docs/root-notice.md +3 -5
- package/scripts/lib/docs/rule-meta-helpers.md +3 -5
- package/scripts/lib/docs/rule-meta.md +3 -5
- package/scripts/lib/docs/rule-predicates.md +3 -5
- package/scripts/lib/docs/run-conftest-batch.md +3 -5
- package/scripts/lib/docs/run-lint-step.md +3 -5
- package/scripts/lib/docs/run-rule-cli.md +3 -5
- package/scripts/lib/docs/run-rule.md +3 -5
- package/scripts/lib/docs/run-standard-lint.md +3 -5
- package/scripts/lib/docs/run-standard-rule.md +3 -5
- package/scripts/lib/docs/skill-meta.md +3 -5
- package/scripts/lib/docs/sync-gitignore-worktree.md +3 -5
- package/scripts/lib/docs/template.md +3 -5
- package/scripts/lib/docs/timing-summary.md +3 -5
- package/scripts/lib/docs/workspaces.md +3 -5
- package/scripts/lib/docs/worktree-notice.md +3 -5
- package/scripts/lib/docs/worktree.md +3 -5
- package/scripts/lib/fix/docs/index.md +16 -0
- package/scripts/lib/fix/docs/llm-fix-apply.md +3 -5
- package/scripts/lib/fix/docs/llm-lint-fix.md +3 -5
- package/scripts/lib/fix/docs/llm-worker.md +3 -5
- package/scripts/lib/fix/docs/orchestrator.md +3 -5
- package/scripts/lib/fix/docs/run-fix-check.md +3 -5
- package/scripts/lib/fix/docs/t0.md +3 -5
- package/scripts/lib/worktree-notice.mjs +3 -38
- package/scripts/utils/docs/ast-scan-utils.md +3 -5
- package/scripts/utils/docs/ensure-gitignore-entries.md +3 -5
- package/scripts/utils/docs/find-package-json-paths.md +3 -5
- package/scripts/utils/docs/index.md +23 -0
- package/scripts/utils/docs/lock-cache-dir.md +3 -5
- package/scripts/utils/docs/pass.md +3 -5
- package/scripts/utils/docs/resolve-cargo-manifest.md +3 -5
- package/scripts/utils/docs/resolve-cmd.md +3 -5
- package/scripts/utils/docs/resolve-js-root.md +3 -5
- package/scripts/utils/docs/test-helpers.md +3 -5
- package/scripts/utils/docs/walk-cache.md +3 -5
- package/scripts/utils/docs/walkDir.md +3 -5
- package/scripts/utils/docs/with-lock.md +3 -5
- package/scripts/utils/docs/worktree-fingerprint.md +3 -5
- package/skills/doc-aggregate/js/docs/docgen-ignore.md +3 -5
- package/skills/doc-aggregate/js/docs/docgen-scan.md +3 -5
- package/skills/doc-aggregate/js/docs/index.md +12 -0
- package/skills/start-check/js/docs/check.md +3 -5
- package/skills/start-check/js/docs/index.md +11 -0
- package/skills/taze/js/docs/diff.md +3 -5
- package/skills/taze/js/docs/index.md +11 -0
- package/scripts/lib/worktree.mjs +0 -126
- package/scripts/worktree-cli.mjs +0 -230
- package/skills/worktree/SKILL.md +0 -38
- package/skills/worktree/meta.json +0 -1
package/rules/adr/docs/fix.md
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: fix.mjs
|
|
4
|
+
resource: npm/rules/adr/fix.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/adr/fix.mjs
|
|
4
6
|
crc: 38cf876b
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# fix.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Виконує обробку JS-занепокоєних та політики на наданому контексті прогону. Генерація посилання MDC та повернення результату прогону.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: hooks.mjs
|
|
4
|
+
resource: npm/rules/adr/js/hooks.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/adr/js/hooks.mjs
|
|
4
6
|
crc: 3f239faf
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# hooks.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Файл надає публічну функцію `check` для валідації даних. Код використовує конфігурацію з файлу `.local.json` для визначення логіки. Функція працює у режимі, де невдачі повертають `false` або `null` замість генерації винятків. Повідомлення про події передаються за допомогою маркера (adr.mdc).
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
package/rules/bun/docs/fix.md
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: fix.mjs
|
|
4
|
+
resource: npm/rules/bun/fix.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/bun/fix.mjs
|
|
4
6
|
crc: 38cf876b
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# fix.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Виконує обробку JS-занепокоєних даних у наданому контексті прогону. Застосовує визначену політику та генерує посилання MDC. Повертає результат прогону.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: layout.mjs
|
|
4
|
+
resource: npm/rules/bun/js/layout.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/bun/js/layout.mjs
|
|
4
6
|
crc: ba2a6730
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# layout.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Файл надає інструмент для перевірки відповідності даних визначеному контракту. Функція `check` (bun.mdc) виконує перевірку стану даних і повертає логічний результат, що вказує на успішність виконання перевірки. У разі невдачі функція повертає `false` або `null` замість генерації винятку.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: fix.mjs
|
|
4
|
+
resource: npm/rules/capacitor/fix.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/capacitor/fix.mjs
|
|
4
6
|
crc: 38cf876b
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# fix.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Виконує застосування JS-занепокоєних на вхідний контекст прогону, застосовує визначену політику, генерує посилання MDC та повертає результат
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: platforms.mjs
|
|
4
|
+
resource: npm/rules/capacitor/js/platforms.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/capacitor/js/platforms.mjs
|
|
4
6
|
crc: d102129c
|
|
5
7
|
score: 85
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# platforms.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Огляд
|
|
13
11
|
|
|
14
12
|
Цей файл містить інструменти для витягування та перевірки версій Capacitor з залежностей та конфігурацій. Використовується для визначення сумісності версій Capacitor з конфігураціями, а також для збору даних про версії з різних файлів.
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: fix.mjs
|
|
4
|
+
resource: npm/rules/changelog/fix.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/changelog/fix.mjs
|
|
4
6
|
crc: 38cf876b
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# fix.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Виконує застосування JS-занепокоєних на наданому контексті прогону. Застосовує визначену політику та генерує посилання MDC. Повертає результат прогону.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: consistency.mjs
|
|
4
|
+
resource: npm/rules/changelog/js/consistency.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/changelog/js/consistency.mjs
|
|
4
6
|
crc: eaf98d6d
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# consistency.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Перевіряє версіонування проектів у монорепозиторії, порівнюючи версії, зазначені в маніфестах, з даними, отриманими з мережі з https://pypi.org/pypi/. Аналізує відповідність версій встановленим правилам, визначеним у конфігурації res.json. Визначає, чи відповідають версії формату, а також перевіряє наявність змін, порівнюючи їх із даними, описаними у (n-changelog.mdc). При невдачі перевірки повертає false/null, не кидаючи винятків.
|
|
13
11
|
|
|
14
12
|
## Поведінка
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: package-manifest.mjs
|
|
4
|
+
resource: npm/rules/changelog/lib/package-manifest.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/changelog/lib/package-manifest.mjs
|
|
4
6
|
crc: ced8ad49
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# package-manifest.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Модуль `package-manifest.mjs` реалізує **уніфіковану абстракцію маніфесту пакета** для перевірок changelog у багатомовному монорепо. Він приховує відмінності між двома типами маніфестів:
|
|
12
10
|
|
|
13
11
|
- **npm / JS** — файл `package.json` (з полями `name`, `version`, `private`, `files`).
|
package/rules/ci4/docs/fix.md
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: fix.mjs
|
|
4
|
+
resource: npm/rules/ci4/fix.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/ci4/fix.mjs
|
|
4
6
|
crc: 38cf876b
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# fix.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Огляд
|
|
13
11
|
Файл надає функціонал для виконання визначених правил. Публічні методи забезпечують запуск цих правил, повертаючи отримані результати. Дозволяє запускати правила у режимі командного рядка, керуючи виходом процесу на основі отриманих даних.
|
|
14
12
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: marksman_config.mjs
|
|
4
|
+
resource: npm/rules/ci4/js/marksman_config.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/ci4/js/marksman_config.mjs
|
|
4
6
|
crc: 07883aa5
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# marksman_config.mjs
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Модуль `marksman_config.mjs` — це концерн правила `ci4` (`ci4.mdc`), що відповідає за матеріалізацію canonical-конфіга для Marksman LSP у корені проєкту. Модуль експортує єдину функцію `check`, яка перевіряє наявність файлу `.marksman.toml` у заданому робочому каталозі (`cwd`) і, якщо файлу немає, копіює туди baseline-варіант, що поставляється з пакета `@nitra/cursor`.
|
|
12
10
|
|
|
13
11
|
Призначення модуля — забезпечити стабільне, передбачуване середовище для Marksman LSP, який використовується для роботи з Markdown-документами в репо (ADR, документація, README). Без явного `.marksman.toml` Marksman використовує свої вбудовані дефолти, які НЕ збігаються з вимогами правила `ci4.mdc`:
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: fix.mjs
|
|
4
|
+
resource: npm/rules/doc-files/fix.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/doc-files/fix.mjs
|
|
4
6
|
crc: 9df3e88d
|
|
5
7
|
score: 100
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# fix.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Точка входу правила doc-files для каналу `n-cursor fix doc-files`. Перевіряє структурні вимоги
|
|
13
11
|
правила (наявність потрібного GA-workflow і скрипта в `package.json` через policy-канал), не
|
|
14
12
|
чіпаючи вміст самих док.
|
|
@@ -30,6 +30,7 @@
|
|
|
30
30
|
* джерела. На staleness НЕ впливає — звіряється лише `crc`.
|
|
31
31
|
*/
|
|
32
32
|
import { existsSync, readFileSync } from 'node:fs'
|
|
33
|
+
import { basename, extname } from 'node:path'
|
|
33
34
|
import { crc32 as zlibCrc32 } from 'node:zlib'
|
|
34
35
|
import { env } from 'node:process'
|
|
35
36
|
|
|
@@ -49,7 +50,7 @@ export function crc32(input) {
|
|
|
49
50
|
|
|
50
51
|
/** Провідний YAML-frontmatter-блок `---\n…\n---`. */
|
|
51
52
|
const FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n?/u
|
|
52
|
-
const
|
|
53
|
+
const RESOURCE_RE = /^resource:[ \t]+(.+)$/mu
|
|
53
54
|
const CRC_RE = /^[ \t]{0,8}crc:[ \t]{0,8}(.+)$/mu
|
|
54
55
|
const MODEL_RE = /^[ \t]{0,8}model:[ \t]{0,8}(.+)$/mu
|
|
55
56
|
const SCORE_RE = /^[ \t]{0,8}score:[ \t]{0,8}(\d+)$/mu
|
|
@@ -72,9 +73,10 @@ export function parseDocFrontmatter(md) {
|
|
|
72
73
|
const block = match[1]
|
|
73
74
|
const scoreRaw = block.match(SCORE_RE)?.[1]
|
|
74
75
|
const issuesRaw = block.match(ISSUES_RE)?.[1]
|
|
76
|
+
const source = block.match(RESOURCE_RE)?.[1].trim() ?? null
|
|
75
77
|
return {
|
|
76
78
|
data: {
|
|
77
|
-
source
|
|
79
|
+
source,
|
|
78
80
|
crc: block.match(CRC_RE)?.[1].trim() ?? null,
|
|
79
81
|
model: block.match(MODEL_RE)?.[1].trim() ?? null,
|
|
80
82
|
score: scoreRaw === undefined ? null : Number(scoreRaw),
|
|
@@ -94,6 +96,28 @@ export function parseDocFrontmatter(md) {
|
|
|
94
96
|
/** Максимум кодів issues у frontmatter — це маркер, а не повний лог. */
|
|
95
97
|
const MAX_ISSUE_CODES = 8
|
|
96
98
|
|
|
99
|
+
/** OKF type для розширення файлу. */
|
|
100
|
+
const EXT_TYPES = {
|
|
101
|
+
'.js': 'JS Module',
|
|
102
|
+
'.mjs': 'JS Module',
|
|
103
|
+
'.cjs': 'JS Module',
|
|
104
|
+
'.ts': 'TS Module',
|
|
105
|
+
'.vue': 'Vue Component',
|
|
106
|
+
'.py': 'Python Module',
|
|
107
|
+
'.rs': 'Rust Module',
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* OKF `type` для файлу-джерела за розширенням.
|
|
112
|
+
* @param {string} sourcePath відносний шлях джерела
|
|
113
|
+
* @returns {string} тип концепту
|
|
114
|
+
*/
|
|
115
|
+
function typeForSource(sourcePath) {
|
|
116
|
+
return EXT_TYPES[extname(sourcePath).toLowerCase()] ?? 'Source File'
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
|
|
97
121
|
/**
|
|
98
122
|
* Нормалізує issues до YAML-безпечних кодів: бере фрагмент до першого пробілу
|
|
99
123
|
* (зрізає людиночитні хвости помилок), відкидає порожні, обмежує кількість.
|
|
@@ -108,25 +132,34 @@ function issueCodes(issues) {
|
|
|
108
132
|
}
|
|
109
133
|
|
|
110
134
|
/**
|
|
111
|
-
* Будує frontmatter
|
|
135
|
+
* Будує OKF-сумісний frontmatter-блок: OKF-поля верхнього рівня + вкладений `docgen:`
|
|
136
|
+
* з CRC/model/quality. OKF-поля виводяться першими, щоб будь-який OKF-парсер міг їх
|
|
137
|
+
* читати незалежно від `docgen:`-простору назв.
|
|
112
138
|
* @param {string} source відносний шлях джерела
|
|
113
139
|
* @param {string} crc CRC32 джерела у hex
|
|
114
|
-
* @param {{ score: number, issues?: string[], retried?: boolean, judge?: {model?: string} }|null} [quality] det-оцінка
|
|
140
|
+
* @param {{ score: number, issues?: string[], retried?: boolean, judge?: {model?: string} }|null} [quality] det-оцінка доки; null — без полів якості
|
|
115
141
|
* @param {string|null} [model] повний id моделі-генератора; null — без поля `model`
|
|
116
|
-
* @returns {string}
|
|
142
|
+
* @returns {string} OKF-сумісний YAML frontmatter
|
|
117
143
|
*/
|
|
118
144
|
export function buildDocFrontmatter(source, crc, quality = null, model = null) {
|
|
119
|
-
const
|
|
120
|
-
|
|
145
|
+
const okfLines = [
|
|
146
|
+
`type: ${typeForSource(source)}`,
|
|
147
|
+
`title: ${basename(source)}`,
|
|
148
|
+
`resource: ${source}`,
|
|
149
|
+
]
|
|
150
|
+
|
|
151
|
+
// docgen namespace: лише CRC-механіка і quality (source перенесено у resource)
|
|
152
|
+
const docgenLines = [`crc: ${crc}`]
|
|
153
|
+
if (model) docgenLines.push(`model: ${model}`)
|
|
121
154
|
if (quality && typeof quality.score === 'number') {
|
|
122
|
-
|
|
155
|
+
docgenLines.push(`score: ${quality.score}`)
|
|
123
156
|
const codes = issueCodes(quality.issues ?? [])
|
|
124
|
-
if (codes.length > 0)
|
|
125
|
-
if (quality.retried)
|
|
126
|
-
if (quality.judge && quality.judge.model)
|
|
157
|
+
if (codes.length > 0) docgenLines.push(`issues: ${codes.join(',')}`)
|
|
158
|
+
if (quality.retried) docgenLines.push('retried: true')
|
|
159
|
+
if (quality.judge && quality.judge.model) docgenLines.push(`judgeModel: ${quality.judge.model}`)
|
|
127
160
|
}
|
|
128
|
-
const indented =
|
|
129
|
-
return `---\ndocgen:\n${indented}\n---\n`
|
|
161
|
+
const indented = docgenLines.map(l => ' ' + l).join('\n')
|
|
162
|
+
return `---\n${okfLines.join('\n')}\ndocgen:\n${indented}\n---\n`
|
|
130
163
|
}
|
|
131
164
|
|
|
132
165
|
/**
|
|
@@ -138,9 +171,12 @@ export function buildDocFrontmatter(source, crc, quality = null, model = null) {
|
|
|
138
171
|
* @param {string|null} [model] повний id моделі-генератора; null — без поля `model`
|
|
139
172
|
* @returns {string} md зі свіжим frontmatter
|
|
140
173
|
*/
|
|
174
|
+
const LEADING_H1_RE = /^#[^\n]*\n+/u
|
|
175
|
+
|
|
141
176
|
export function stampDoc(md, source, crc, quality = null, model = null) {
|
|
142
177
|
const { body } = parseDocFrontmatter(md)
|
|
143
|
-
|
|
178
|
+
const cleanBody = body.replace(LEADING_NEWLINES_RE, '').replace(LEADING_H1_RE, '')
|
|
179
|
+
return `${buildDocFrontmatter(source, crc, quality, model)}\n${cleanBody}`
|
|
144
180
|
}
|
|
145
181
|
|
|
146
182
|
/**
|
|
@@ -10,8 +10,8 @@
|
|
|
10
10
|
* Перед масовим прогоном — health-check omlx: memory-guard зайнятої 8GB машини
|
|
11
11
|
* означає «відклади прогін», а не сотні хибних «✗» у звіті.
|
|
12
12
|
*/
|
|
13
|
-
import { readFileSync, mkdirSync, writeFileSync, existsSync, statSync } from 'node:fs'
|
|
14
|
-
import { dirname, join } from 'node:path'
|
|
13
|
+
import { readFileSync, readdirSync, mkdirSync, writeFileSync, existsSync, statSync } from 'node:fs'
|
|
14
|
+
import { basename, dirname, join, relative } from 'node:path'
|
|
15
15
|
|
|
16
16
|
import { isRunAsCli } from '../../../scripts/cli-entry.mjs'
|
|
17
17
|
import { classifyOmlxError, preflightLocalModel } from '../../../lib/llm.mjs'
|
|
@@ -149,6 +149,61 @@ async function generateOne(file, root, progress, stats) {
|
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
/** Regex для витягу OKF-полів із frontmatter існуючої доки (швидкий, без YAML-парсера). */
|
|
153
|
+
const OKF_TITLE_RE = /^title: (.+)$/mu
|
|
154
|
+
const OKF_TYPE_RE = /^type: (.+)$/mu
|
|
155
|
+
const OKF_FRONTMATTER_RE = /^---\n([\s\S]*?)\n---\n?/u
|
|
156
|
+
const OKF_RESOURCE_RE = /^resource:[ \t]+(.+)$/mu
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Генерує/оновлює `index.md` у директорії `docs/` — OKF Directory Index із таблицею
|
|
160
|
+
* всіх наявних doc-файлів у цій директорії. Не зачіпає `index.md` при відсутності
|
|
161
|
+
* інших doc-файлів.
|
|
162
|
+
* @param {string} docsAbsDir абсолютний шлях директорії `docs/`
|
|
163
|
+
* @param {string} root абсолютний корінь проєкту
|
|
164
|
+
* @returns {void}
|
|
165
|
+
*/
|
|
166
|
+
function generateDirIndex(docsAbsDir, root) {
|
|
167
|
+
const allMd = readdirSync(docsAbsDir).filter(f => f.endsWith('.md')).sort()
|
|
168
|
+
|
|
169
|
+
// Якщо index.md вже є дока для source-файлу (має docgen.source → index.*) — не чіпаємо
|
|
170
|
+
if (allMd.includes('index.md')) {
|
|
171
|
+
const existingFm = readFileSync(join(docsAbsDir, 'index.md'), 'utf8').match(OKF_FRONTMATTER_RE)?.[1] ?? ''
|
|
172
|
+
const existingSource = existingFm.match(OKF_RESOURCE_RE)?.[1]?.trim() ?? ''
|
|
173
|
+
const existingType = existingFm.match(OKF_TYPE_RE)?.[1]?.trim() ?? ''
|
|
174
|
+
// Пропускаємо якщо це дока source-файлу, а не Directory Index
|
|
175
|
+
if (existingSource && existingType !== 'Directory Index') return
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
const files = allMd.filter(f => f !== 'index.md')
|
|
179
|
+
if (files.length === 0) return
|
|
180
|
+
|
|
181
|
+
const sourceDirRel = relative(root, dirname(docsAbsDir)) || '.'
|
|
182
|
+
|
|
183
|
+
const rows = files.map(f => {
|
|
184
|
+
const md = readFileSync(join(docsAbsDir, f), 'utf8')
|
|
185
|
+
const fm = md.match(OKF_FRONTMATTER_RE)?.[1] ?? ''
|
|
186
|
+
const resource = fm.match(OKF_RESOURCE_RE)?.[1]?.trim()
|
|
187
|
+
const title = fm.match(OKF_TITLE_RE)?.[1]?.trim() ?? (resource ? basename(resource) : f.replace(/\.md$/, ''))
|
|
188
|
+
const type = fm.match(OKF_TYPE_RE)?.[1]?.trim() ?? 'Source File'
|
|
189
|
+
return `| [${title}](${f}) | ${type} |`
|
|
190
|
+
})
|
|
191
|
+
|
|
192
|
+
const content = `---
|
|
193
|
+
type: Directory Index
|
|
194
|
+
title: ${sourceDirRel}
|
|
195
|
+
resource: ${sourceDirRel}/
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
# ${sourceDirRel}
|
|
199
|
+
|
|
200
|
+
| Файл | Тип |
|
|
201
|
+
|---|---|
|
|
202
|
+
${rows.join('\n')}
|
|
203
|
+
`
|
|
204
|
+
writeFileSync(join(docsAbsDir, 'index.md'), content)
|
|
205
|
+
}
|
|
206
|
+
|
|
152
207
|
/**
|
|
153
208
|
* Підсумковий звіт прогону у stdout.
|
|
154
209
|
* @param {{ ok: number, degraded: number, err: number, errors: string[], skipped: string[] }} stats статистика
|
|
@@ -235,6 +290,13 @@ export async function runGenerationBatch(targets, root, { headline } = {}) {
|
|
|
235
290
|
}
|
|
236
291
|
|
|
237
292
|
reportStats(stats)
|
|
293
|
+
|
|
294
|
+
// Оновлюємо index.md у кожній docs/-директорії, якої торкнувся цей батч
|
|
295
|
+
const docsDirs = new Set(targets.map(f => dirname(join(root, f.docPath))))
|
|
296
|
+
for (const docsAbsDir of docsDirs) {
|
|
297
|
+
if (existsSync(docsAbsDir)) generateDirIndex(docsAbsDir, root)
|
|
298
|
+
}
|
|
299
|
+
|
|
238
300
|
if (aborted) return 2
|
|
239
301
|
return stats.err > 0 ? 1 : 0
|
|
240
302
|
}
|
|
@@ -261,6 +323,15 @@ export function runDocFilesStampCli(argv) {
|
|
|
261
323
|
stamped++
|
|
262
324
|
}
|
|
263
325
|
console.log(`✓ fix-doc-files --stamp: оновлено frontmatter у ${stamped} доці(ах).`)
|
|
326
|
+
|
|
327
|
+
// Після stamp — оновити index.md у всіх docs/-директоріях
|
|
328
|
+
const docsDirs = new Set(
|
|
329
|
+
scanForDocFiles(root)
|
|
330
|
+
.map(f => dirname(join(root, f.docPath)))
|
|
331
|
+
.filter(d => existsSync(d))
|
|
332
|
+
)
|
|
333
|
+
for (const docsAbsDir of docsDirs) generateDirIndex(docsAbsDir, root)
|
|
334
|
+
|
|
264
335
|
return 0
|
|
265
336
|
}
|
|
266
337
|
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: docgen-crc.mjs
|
|
4
|
+
resource: npm/rules/doc-files/js/docgen-crc.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
|
|
4
|
-
crc: 54e8e12b
|
|
6
|
+
crc: 6baf999b
|
|
5
7
|
---
|
|
6
8
|
|
|
7
|
-
# docgen-crc
|
|
8
|
-
|
|
9
|
-
## Огляд
|
|
10
|
-
|
|
11
9
|
Детермінований маркер актуальності файлових док: контрольна сума джерела у frontmatter плюс опційний degraded-маркер якості. Єдине джерело правди про «дока свіжа/застаріла/неякісна» для генерації, перевірок і хуків.
|
|
12
10
|
|
|
13
11
|
## Поведінка
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: docgen-extract-anchors.mjs
|
|
4
|
+
resource: npm/rules/doc-files/js/docgen-extract-anchors.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/doc-files/js/docgen-extract-anchors.mjs
|
|
4
6
|
crc: 49749e9c
|
|
5
7
|
score: 80
|
|
6
8
|
---
|
|
7
9
|
|
|
8
|
-
# docgen-extract-anchors.mjs
|
|
9
|
-
|
|
10
|
-
## Огляд
|
|
11
|
-
|
|
12
10
|
Витягує анкори з вихідного коду файлу.
|
|
13
11
|
|
|
14
12
|
Витягує анкори з вихідного коду файлу.
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
---
|
|
2
|
+
type: JS Module
|
|
3
|
+
title: docgen-extract.mjs
|
|
4
|
+
resource: npm/rules/doc-files/js/docgen-extract.mjs
|
|
2
5
|
docgen:
|
|
3
|
-
source: npm/rules/doc-files/js/docgen-extract.mjs
|
|
4
6
|
crc: a0680e77
|
|
5
7
|
model: omlx/gemma-4-e4b-it-OptiQ-4bit
|
|
6
8
|
score: 100
|
|
7
9
|
---
|
|
8
10
|
|
|
9
|
-
# docgen-extract.mjs
|
|
10
|
-
|
|
11
|
-
## Огляд
|
|
12
|
-
|
|
13
11
|
Витягує структурований факт-лист з вмісту файлів, аналізуючи їх залежно від мови. Для Rust витягує модульний опис, публічні експорти, локальні символи та класифікує імпорти й поведінкові маркери. Для JavaScript/TypeScript/MJS витягує опис, експортовані елементи з JSDoc, класифікує імпорти та визначає поведінкові маркери. При аналізі ігноруються директорії: .github, .git, node_modules, base/, ua/, .firebase. Звертається до мережі та кешує дані протягом одного прогону.
|
|
14
12
|
|
|
15
13
|
## Поведінка
|