open-wiki-spec 0.1.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 +294 -0
- package/bin/open-wiki-spec.js +2 -0
- package/dist/cli/commands/apply.d.ts +3 -0
- package/dist/cli/commands/apply.d.ts.map +1 -0
- package/dist/cli/commands/apply.js +60 -0
- package/dist/cli/commands/apply.js.map +1 -0
- package/dist/cli/commands/archive.d.ts +20 -0
- package/dist/cli/commands/archive.d.ts.map +1 -0
- package/dist/cli/commands/archive.js +87 -0
- package/dist/cli/commands/archive.js.map +1 -0
- package/dist/cli/commands/continue.d.ts +6 -0
- package/dist/cli/commands/continue.d.ts.map +1 -0
- package/dist/cli/commands/continue.js +35 -0
- package/dist/cli/commands/continue.js.map +1 -0
- package/dist/cli/commands/formatters.d.ts +9 -0
- package/dist/cli/commands/formatters.d.ts.map +1 -0
- package/dist/cli/commands/formatters.js +55 -0
- package/dist/cli/commands/formatters.js.map +1 -0
- package/dist/cli/commands/init.d.ts +6 -0
- package/dist/cli/commands/init.d.ts.map +1 -0
- package/dist/cli/commands/init.js +36 -0
- package/dist/cli/commands/init.js.map +1 -0
- package/dist/cli/commands/list.d.ts +28 -0
- package/dist/cli/commands/list.d.ts.map +1 -0
- package/dist/cli/commands/list.js +85 -0
- package/dist/cli/commands/list.js.map +1 -0
- package/dist/cli/commands/migrate.d.ts +6 -0
- package/dist/cli/commands/migrate.d.ts.map +1 -0
- package/dist/cli/commands/migrate.js +103 -0
- package/dist/cli/commands/migrate.js.map +1 -0
- package/dist/cli/commands/propose.d.ts +3 -0
- package/dist/cli/commands/propose.d.ts.map +1 -0
- package/dist/cli/commands/propose.js +64 -0
- package/dist/cli/commands/propose.js.map +1 -0
- package/dist/cli/commands/query.d.ts +3 -0
- package/dist/cli/commands/query.d.ts.map +1 -0
- package/dist/cli/commands/query.js +62 -0
- package/dist/cli/commands/query.js.map +1 -0
- package/dist/cli/commands/status.d.ts +30 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +144 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/commands/verify.d.ts +3 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +38 -0
- package/dist/cli/commands/verify.js.map +1 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +40 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init/init-engine.d.ts +6 -0
- package/dist/cli/init/init-engine.d.ts.map +1 -0
- package/dist/cli/init/init-engine.js +107 -0
- package/dist/cli/init/init-engine.js.map +1 -0
- package/dist/cli/init/meta-files.d.ts +9 -0
- package/dist/cli/init/meta-files.d.ts.map +1 -0
- package/dist/cli/init/meta-files.js +156 -0
- package/dist/cli/init/meta-files.js.map +1 -0
- package/dist/cli/init/skill-generator.d.ts +11 -0
- package/dist/cli/init/skill-generator.d.ts.map +1 -0
- package/dist/cli/init/skill-generator.js +753 -0
- package/dist/cli/init/skill-generator.js.map +1 -0
- package/dist/cli/init/types.d.ts +27 -0
- package/dist/cli/init/types.d.ts.map +1 -0
- package/dist/cli/init/types.js +5 -0
- package/dist/cli/init/types.js.map +1 -0
- package/dist/cli/vault-discovery.d.ts +9 -0
- package/dist/cli/vault-discovery.d.ts.map +1 -0
- package/dist/cli/vault-discovery.js +31 -0
- package/dist/cli/vault-discovery.js.map +1 -0
- package/dist/core/config/index.d.ts +2 -0
- package/dist/core/config/index.d.ts.map +1 -0
- package/dist/core/config/index.js +3 -0
- package/dist/core/config/index.js.map +1 -0
- package/dist/core/index/build.d.ts +10 -0
- package/dist/core/index/build.d.ts.map +1 -0
- package/dist/core/index/build.js +190 -0
- package/dist/core/index/build.js.map +1 -0
- package/dist/core/index/index.d.ts +7 -0
- package/dist/core/index/index.d.ts.map +1 -0
- package/dist/core/index/index.js +7 -0
- package/dist/core/index/index.js.map +1 -0
- package/dist/core/index/resolve.d.ts +41 -0
- package/dist/core/index/resolve.d.ts.map +1 -0
- package/dist/core/index/resolve.js +63 -0
- package/dist/core/index/resolve.js.map +1 -0
- package/dist/core/index/reverse.d.ts +7 -0
- package/dist/core/index/reverse.d.ts.map +1 -0
- package/dist/core/index/reverse.js +24 -0
- package/dist/core/index/reverse.js.map +1 -0
- package/dist/core/index/scan.d.ts +16 -0
- package/dist/core/index/scan.d.ts.map +1 -0
- package/dist/core/index/scan.js +19 -0
- package/dist/core/index/scan.js.map +1 -0
- package/dist/core/index/schema-version.d.ts +5 -0
- package/dist/core/index/schema-version.d.ts.map +1 -0
- package/dist/core/index/schema-version.js +19 -0
- package/dist/core/index/schema-version.js.map +1 -0
- package/dist/core/index/validate.d.ts +14 -0
- package/dist/core/index/validate.d.ts.map +1 -0
- package/dist/core/index/validate.js +77 -0
- package/dist/core/index/validate.js.map +1 -0
- package/dist/core/migrate/change-converter.d.ts +18 -0
- package/dist/core/migrate/change-converter.d.ts.map +1 -0
- package/dist/core/migrate/change-converter.js +475 -0
- package/dist/core/migrate/change-converter.js.map +1 -0
- package/dist/core/migrate/index.d.ts +8 -0
- package/dist/core/migrate/index.d.ts.map +1 -0
- package/dist/core/migrate/index.js +7 -0
- package/dist/core/migrate/index.js.map +1 -0
- package/dist/core/migrate/migrate.d.ts +15 -0
- package/dist/core/migrate/migrate.d.ts.map +1 -0
- package/dist/core/migrate/migrate.js +149 -0
- package/dist/core/migrate/migrate.js.map +1 -0
- package/dist/core/migrate/scanner.d.ts +10 -0
- package/dist/core/migrate/scanner.d.ts.map +1 -0
- package/dist/core/migrate/scanner.js +188 -0
- package/dist/core/migrate/scanner.js.map +1 -0
- package/dist/core/migrate/source-converter.d.ts +6 -0
- package/dist/core/migrate/source-converter.d.ts.map +1 -0
- package/dist/core/migrate/source-converter.js +63 -0
- package/dist/core/migrate/source-converter.js.map +1 -0
- package/dist/core/migrate/spec-converter.d.ts +16 -0
- package/dist/core/migrate/spec-converter.d.ts.map +1 -0
- package/dist/core/migrate/spec-converter.js +157 -0
- package/dist/core/migrate/spec-converter.js.map +1 -0
- package/dist/core/migrate/system-inferrer.d.ts +23 -0
- package/dist/core/migrate/system-inferrer.d.ts.map +1 -0
- package/dist/core/migrate/system-inferrer.js +118 -0
- package/dist/core/migrate/system-inferrer.js.map +1 -0
- package/dist/core/migrate/types.d.ts +125 -0
- package/dist/core/migrate/types.d.ts.map +1 -0
- package/dist/core/migrate/types.js +5 -0
- package/dist/core/migrate/types.js.map +1 -0
- package/dist/core/parser/delta-summary-parser.d.ts +10 -0
- package/dist/core/parser/delta-summary-parser.d.ts.map +1 -0
- package/dist/core/parser/delta-summary-parser.js +101 -0
- package/dist/core/parser/delta-summary-parser.js.map +1 -0
- package/dist/core/parser/frontmatter-parser.d.ts +21 -0
- package/dist/core/parser/frontmatter-parser.d.ts.map +1 -0
- package/dist/core/parser/frontmatter-parser.js +87 -0
- package/dist/core/parser/frontmatter-parser.js.map +1 -0
- package/dist/core/parser/index.d.ts +9 -0
- package/dist/core/parser/index.d.ts.map +1 -0
- package/dist/core/parser/index.js +8 -0
- package/dist/core/parser/index.js.map +1 -0
- package/dist/core/parser/note-parser.d.ts +9 -0
- package/dist/core/parser/note-parser.d.ts.map +1 -0
- package/dist/core/parser/note-parser.js +106 -0
- package/dist/core/parser/note-parser.js.map +1 -0
- package/dist/core/parser/requirement-parser.d.ts +13 -0
- package/dist/core/parser/requirement-parser.d.ts.map +1 -0
- package/dist/core/parser/requirement-parser.js +127 -0
- package/dist/core/parser/requirement-parser.js.map +1 -0
- package/dist/core/parser/section-parser.d.ts +15 -0
- package/dist/core/parser/section-parser.d.ts.map +1 -0
- package/dist/core/parser/section-parser.js +90 -0
- package/dist/core/parser/section-parser.js.map +1 -0
- package/dist/core/parser/task-parser.d.ts +9 -0
- package/dist/core/parser/task-parser.d.ts.map +1 -0
- package/dist/core/parser/task-parser.js +35 -0
- package/dist/core/parser/task-parser.js.map +1 -0
- package/dist/core/parser/types.d.ts +94 -0
- package/dist/core/parser/types.d.ts.map +1 -0
- package/dist/core/parser/types.js +2 -0
- package/dist/core/parser/types.js.map +1 -0
- package/dist/core/parser/wikilink-parser.d.ts +19 -0
- package/dist/core/parser/wikilink-parser.d.ts.map +1 -0
- package/dist/core/parser/wikilink-parser.js +74 -0
- package/dist/core/parser/wikilink-parser.js.map +1 -0
- package/dist/core/retrieval/classify.d.ts +11 -0
- package/dist/core/retrieval/classify.d.ts.map +1 -0
- package/dist/core/retrieval/classify.js +92 -0
- package/dist/core/retrieval/classify.js.map +1 -0
- package/dist/core/retrieval/constants.d.ts +49 -0
- package/dist/core/retrieval/constants.d.ts.map +1 -0
- package/dist/core/retrieval/constants.js +29 -0
- package/dist/core/retrieval/constants.js.map +1 -0
- package/dist/core/retrieval/graph-expand.d.ts +7 -0
- package/dist/core/retrieval/graph-expand.d.ts.map +1 -0
- package/dist/core/retrieval/graph-expand.js +20 -0
- package/dist/core/retrieval/graph-expand.js.map +1 -0
- package/dist/core/retrieval/helpers.d.ts +15 -0
- package/dist/core/retrieval/helpers.d.ts.map +1 -0
- package/dist/core/retrieval/helpers.js +36 -0
- package/dist/core/retrieval/helpers.js.map +1 -0
- package/dist/core/retrieval/index.d.ts +11 -0
- package/dist/core/retrieval/index.d.ts.map +1 -0
- package/dist/core/retrieval/index.js +9 -0
- package/dist/core/retrieval/index.js.map +1 -0
- package/dist/core/retrieval/lexical.d.ts +8 -0
- package/dist/core/retrieval/lexical.d.ts.map +1 -0
- package/dist/core/retrieval/lexical.js +107 -0
- package/dist/core/retrieval/lexical.js.map +1 -0
- package/dist/core/retrieval/retrieve.d.ts +16 -0
- package/dist/core/retrieval/retrieve.d.ts.map +1 -0
- package/dist/core/retrieval/retrieve.js +58 -0
- package/dist/core/retrieval/retrieve.js.map +1 -0
- package/dist/core/retrieval/scoring.d.ts +14 -0
- package/dist/core/retrieval/scoring.d.ts.map +1 -0
- package/dist/core/retrieval/scoring.js +169 -0
- package/dist/core/retrieval/scoring.js.map +1 -0
- package/dist/core/retrieval/warnings.d.ts +16 -0
- package/dist/core/retrieval/warnings.d.ts.map +1 -0
- package/dist/core/retrieval/warnings.js +73 -0
- package/dist/core/retrieval/warnings.js.map +1 -0
- package/dist/core/schema/base.schema.d.ts +31 -0
- package/dist/core/schema/base.schema.d.ts.map +1 -0
- package/dist/core/schema/base.schema.js +32 -0
- package/dist/core/schema/base.schema.js.map +1 -0
- package/dist/core/schema/change.schema.d.ts +96 -0
- package/dist/core/schema/change.schema.d.ts.map +1 -0
- package/dist/core/schema/change.schema.js +64 -0
- package/dist/core/schema/change.schema.js.map +1 -0
- package/dist/core/schema/decision.schema.d.ts +33 -0
- package/dist/core/schema/decision.schema.d.ts.map +1 -0
- package/dist/core/schema/decision.schema.js +19 -0
- package/dist/core/schema/decision.schema.js.map +1 -0
- package/dist/core/schema/delta-summary.d.ts +57 -0
- package/dist/core/schema/delta-summary.d.ts.map +1 -0
- package/dist/core/schema/delta-summary.js +38 -0
- package/dist/core/schema/delta-summary.js.map +1 -0
- package/dist/core/schema/feature.schema.d.ts +40 -0
- package/dist/core/schema/feature.schema.d.ts.map +1 -0
- package/dist/core/schema/feature.schema.js +25 -0
- package/dist/core/schema/feature.schema.js.map +1 -0
- package/dist/core/schema/frontmatter.d.ts +207 -0
- package/dist/core/schema/frontmatter.d.ts.map +1 -0
- package/dist/core/schema/frontmatter.js +23 -0
- package/dist/core/schema/frontmatter.js.map +1 -0
- package/dist/core/schema/index.d.ts +235 -0
- package/dist/core/schema/index.d.ts.map +1 -0
- package/dist/core/schema/index.js +52 -0
- package/dist/core/schema/index.js.map +1 -0
- package/dist/core/schema/query.schema.d.ts +39 -0
- package/dist/core/schema/query.schema.d.ts.map +1 -0
- package/dist/core/schema/query.schema.js +20 -0
- package/dist/core/schema/query.schema.js.map +1 -0
- package/dist/core/schema/requirement.d.ts +69 -0
- package/dist/core/schema/requirement.d.ts.map +1 -0
- package/dist/core/schema/requirement.js +35 -0
- package/dist/core/schema/requirement.js.map +1 -0
- package/dist/core/schema/source.schema.d.ts +33 -0
- package/dist/core/schema/source.schema.d.ts.map +1 -0
- package/dist/core/schema/source.schema.js +24 -0
- package/dist/core/schema/source.schema.js.map +1 -0
- package/dist/core/schema/system.schema.d.ts +27 -0
- package/dist/core/schema/system.schema.d.ts.map +1 -0
- package/dist/core/schema/system.schema.js +17 -0
- package/dist/core/schema/system.schema.js.map +1 -0
- package/dist/core/schema/templates.d.ts +14 -0
- package/dist/core/schema/templates.d.ts.map +1 -0
- package/dist/core/schema/templates.js +220 -0
- package/dist/core/schema/templates.js.map +1 -0
- package/dist/core/schema/validation-constants.d.ts +5 -0
- package/dist/core/schema/validation-constants.d.ts.map +1 -0
- package/dist/core/schema/validation-constants.js +5 -0
- package/dist/core/schema/validation-constants.js.map +1 -0
- package/dist/core/sequencing/analyze.d.ts +13 -0
- package/dist/core/sequencing/analyze.d.ts.map +1 -0
- package/dist/core/sequencing/analyze.js +107 -0
- package/dist/core/sequencing/analyze.js.map +1 -0
- package/dist/core/sequencing/index.d.ts +8 -0
- package/dist/core/sequencing/index.d.ts.map +1 -0
- package/dist/core/sequencing/index.js +8 -0
- package/dist/core/sequencing/index.js.map +1 -0
- package/dist/core/sequencing/ordering.d.ts +11 -0
- package/dist/core/sequencing/ordering.d.ts.map +1 -0
- package/dist/core/sequencing/ordering.js +148 -0
- package/dist/core/sequencing/ordering.js.map +1 -0
- package/dist/core/sequencing/out-of-order-detector.d.ts +9 -0
- package/dist/core/sequencing/out-of-order-detector.d.ts.map +1 -0
- package/dist/core/sequencing/out-of-order-detector.js +42 -0
- package/dist/core/sequencing/out-of-order-detector.js.map +1 -0
- package/dist/core/sequencing/priority-queue.d.ts +18 -0
- package/dist/core/sequencing/priority-queue.d.ts.map +1 -0
- package/dist/core/sequencing/priority-queue.js +31 -0
- package/dist/core/sequencing/priority-queue.js.map +1 -0
- package/dist/core/sequencing/requirement-conflict-detector.d.ts +9 -0
- package/dist/core/sequencing/requirement-conflict-detector.d.ts.map +1 -0
- package/dist/core/sequencing/requirement-conflict-detector.js +90 -0
- package/dist/core/sequencing/requirement-conflict-detector.js.map +1 -0
- package/dist/core/sequencing/stale-detector.d.ts +9 -0
- package/dist/core/sequencing/stale-detector.d.ts.map +1 -0
- package/dist/core/sequencing/stale-detector.js +49 -0
- package/dist/core/sequencing/stale-detector.js.map +1 -0
- package/dist/core/sequencing/touches-analyzer.d.ts +8 -0
- package/dist/core/sequencing/touches-analyzer.d.ts.map +1 -0
- package/dist/core/sequencing/touches-analyzer.js +91 -0
- package/dist/core/sequencing/touches-analyzer.js.map +1 -0
- package/dist/core/vault/index.d.ts +2 -0
- package/dist/core/vault/index.d.ts.map +1 -0
- package/dist/core/vault/index.js +3 -0
- package/dist/core/vault/index.js.map +1 -0
- package/dist/core/workflow/apply/apply.d.ts +17 -0
- package/dist/core/workflow/apply/apply.d.ts.map +1 -0
- package/dist/core/workflow/apply/apply.js +302 -0
- package/dist/core/workflow/apply/apply.js.map +1 -0
- package/dist/core/workflow/apply/delta-parser.d.ts +11 -0
- package/dist/core/workflow/apply/delta-parser.d.ts.map +1 -0
- package/dist/core/workflow/apply/delta-parser.js +164 -0
- package/dist/core/workflow/apply/delta-parser.js.map +1 -0
- package/dist/core/workflow/apply/feature-updater.d.ts +12 -0
- package/dist/core/workflow/apply/feature-updater.d.ts.map +1 -0
- package/dist/core/workflow/apply/feature-updater.js +75 -0
- package/dist/core/workflow/apply/feature-updater.js.map +1 -0
- package/dist/core/workflow/apply/index.d.ts +7 -0
- package/dist/core/workflow/apply/index.d.ts.map +1 -0
- package/dist/core/workflow/apply/index.js +6 -0
- package/dist/core/workflow/apply/index.js.map +1 -0
- package/dist/core/workflow/apply/stale-checker.d.ts +17 -0
- package/dist/core/workflow/apply/stale-checker.d.ts.map +1 -0
- package/dist/core/workflow/apply/stale-checker.js +99 -0
- package/dist/core/workflow/apply/stale-checker.js.map +1 -0
- package/dist/core/workflow/apply/types.d.ts +112 -0
- package/dist/core/workflow/apply/types.d.ts.map +1 -0
- package/dist/core/workflow/apply/types.js +2 -0
- package/dist/core/workflow/apply/types.js.map +1 -0
- package/dist/core/workflow/apply/verify-apply.d.ts +16 -0
- package/dist/core/workflow/apply/verify-apply.d.ts.map +1 -0
- package/dist/core/workflow/apply/verify-apply.js +81 -0
- package/dist/core/workflow/apply/verify-apply.js.map +1 -0
- package/dist/core/workflow/continue/continue.d.ts +17 -0
- package/dist/core/workflow/continue/continue.d.ts.map +1 -0
- package/dist/core/workflow/continue/continue.js +213 -0
- package/dist/core/workflow/continue/continue.js.map +1 -0
- package/dist/core/workflow/continue/decision-promoter.d.ts +20 -0
- package/dist/core/workflow/continue/decision-promoter.d.ts.map +1 -0
- package/dist/core/workflow/continue/decision-promoter.js +36 -0
- package/dist/core/workflow/continue/decision-promoter.js.map +1 -0
- package/dist/core/workflow/continue/index.d.ts +6 -0
- package/dist/core/workflow/continue/index.d.ts.map +1 -0
- package/dist/core/workflow/continue/index.js +5 -0
- package/dist/core/workflow/continue/index.js.map +1 -0
- package/dist/core/workflow/continue/next-action.d.ts +13 -0
- package/dist/core/workflow/continue/next-action.d.ts.map +1 -0
- package/dist/core/workflow/continue/next-action.js +129 -0
- package/dist/core/workflow/continue/next-action.js.map +1 -0
- package/dist/core/workflow/continue/section-checker.d.ts +18 -0
- package/dist/core/workflow/continue/section-checker.d.ts.map +1 -0
- package/dist/core/workflow/continue/section-checker.js +114 -0
- package/dist/core/workflow/continue/section-checker.js.map +1 -0
- package/dist/core/workflow/continue/types.d.ts +113 -0
- package/dist/core/workflow/continue/types.d.ts.map +1 -0
- package/dist/core/workflow/continue/types.js +2 -0
- package/dist/core/workflow/continue/types.js.map +1 -0
- package/dist/core/workflow/index.d.ts +11 -0
- package/dist/core/workflow/index.d.ts.map +1 -0
- package/dist/core/workflow/index.js +12 -0
- package/dist/core/workflow/index.js.map +1 -0
- package/dist/core/workflow/propose/index.d.ts +6 -0
- package/dist/core/workflow/propose/index.d.ts.map +1 -0
- package/dist/core/workflow/propose/index.js +5 -0
- package/dist/core/workflow/propose/index.js.map +1 -0
- package/dist/core/workflow/propose/note-creator.d.ts +35 -0
- package/dist/core/workflow/propose/note-creator.d.ts.map +1 -0
- package/dist/core/workflow/propose/note-creator.js +178 -0
- package/dist/core/workflow/propose/note-creator.js.map +1 -0
- package/dist/core/workflow/propose/prerequisites.d.ts +17 -0
- package/dist/core/workflow/propose/prerequisites.d.ts.map +1 -0
- package/dist/core/workflow/propose/prerequisites.js +78 -0
- package/dist/core/workflow/propose/prerequisites.js.map +1 -0
- package/dist/core/workflow/propose/propose.d.ts +13 -0
- package/dist/core/workflow/propose/propose.d.ts.map +1 -0
- package/dist/core/workflow/propose/propose.js +204 -0
- package/dist/core/workflow/propose/propose.js.map +1 -0
- package/dist/core/workflow/propose/query-normalizer.d.ts +7 -0
- package/dist/core/workflow/propose/query-normalizer.d.ts.map +1 -0
- package/dist/core/workflow/propose/query-normalizer.js +77 -0
- package/dist/core/workflow/propose/query-normalizer.js.map +1 -0
- package/dist/core/workflow/propose/types.d.ts +71 -0
- package/dist/core/workflow/propose/types.d.ts.map +1 -0
- package/dist/core/workflow/propose/types.js +2 -0
- package/dist/core/workflow/propose/types.js.map +1 -0
- package/dist/core/workflow/query/index.d.ts +6 -0
- package/dist/core/workflow/query/index.d.ts.map +1 -0
- package/dist/core/workflow/query/index.js +5 -0
- package/dist/core/workflow/query/index.js.map +1 -0
- package/dist/core/workflow/query/noteworthiness.d.ts +14 -0
- package/dist/core/workflow/query/noteworthiness.d.ts.map +1 -0
- package/dist/core/workflow/query/noteworthiness.js +48 -0
- package/dist/core/workflow/query/noteworthiness.js.map +1 -0
- package/dist/core/workflow/query/query-note-creator.d.ts +13 -0
- package/dist/core/workflow/query/query-note-creator.d.ts.map +1 -0
- package/dist/core/workflow/query/query-note-creator.js +168 -0
- package/dist/core/workflow/query/query-note-creator.js.map +1 -0
- package/dist/core/workflow/query/query-search.d.ts +19 -0
- package/dist/core/workflow/query/query-search.d.ts.map +1 -0
- package/dist/core/workflow/query/query-search.js +252 -0
- package/dist/core/workflow/query/query-search.js.map +1 -0
- package/dist/core/workflow/query/query.d.ts +18 -0
- package/dist/core/workflow/query/query.d.ts.map +1 -0
- package/dist/core/workflow/query/query.js +29 -0
- package/dist/core/workflow/query/query.js.map +1 -0
- package/dist/core/workflow/query/types.d.ts +67 -0
- package/dist/core/workflow/query/types.d.ts.map +1 -0
- package/dist/core/workflow/query/types.js +2 -0
- package/dist/core/workflow/query/types.js.map +1 -0
- package/dist/core/workflow/verify/coherence.d.ts +30 -0
- package/dist/core/workflow/verify/coherence.d.ts.map +1 -0
- package/dist/core/workflow/verify/coherence.js +206 -0
- package/dist/core/workflow/verify/coherence.js.map +1 -0
- package/dist/core/workflow/verify/completeness.d.ts +24 -0
- package/dist/core/workflow/verify/completeness.d.ts.map +1 -0
- package/dist/core/workflow/verify/completeness.js +172 -0
- package/dist/core/workflow/verify/completeness.js.map +1 -0
- package/dist/core/workflow/verify/correctness.d.ts +38 -0
- package/dist/core/workflow/verify/correctness.d.ts.map +1 -0
- package/dist/core/workflow/verify/correctness.js +352 -0
- package/dist/core/workflow/verify/correctness.js.map +1 -0
- package/dist/core/workflow/verify/index.d.ts +7 -0
- package/dist/core/workflow/verify/index.d.ts.map +1 -0
- package/dist/core/workflow/verify/index.js +6 -0
- package/dist/core/workflow/verify/index.js.map +1 -0
- package/dist/core/workflow/verify/vault-integrity.d.ts +45 -0
- package/dist/core/workflow/verify/vault-integrity.d.ts.map +1 -0
- package/dist/core/workflow/verify/vault-integrity.js +141 -0
- package/dist/core/workflow/verify/vault-integrity.js.map +1 -0
- package/dist/core/workflow/verify/verify.d.ts +23 -0
- package/dist/core/workflow/verify/verify.d.ts.map +1 -0
- package/dist/core/workflow/verify/verify.js +122 -0
- package/dist/core/workflow/verify/verify.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/types/delta.d.ts +17 -0
- package/dist/types/delta.d.ts.map +1 -0
- package/dist/types/delta.js +2 -0
- package/dist/types/delta.js.map +1 -0
- package/dist/types/frontmatter.d.ts +51 -0
- package/dist/types/frontmatter.d.ts.map +1 -0
- package/dist/types/frontmatter.js +2 -0
- package/dist/types/frontmatter.js.map +1 -0
- package/dist/types/index-record.d.ts +46 -0
- package/dist/types/index-record.d.ts.map +1 -0
- package/dist/types/index-record.js +2 -0
- package/dist/types/index-record.js.map +1 -0
- package/dist/types/index.d.ts +11 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/next-action.d.ts +10 -0
- package/dist/types/next-action.d.ts.map +1 -0
- package/dist/types/next-action.js +2 -0
- package/dist/types/next-action.js.map +1 -0
- package/dist/types/notes.d.ts +9 -0
- package/dist/types/notes.d.ts.map +1 -0
- package/dist/types/notes.js +2 -0
- package/dist/types/notes.js.map +1 -0
- package/dist/types/requirement.d.ts +19 -0
- package/dist/types/requirement.d.ts.map +1 -0
- package/dist/types/requirement.js +2 -0
- package/dist/types/requirement.js.map +1 -0
- package/dist/types/retrieval.d.ts +32 -0
- package/dist/types/retrieval.d.ts.map +1 -0
- package/dist/types/retrieval.js +2 -0
- package/dist/types/retrieval.js.map +1 -0
- package/dist/types/sequencing.d.ts +83 -0
- package/dist/types/sequencing.d.ts.map +1 -0
- package/dist/types/sequencing.js +2 -0
- package/dist/types/sequencing.js.map +1 -0
- package/dist/types/task.d.ts +7 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +2 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/verify.d.ts +23 -0
- package/dist/types/verify.d.ts.map +1 -0
- package/dist/types/verify.js +2 -0
- package/dist/types/verify.js.map +1 -0
- package/dist/utils/hash.d.ts +6 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +9 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/id-generator.d.ts +17 -0
- package/dist/utils/id-generator.d.ts.map +1 -0
- package/dist/utils/id-generator.js +24 -0
- package/dist/utils/id-generator.js.map +1 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/normalize.d.ts +11 -0
- package/dist/utils/normalize.d.ts.map +1 -0
- package/dist/utils/normalize.js +15 -0
- package/dist/utils/normalize.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-search.js","sourceRoot":"","sources":["../../../../src/core/workflow/query/query-search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query workflow orchestrator.
|
|
3
|
+
* Coordinates search, context construction, noteworthiness assessment,
|
|
4
|
+
* and note creation.
|
|
5
|
+
*/
|
|
6
|
+
import type { VaultIndex } from '../../../types/index.js';
|
|
7
|
+
import type { QueryRequest, QueryWorkflowResult } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Run the query workflow.
|
|
10
|
+
* 1. Search vault for related notes.
|
|
11
|
+
* 2. Construct context for LLM.
|
|
12
|
+
* 3. Assess whether findings warrant a Query note.
|
|
13
|
+
*
|
|
14
|
+
* Note creation is deferred to the agent/CLI layer
|
|
15
|
+
* since it requires user confirmation.
|
|
16
|
+
*/
|
|
17
|
+
export declare function queryWorkflow(request: QueryRequest, index: VaultIndex): QueryWorkflowResult;
|
|
18
|
+
//# sourceMappingURL=query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/query/query.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAIpE;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,UAAU,GAChB,mBAAmB,CAoBrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { querySearch, constructQueryContext } from './query-search.js';
|
|
2
|
+
import { assessNoteworthiness } from './noteworthiness.js';
|
|
3
|
+
/**
|
|
4
|
+
* Run the query workflow.
|
|
5
|
+
* 1. Search vault for related notes.
|
|
6
|
+
* 2. Construct context for LLM.
|
|
7
|
+
* 3. Assess whether findings warrant a Query note.
|
|
8
|
+
*
|
|
9
|
+
* Note creation is deferred to the agent/CLI layer
|
|
10
|
+
* since it requires user confirmation.
|
|
11
|
+
*/
|
|
12
|
+
export function queryWorkflow(request, index) {
|
|
13
|
+
// Validate input
|
|
14
|
+
if (!request.question || request.question.trim().length === 0) {
|
|
15
|
+
throw new Error('Query question must not be empty');
|
|
16
|
+
}
|
|
17
|
+
// Phase 1: Search
|
|
18
|
+
const searchResult = querySearch(request, index);
|
|
19
|
+
// Phase 2: Build context
|
|
20
|
+
const contextDocument = constructQueryContext(searchResult);
|
|
21
|
+
// Phase 3: Noteworthiness assessment
|
|
22
|
+
const assessment = assessNoteworthiness(request.question, searchResult);
|
|
23
|
+
return {
|
|
24
|
+
searchResult,
|
|
25
|
+
contextDocument,
|
|
26
|
+
assessment,
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query.js","sourceRoot":"","sources":["../../../../src/core/workflow/query/query.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAC3B,OAAqB,EACrB,KAAiB;IAEjB,iBAAiB;IACjB,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;IAED,kBAAkB;IAClB,MAAM,YAAY,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAEjD,yBAAyB;IACzB,MAAM,eAAe,GAAG,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAE5D,qCAAqC;IACrC,MAAM,UAAU,GAAG,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAExE,OAAO;QACL,YAAY;QACZ,eAAe;QACf,UAAU;KACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Query workflow types.
|
|
3
|
+
*/
|
|
4
|
+
import type { NoteType } from '../../../types/notes.js';
|
|
5
|
+
export interface QueryRequest {
|
|
6
|
+
/** The user's question or investigation topic */
|
|
7
|
+
question: string;
|
|
8
|
+
/** Optional: restrict search to specific note types */
|
|
9
|
+
noteTypes?: NoteType[];
|
|
10
|
+
/** Optional: restrict search to specific systems */
|
|
11
|
+
systemIds?: string[];
|
|
12
|
+
/** Optional: link to a specific change context */
|
|
13
|
+
changeId?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface QuerySearchResult {
|
|
16
|
+
question: string;
|
|
17
|
+
candidates: QueryCandidate[];
|
|
18
|
+
graphContext: GraphContextNode[];
|
|
19
|
+
existingQueries: QueryCandidate[];
|
|
20
|
+
warnings: string[];
|
|
21
|
+
}
|
|
22
|
+
export interface QueryCandidate {
|
|
23
|
+
id: string;
|
|
24
|
+
type: NoteType;
|
|
25
|
+
title: string;
|
|
26
|
+
path: string;
|
|
27
|
+
status: string;
|
|
28
|
+
matchReasons: string[];
|
|
29
|
+
score: number;
|
|
30
|
+
relevantSections: string[];
|
|
31
|
+
}
|
|
32
|
+
export interface GraphContextNode {
|
|
33
|
+
id: string;
|
|
34
|
+
type: NoteType;
|
|
35
|
+
title: string;
|
|
36
|
+
relationTo: string;
|
|
37
|
+
relationType: 'links_to' | 'linked_from' | 'same_system' | 'same_feature';
|
|
38
|
+
}
|
|
39
|
+
export interface QueryNoteInput {
|
|
40
|
+
question: string;
|
|
41
|
+
title: string;
|
|
42
|
+
context: string;
|
|
43
|
+
findings: string;
|
|
44
|
+
conclusion: string;
|
|
45
|
+
consultedNotes: string[];
|
|
46
|
+
relatedFeatures?: string[];
|
|
47
|
+
relatedSystems?: string[];
|
|
48
|
+
relatedChanges?: string[];
|
|
49
|
+
relatedDecisions?: string[];
|
|
50
|
+
relatedSources?: string[];
|
|
51
|
+
relatedQueries?: string[];
|
|
52
|
+
tags?: string[];
|
|
53
|
+
recommendation?: string;
|
|
54
|
+
openQuestions?: string;
|
|
55
|
+
}
|
|
56
|
+
export interface NoteworthinessAssessment {
|
|
57
|
+
shouldCreate: boolean;
|
|
58
|
+
confidence: 'high' | 'medium' | 'low';
|
|
59
|
+
reasons: string[];
|
|
60
|
+
}
|
|
61
|
+
export interface QueryWorkflowResult {
|
|
62
|
+
searchResult: QuerySearchResult;
|
|
63
|
+
contextDocument: string;
|
|
64
|
+
assessment: NoteworthinessAssessment;
|
|
65
|
+
createdNotePath?: string;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/query/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAIxD,MAAM,WAAW,YAAY;IAC3B,iDAAiD;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,eAAe,EAAE,cAAc,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,gBAAgB,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU,GAAG,aAAa,GAAG,aAAa,GAAG,cAAc,CAAC;CAC3E;AAID,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,wBAAwB;IACvC,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACtC,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,iBAAiB,CAAC;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,wBAAwB,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/core/workflow/query/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Coherence dimension checks.
|
|
3
|
+
* Cross-note consistency, parallel change conflict detection, decision consistency.
|
|
4
|
+
*
|
|
5
|
+
* Per ownership rules (00-unified-types.md), conflict detection at the touches
|
|
6
|
+
* and requirement level is owned by sequencing-engine (plan 06).
|
|
7
|
+
* This module delegates to analyzeSequencing() and maps results to VerifyIssue[].
|
|
8
|
+
*/
|
|
9
|
+
import type { VaultIndex, IndexRecord } from '../../../types/index.js';
|
|
10
|
+
import type { VerifyIssue } from '../../../types/verify.js';
|
|
11
|
+
/**
|
|
12
|
+
* Check for conflicts between active changes by delegating to the
|
|
13
|
+
* sequencing engine's analyzeSequencing(). Maps pairwise severity
|
|
14
|
+
* results and requirement conflict pairs to VerifyIssue[].
|
|
15
|
+
*/
|
|
16
|
+
export declare function checkConflictsViaSequencing(activeChanges: IndexRecord[], index: VaultIndex): VerifyIssue[];
|
|
17
|
+
/**
|
|
18
|
+
* Check for structural description inconsistencies between notes.
|
|
19
|
+
*/
|
|
20
|
+
export declare function checkDescriptionConsistency(allNotes: IndexRecord[]): VerifyIssue[];
|
|
21
|
+
/**
|
|
22
|
+
* Check decision consistency: overlapping active decisions on same feature,
|
|
23
|
+
* and missing backlinks.
|
|
24
|
+
*/
|
|
25
|
+
export declare function checkDecisionConsistency(allDecisions: IndexRecord[], allFeatures: IndexRecord[]): VerifyIssue[];
|
|
26
|
+
/**
|
|
27
|
+
* Check that all depends_on targets actually exist in the index.
|
|
28
|
+
*/
|
|
29
|
+
export declare function checkDependsOnConsistency(activeChanges: IndexRecord[], index: VaultIndex): VerifyIssue[];
|
|
30
|
+
//# sourceMappingURL=coherence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coherence.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/verify/coherence.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAG5D;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,aAAa,EAAE,WAAW,EAAE,EAC5B,KAAK,EAAE,UAAU,GAChB,WAAW,EAAE,CA2Ef;AAID;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAiDlF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,WAAW,EAAE,EAC3B,WAAW,EAAE,WAAW,EAAE,GACzB,WAAW,EAAE,CAuDf;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,aAAa,EAAE,WAAW,EAAE,EAC5B,KAAK,EAAE,UAAU,GAChB,WAAW,EAAE,CAoBf"}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import { analyzeSequencing } from '../../sequencing/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Check for conflicts between active changes by delegating to the
|
|
4
|
+
* sequencing engine's analyzeSequencing(). Maps pairwise severity
|
|
5
|
+
* results and requirement conflict pairs to VerifyIssue[].
|
|
6
|
+
*/
|
|
7
|
+
export function checkConflictsViaSequencing(activeChanges, index) {
|
|
8
|
+
const issues = [];
|
|
9
|
+
// Delegate to sequencing engine (expects Map<string, IndexRecord>)
|
|
10
|
+
const result = analyzeSequencing(index.records);
|
|
11
|
+
// Map pairwise touches severities to VerifyIssue
|
|
12
|
+
for (const pair of result.pairwise_severities) {
|
|
13
|
+
if (pair.severity === 'blocked') {
|
|
14
|
+
issues.push({
|
|
15
|
+
dimension: 'coherence',
|
|
16
|
+
severity: 'error',
|
|
17
|
+
code: 'TOUCHES_OVERLAP_BLOCKED',
|
|
18
|
+
message: `Change "${pair.change_a}" is blocked by "${pair.change_b}": ${pair.reasons.join('; ')}`,
|
|
19
|
+
note_id: pair.change_a,
|
|
20
|
+
suggestion: 'Resolve the dependency before proceeding.',
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
else if (pair.severity === 'conflict_candidate') {
|
|
24
|
+
issues.push({
|
|
25
|
+
dimension: 'coherence',
|
|
26
|
+
severity: 'error',
|
|
27
|
+
code: 'TOUCHES_OVERLAP_CONFLICT',
|
|
28
|
+
message: `Changes "${pair.change_a}" and "${pair.change_b}" both touch Feature(s): ${pair.overlapping_features.join(', ')} -- conflict_candidate`,
|
|
29
|
+
note_id: pair.change_a,
|
|
30
|
+
suggestion: 'User confirmation required. Auto-apply is blocked.',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else if (pair.severity === 'needs_review') {
|
|
34
|
+
issues.push({
|
|
35
|
+
dimension: 'coherence',
|
|
36
|
+
severity: 'warning',
|
|
37
|
+
code: 'TOUCHES_OVERLAP_NEEDS_REVIEW',
|
|
38
|
+
message: `Changes "${pair.change_a}" and "${pair.change_b}" both touch System(s): ${pair.overlapping_systems.join(', ')} -- needs_review`,
|
|
39
|
+
note_id: pair.change_a,
|
|
40
|
+
suggestion: 'Confirm that these changes affect independent areas of the shared surface.',
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Map requirement-level conflicts to VerifyIssue
|
|
45
|
+
for (const conflict of result.requirement_conflicts) {
|
|
46
|
+
issues.push({
|
|
47
|
+
dimension: 'coherence',
|
|
48
|
+
severity: 'error',
|
|
49
|
+
code: 'REQUIREMENT_CONFLICT_CRITICAL',
|
|
50
|
+
message: `Requirement-level conflict: Changes "${conflict.change_a}" (${conflict.this_op}) and "${conflict.change_b}" (${conflict.other_op}) both target "${conflict.feature_id}::${conflict.requirement_name}" -- conflict_critical`,
|
|
51
|
+
note_id: conflict.change_a,
|
|
52
|
+
suggestion: 'Neither change can be auto-applied. User must resolve the conflict.',
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
// Map dependency cycles to VerifyIssue
|
|
56
|
+
for (const cycle of result.cycles) {
|
|
57
|
+
issues.push({
|
|
58
|
+
dimension: 'coherence',
|
|
59
|
+
severity: 'error',
|
|
60
|
+
code: 'DEPENDENCY_CYCLE',
|
|
61
|
+
message: cycle.message,
|
|
62
|
+
note_id: cycle.cycle[0],
|
|
63
|
+
suggestion: 'Break the dependency cycle by removing one depends_on link.',
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
// Map out-of-order errors to VerifyIssue
|
|
67
|
+
for (const ooo of result.out_of_order_errors) {
|
|
68
|
+
issues.push({
|
|
69
|
+
dimension: 'coherence',
|
|
70
|
+
severity: 'error',
|
|
71
|
+
code: 'OUT_OF_ORDER',
|
|
72
|
+
message: ooo.message,
|
|
73
|
+
note_id: ooo.change_id,
|
|
74
|
+
suggestion: 'Complete dependencies before advancing this change.',
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return issues;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Check for structural description inconsistencies between notes.
|
|
81
|
+
*/
|
|
82
|
+
export function checkDescriptionConsistency(allNotes) {
|
|
83
|
+
const issues = [];
|
|
84
|
+
const features = allNotes.filter((n) => n.type === 'feature');
|
|
85
|
+
const changes = allNotes.filter((n) => n.type === 'change' && n.status !== 'applied');
|
|
86
|
+
for (const change of changes) {
|
|
87
|
+
const featureId = change.feature ?? change.features?.[0];
|
|
88
|
+
if (!featureId)
|
|
89
|
+
continue;
|
|
90
|
+
const feature = features.find((f) => f.id === featureId);
|
|
91
|
+
if (!feature)
|
|
92
|
+
continue;
|
|
93
|
+
const removedCount = change.delta_summary.filter((e) => e.op === 'REMOVED' && e.target_note_id === featureId).length;
|
|
94
|
+
const totalReqs = feature.requirements.length;
|
|
95
|
+
if (totalReqs > 0 && removedCount === totalReqs && feature.status === 'active') {
|
|
96
|
+
issues.push({
|
|
97
|
+
dimension: 'coherence',
|
|
98
|
+
severity: 'warning',
|
|
99
|
+
code: 'CONFLICTING_DESCRIPTIONS',
|
|
100
|
+
message: `Change "${change.id}" removes all requirements from Feature "${featureId}" but Feature status is still "active"`,
|
|
101
|
+
note_id: change.id,
|
|
102
|
+
note_path: change.path,
|
|
103
|
+
suggestion: 'Consider whether the Feature should be deprecated after this Change is applied.',
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
// Check archived Decision vs active Feature
|
|
108
|
+
const decisions = allNotes.filter((n) => n.type === 'decision');
|
|
109
|
+
for (const decision of decisions) {
|
|
110
|
+
if (decision.status !== 'archived')
|
|
111
|
+
continue;
|
|
112
|
+
for (const featureId of decision.features ?? []) {
|
|
113
|
+
const feature = features.find((f) => f.id === featureId);
|
|
114
|
+
if (feature && feature.status === 'active' && feature.decisions?.includes(decision.id)) {
|
|
115
|
+
issues.push({
|
|
116
|
+
dimension: 'coherence',
|
|
117
|
+
severity: 'info',
|
|
118
|
+
code: 'CONFLICTING_DESCRIPTIONS',
|
|
119
|
+
message: `Active Feature "${featureId}" references archived Decision "${decision.id}"`,
|
|
120
|
+
note_id: decision.id,
|
|
121
|
+
suggestion: 'Consider updating the Feature to reference a current Decision or remove the link.',
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return issues;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Check decision consistency: overlapping active decisions on same feature,
|
|
130
|
+
* and missing backlinks.
|
|
131
|
+
*/
|
|
132
|
+
export function checkDecisionConsistency(allDecisions, allFeatures) {
|
|
133
|
+
const issues = [];
|
|
134
|
+
// Check 1: Two active Decisions linked to same Feature with overlapping topics
|
|
135
|
+
const featureDecisionMap = new Map();
|
|
136
|
+
for (const decision of allDecisions) {
|
|
137
|
+
if (decision.status === 'archived')
|
|
138
|
+
continue;
|
|
139
|
+
for (const featureId of decision.features ?? []) {
|
|
140
|
+
if (!featureDecisionMap.has(featureId)) {
|
|
141
|
+
featureDecisionMap.set(featureId, []);
|
|
142
|
+
}
|
|
143
|
+
featureDecisionMap.get(featureId).push(decision);
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
for (const [featureId, decisions] of featureDecisionMap) {
|
|
147
|
+
if (decisions.length < 2)
|
|
148
|
+
continue;
|
|
149
|
+
for (let i = 0; i < decisions.length; i++) {
|
|
150
|
+
for (let j = i + 1; j < decisions.length; j++) {
|
|
151
|
+
const sharedHeadings = decisions[i].headings.filter((h) => decisions[j].headings.includes(h) && h !== 'Context' && h !== 'Decision');
|
|
152
|
+
const sharedTags = decisions[i].tags.filter((t) => decisions[j].tags.includes(t));
|
|
153
|
+
if (sharedHeadings.length > 0 || sharedTags.length > 1) {
|
|
154
|
+
issues.push({
|
|
155
|
+
dimension: 'coherence',
|
|
156
|
+
severity: 'warning',
|
|
157
|
+
code: 'INCONSISTENT_DECISION',
|
|
158
|
+
message: `Decisions "${decisions[i].id}" and "${decisions[j].id}" are both active and linked to Feature "${featureId}" with overlapping topics (shared: ${[...sharedHeadings, ...sharedTags].join(', ')})`,
|
|
159
|
+
note_id: decisions[i].id,
|
|
160
|
+
suggestion: 'Review whether these Decisions conflict or should be consolidated.',
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Check 2: Decision references Feature that does not link back
|
|
167
|
+
for (const decision of allDecisions) {
|
|
168
|
+
for (const featureId of decision.features ?? []) {
|
|
169
|
+
const feature = allFeatures.find((f) => f.id === featureId);
|
|
170
|
+
if (feature && !feature.decisions?.includes(decision.id)) {
|
|
171
|
+
issues.push({
|
|
172
|
+
dimension: 'coherence',
|
|
173
|
+
severity: 'info',
|
|
174
|
+
code: 'INCONSISTENT_DECISION',
|
|
175
|
+
message: `Decision "${decision.id}" references Feature "${featureId}" but the Feature does not link back to the Decision`,
|
|
176
|
+
note_id: decision.id,
|
|
177
|
+
suggestion: 'Add the Decision to the Feature frontmatter decisions list.',
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
return issues;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Check that all depends_on targets actually exist in the index.
|
|
186
|
+
*/
|
|
187
|
+
export function checkDependsOnConsistency(activeChanges, index) {
|
|
188
|
+
const issues = [];
|
|
189
|
+
for (const change of activeChanges) {
|
|
190
|
+
for (const dep of change.depends_on) {
|
|
191
|
+
if (!index.records.has(dep)) {
|
|
192
|
+
issues.push({
|
|
193
|
+
dimension: 'coherence',
|
|
194
|
+
severity: 'error',
|
|
195
|
+
code: 'BROKEN_DEPENDS_ON',
|
|
196
|
+
message: `Change "${change.id}" depends_on "${dep}" which does not exist in the vault`,
|
|
197
|
+
note_id: change.id,
|
|
198
|
+
note_path: change.path,
|
|
199
|
+
suggestion: 'Fix the depends_on entry or create the missing Change note.',
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return issues;
|
|
205
|
+
}
|
|
206
|
+
//# sourceMappingURL=coherence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coherence.js","sourceRoot":"","sources":["../../../../src/core/workflow/verify/coherence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Completeness dimension checks.
|
|
3
|
+
* Verifies that required sections, links, and requirements are present.
|
|
4
|
+
*/
|
|
5
|
+
import type { VaultIndex, IndexRecord } from '../../../types/index.js';
|
|
6
|
+
import type { VerifyIssue } from '../../../types/verify.js';
|
|
7
|
+
/**
|
|
8
|
+
* Check completeness of a Feature note.
|
|
9
|
+
* Required: Purpose, Current Behavior, Requirements sections.
|
|
10
|
+
* Requirements must have SHALL/MUST and at least one scenario.
|
|
11
|
+
*/
|
|
12
|
+
export declare function checkFeatureCompleteness(feature: IndexRecord, _index: VaultIndex): VerifyIssue[];
|
|
13
|
+
/**
|
|
14
|
+
* Check completeness of a Change note.
|
|
15
|
+
* Hard prerequisites: Why section, Delta Summary, Tasks, Validation.
|
|
16
|
+
* Soft prerequisites: Design Approach (warning for complex changes).
|
|
17
|
+
*/
|
|
18
|
+
export declare function checkChangeCompleteness(change: IndexRecord, _index: VaultIndex): VerifyIssue[];
|
|
19
|
+
/**
|
|
20
|
+
* Check minimum sections for System, Decision, Source, Query notes.
|
|
21
|
+
* These have less strict requirements than Feature or Change.
|
|
22
|
+
*/
|
|
23
|
+
export declare function checkMinimumSections(_note: IndexRecord): VerifyIssue[];
|
|
24
|
+
//# sourceMappingURL=completeness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeness.d.ts","sourceRoot":"","sources":["../../../../src/core/workflow/verify/completeness.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAQ5D;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,CA0DhG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,GAAG,WAAW,EAAE,CAiG9F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW,EAAE,CAItE"}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
const FEATURE_REQUIRED_SECTIONS = ['Purpose', 'Current Behavior', 'Requirements'];
|
|
2
|
+
const CHANGE_REQUIRED_SECTIONS = ['Why'];
|
|
3
|
+
/** Threshold for considering a change "complex" (triggers Design Approach warning) */
|
|
4
|
+
const COMPLEX_CHANGE_DELTA_THRESHOLD = 3;
|
|
5
|
+
/**
|
|
6
|
+
* Check completeness of a Feature note.
|
|
7
|
+
* Required: Purpose, Current Behavior, Requirements sections.
|
|
8
|
+
* Requirements must have SHALL/MUST and at least one scenario.
|
|
9
|
+
*/
|
|
10
|
+
export function checkFeatureCompleteness(feature, _index) {
|
|
11
|
+
const issues = [];
|
|
12
|
+
// Required sections
|
|
13
|
+
for (const section of FEATURE_REQUIRED_SECTIONS) {
|
|
14
|
+
if (!feature.headings.includes(section)) {
|
|
15
|
+
issues.push({
|
|
16
|
+
dimension: 'completeness',
|
|
17
|
+
severity: 'error',
|
|
18
|
+
code: 'MISSING_SECTION',
|
|
19
|
+
message: `Feature "${feature.id}" is missing required section "${section}"`,
|
|
20
|
+
note_id: feature.id,
|
|
21
|
+
note_path: feature.path,
|
|
22
|
+
suggestion: `Add a "## ${section}" section to the Feature note.`,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
// Machine-verifiable requirements
|
|
27
|
+
if (feature.requirements.length === 0) {
|
|
28
|
+
issues.push({
|
|
29
|
+
dimension: 'completeness',
|
|
30
|
+
severity: 'error',
|
|
31
|
+
code: 'MISSING_REQUIREMENTS',
|
|
32
|
+
message: `Feature "${feature.id}" has no requirements defined`,
|
|
33
|
+
note_id: feature.id,
|
|
34
|
+
note_path: feature.path,
|
|
35
|
+
suggestion: 'Add at least one "### Requirement: <name>" under the Requirements section.',
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
// Each requirement must have SHALL/MUST and at least one scenario
|
|
39
|
+
for (const req of feature.requirements) {
|
|
40
|
+
if (!/\b(SHALL|MUST)\b/.test(req.normative)) {
|
|
41
|
+
issues.push({
|
|
42
|
+
dimension: 'completeness',
|
|
43
|
+
severity: 'error',
|
|
44
|
+
code: 'MISSING_REQUIREMENTS',
|
|
45
|
+
message: `Requirement "${req.name}" in Feature "${feature.id}" lacks SHALL or MUST keyword`,
|
|
46
|
+
note_id: feature.id,
|
|
47
|
+
note_path: feature.path,
|
|
48
|
+
suggestion: 'Normative statements must contain SHALL or MUST.',
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
if (req.scenarios.length === 0) {
|
|
52
|
+
issues.push({
|
|
53
|
+
dimension: 'completeness',
|
|
54
|
+
severity: 'error',
|
|
55
|
+
code: 'MISSING_REQUIREMENTS',
|
|
56
|
+
message: `Requirement "${req.name}" in Feature "${feature.id}" has no scenario defined`,
|
|
57
|
+
note_id: feature.id,
|
|
58
|
+
note_path: feature.path,
|
|
59
|
+
suggestion: 'Add at least one "#### Scenario:" with WHEN/THEN format.',
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return issues;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Check completeness of a Change note.
|
|
67
|
+
* Hard prerequisites: Why section, Delta Summary, Tasks, Validation.
|
|
68
|
+
* Soft prerequisites: Design Approach (warning for complex changes).
|
|
69
|
+
*/
|
|
70
|
+
export function checkChangeCompleteness(change, _index) {
|
|
71
|
+
const issues = [];
|
|
72
|
+
// Hard prerequisites - section headings
|
|
73
|
+
for (const section of CHANGE_REQUIRED_SECTIONS) {
|
|
74
|
+
if (!change.headings.includes(section)) {
|
|
75
|
+
issues.push({
|
|
76
|
+
dimension: 'completeness',
|
|
77
|
+
severity: 'error',
|
|
78
|
+
code: 'MISSING_SECTION',
|
|
79
|
+
message: `Change "${change.id}" is missing required section "${section}"`,
|
|
80
|
+
note_id: change.id,
|
|
81
|
+
note_path: change.path,
|
|
82
|
+
suggestion: `Add a "## ${section}" section to the Change note.`,
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Delta Summary check
|
|
87
|
+
if (change.delta_summary.length === 0) {
|
|
88
|
+
issues.push({
|
|
89
|
+
dimension: 'completeness',
|
|
90
|
+
severity: 'error',
|
|
91
|
+
code: 'MISSING_DELTA_SUMMARY',
|
|
92
|
+
message: `Change "${change.id}" has no Delta Summary entries`,
|
|
93
|
+
note_id: change.id,
|
|
94
|
+
note_path: change.path,
|
|
95
|
+
suggestion: 'Add a Delta Summary with ADDED/MODIFIED/REMOVED/RENAMED operations.',
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// Tasks check
|
|
99
|
+
if (change.tasks.length === 0) {
|
|
100
|
+
issues.push({
|
|
101
|
+
dimension: 'completeness',
|
|
102
|
+
severity: 'error',
|
|
103
|
+
code: 'MISSING_TASKS',
|
|
104
|
+
message: `Change "${change.id}" has no tasks defined`,
|
|
105
|
+
note_id: change.id,
|
|
106
|
+
note_path: change.path,
|
|
107
|
+
suggestion: 'Add a Tasks section with checkbox items.',
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
// Validation section check
|
|
111
|
+
if (!change.headings.includes('Validation')) {
|
|
112
|
+
issues.push({
|
|
113
|
+
dimension: 'completeness',
|
|
114
|
+
severity: 'error',
|
|
115
|
+
code: 'MISSING_VALIDATION',
|
|
116
|
+
message: `Change "${change.id}" is missing required section "Validation"`,
|
|
117
|
+
note_id: change.id,
|
|
118
|
+
note_path: change.path,
|
|
119
|
+
suggestion: 'Add a "## Validation" section describing how to verify this change.',
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
// Required links - feature
|
|
123
|
+
if (change.feature == null && (change.features == null || change.features.length === 0)) {
|
|
124
|
+
issues.push({
|
|
125
|
+
dimension: 'completeness',
|
|
126
|
+
severity: 'error',
|
|
127
|
+
code: 'MISSING_LINK',
|
|
128
|
+
message: `Change "${change.id}" has no linked Feature`,
|
|
129
|
+
note_id: change.id,
|
|
130
|
+
note_path: change.path,
|
|
131
|
+
suggestion: 'Add a "feature" or "features" field to the Change frontmatter.',
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
// Soft prerequisite - Design Approach for complex changes
|
|
135
|
+
if (!change.headings.includes('Design Approach') && isComplexChange(change)) {
|
|
136
|
+
issues.push({
|
|
137
|
+
dimension: 'completeness',
|
|
138
|
+
severity: 'warning',
|
|
139
|
+
code: 'MISSING_DESIGN_APPROACH',
|
|
140
|
+
message: `Change "${change.id}" has ${change.delta_summary.length} delta entries but no Design Approach section`,
|
|
141
|
+
note_id: change.id,
|
|
142
|
+
note_path: change.path,
|
|
143
|
+
suggestion: 'Consider adding a "## Design Approach" section for complex changes.',
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
// System link warning
|
|
147
|
+
if (change.systems.length === 0) {
|
|
148
|
+
issues.push({
|
|
149
|
+
dimension: 'completeness',
|
|
150
|
+
severity: 'warning',
|
|
151
|
+
code: 'MISSING_LINK',
|
|
152
|
+
message: `Change "${change.id}" has no linked System`,
|
|
153
|
+
note_id: change.id,
|
|
154
|
+
note_path: change.path,
|
|
155
|
+
suggestion: 'Add systems to the Change frontmatter.',
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
return issues;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Check minimum sections for System, Decision, Source, Query notes.
|
|
162
|
+
* These have less strict requirements than Feature or Change.
|
|
163
|
+
*/
|
|
164
|
+
export function checkMinimumSections(_note) {
|
|
165
|
+
// For v1, System/Decision/Source/Query have no mandatory section requirements
|
|
166
|
+
// beyond having valid frontmatter (checked by vault integrity).
|
|
167
|
+
return [];
|
|
168
|
+
}
|
|
169
|
+
function isComplexChange(change) {
|
|
170
|
+
return change.delta_summary.length >= COMPLEX_CHANGE_DELTA_THRESHOLD;
|
|
171
|
+
}
|
|
172
|
+
//# sourceMappingURL=completeness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeness.js","sourceRoot":"","sources":["../../../../src/core/workflow/verify/completeness.ts"],"names":[],"mappings":"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"}
|