@theglitchking/hit-em-with-the-docs 2.5.0 → 2.6.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.
Files changed (80) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +74 -0
  4. package/commands/domain.md +48 -0
  5. package/dist/action/core/audit/rules.d.ts.map +1 -1
  6. package/dist/action/core/domains/constants.d.ts +28 -23
  7. package/dist/action/core/domains/constants.d.ts.map +1 -1
  8. package/dist/action/core/domains/detector.d.ts +1 -1
  9. package/dist/action/core/domains/detector.d.ts.map +1 -1
  10. package/dist/action/core/domains/manage.d.ts +76 -0
  11. package/dist/action/core/domains/manage.d.ts.map +1 -0
  12. package/dist/action/core/domains/registry.d.ts +54 -0
  13. package/dist/action/core/domains/registry.d.ts.map +1 -0
  14. package/dist/action/core/links/tracker.d.ts.map +1 -1
  15. package/dist/action/generators/index-generator.d.ts.map +1 -1
  16. package/dist/action/generators/regenerate.d.ts.map +1 -1
  17. package/dist/action/generators/registry-generator.d.ts.map +1 -1
  18. package/dist/action/generators/scaffold.d.ts.map +1 -1
  19. package/dist/action/index.d.ts +1 -0
  20. package/dist/action/index.d.ts.map +1 -1
  21. package/dist/action/index.js +4 -4
  22. package/dist/action/utils/config.d.ts +139 -0
  23. package/dist/action/utils/config.d.ts.map +1 -1
  24. package/dist/action/utils/glob.d.ts +13 -1
  25. package/dist/action/utils/glob.d.ts.map +1 -1
  26. package/dist/cli/index.js +127 -5
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/core/audit/auditor.js +2 -2
  29. package/dist/core/audit/auditor.js.map +1 -1
  30. package/dist/core/audit/rules.d.ts.map +1 -1
  31. package/dist/core/audit/rules.js +3 -2
  32. package/dist/core/audit/rules.js.map +1 -1
  33. package/dist/core/domains/constants.d.ts +28 -23
  34. package/dist/core/domains/constants.d.ts.map +1 -1
  35. package/dist/core/domains/constants.js +11 -41
  36. package/dist/core/domains/constants.js.map +1 -1
  37. package/dist/core/domains/detector.d.ts +1 -1
  38. package/dist/core/domains/detector.d.ts.map +1 -1
  39. package/dist/core/domains/detector.js +5 -5
  40. package/dist/core/domains/detector.js.map +1 -1
  41. package/dist/core/domains/manage.d.ts +76 -0
  42. package/dist/core/domains/manage.d.ts.map +1 -0
  43. package/dist/core/domains/manage.js +171 -0
  44. package/dist/core/domains/manage.js.map +1 -0
  45. package/dist/core/domains/registry.d.ts +54 -0
  46. package/dist/core/domains/registry.d.ts.map +1 -0
  47. package/dist/core/domains/registry.js +116 -0
  48. package/dist/core/domains/registry.js.map +1 -0
  49. package/dist/core/links/tracker.d.ts.map +1 -1
  50. package/dist/core/links/tracker.js +8 -5
  51. package/dist/core/links/tracker.js.map +1 -1
  52. package/dist/core/maintain/orchestrator.js +2 -2
  53. package/dist/core/maintain/orchestrator.js.map +1 -1
  54. package/dist/core/metadata/schema.d.ts +48 -48
  55. package/dist/generators/index-generator.d.ts.map +1 -1
  56. package/dist/generators/index-generator.js +10 -10
  57. package/dist/generators/index-generator.js.map +1 -1
  58. package/dist/generators/regenerate.d.ts.map +1 -1
  59. package/dist/generators/regenerate.js +5 -4
  60. package/dist/generators/regenerate.js.map +1 -1
  61. package/dist/generators/registry-generator.d.ts.map +1 -1
  62. package/dist/generators/registry-generator.js +6 -6
  63. package/dist/generators/registry-generator.js.map +1 -1
  64. package/dist/generators/scaffold.d.ts.map +1 -1
  65. package/dist/generators/scaffold.js +43 -9
  66. package/dist/generators/scaffold.js.map +1 -1
  67. package/dist/index.d.ts +1 -0
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +1 -0
  70. package/dist/index.js.map +1 -1
  71. package/dist/utils/config.d.ts +139 -0
  72. package/dist/utils/config.d.ts.map +1 -1
  73. package/dist/utils/config.js +82 -5
  74. package/dist/utils/config.js.map +1 -1
  75. package/dist/utils/glob.d.ts +13 -1
  76. package/dist/utils/glob.d.ts.map +1 -1
  77. package/dist/utils/glob.js +23 -2
  78. package/dist/utils/glob.js.map +1 -1
  79. package/package.json +1 -1
  80. package/templates/claude/CLAUDE.md +5 -1
@@ -1,4 +1,4 @@
1
- import { DOMAINS, DOMAIN_DEFINITIONS } from '../core/domains/constants.js';
1
+ import { getAllDomains, getDomainDefinition, getDomainsByCategory, } from '../core/domains/registry.js';
2
2
  import { formatDate } from '../core/metadata/generator.js';
3
3
  /**
4
4
  * Generate the root REGISTRY.md content (quick reference)
@@ -24,8 +24,8 @@ purpose: Quick reference for all documentation domains
24
24
  | Domain | Category | Priority | Keywords |
25
25
  |--------|----------|----------|----------|
26
26
  `;
27
- for (const domain of DOMAINS) {
28
- const def = DOMAIN_DEFINITIONS[domain];
27
+ for (const domain of getAllDomains()) {
28
+ const def = getDomainDefinition(domain);
29
29
  const keywords = def.keywords.slice(0, 3).join(', ');
30
30
  content += `| [${def.name}](${domain}/) | ${def.category} | ${def.loadPriority}/10 | ${keywords} |\n`;
31
31
  }
@@ -33,10 +33,10 @@ purpose: Quick reference for all documentation domains
33
33
  // Group by category
34
34
  const categories = ['core', 'development', 'features', 'advanced'];
35
35
  for (const category of categories) {
36
- const categoryDomains = DOMAINS.filter((d) => DOMAIN_DEFINITIONS[d].category === category);
36
+ const categoryDomains = getDomainsByCategory(category);
37
37
  content += `### ${capitalize(category)}\n\n`;
38
38
  for (const domain of categoryDomains) {
39
- const def = DOMAIN_DEFINITIONS[domain];
39
+ const def = getDomainDefinition(domain);
40
40
  content += `- **[${def.name}](${domain}/)** - ${def.description}\n`;
41
41
  }
42
42
  content += `\n`;
@@ -59,7 +59,7 @@ purpose: Quick reference for all documentation domains
59
59
  * Generate domain-specific REGISTRY.md content
60
60
  */
61
61
  export function generateDomainRegistryContent(domain, entries = []) {
62
- const def = DOMAIN_DEFINITIONS[domain];
62
+ const def = getDomainDefinition(domain);
63
63
  const now = formatDate(new Date());
64
64
  let content = `---
65
65
  title: ${def.name} Registry
@@ -1 +1 @@
1
- {"version":3,"file":"registry-generator.js","sourceRoot":"","sources":["../../src/generators/registry-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAe,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnC,IAAI,OAAO,GAAG;;;;;iBAKC,GAAG;;;;;;;;;;;;;CAanB,CAAC;IAEA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,YAAY,SAAS,QAAQ,MAAM,CAAC;IACxG,CAAC;IAED,OAAO,IAAI,sBAAsB,CAAC;IAElC,oBAAoB;IACpB,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;IAE5E,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CACpC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CACnD,CAAC;QAEF,OAAO,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACvC,OAAO,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,qBAAqB,CAAC;IACjC,OAAO,IAAI,yBAAyB,CAAC;IACrC,OAAO,IAAI,yBAAyB,CAAC;IACrC,OAAO,IAAI,wDAAwD,CAAC;IACpE,OAAO,IAAI,mDAAmD,CAAC;IAC/D,OAAO,IAAI,sCAAsC,CAAC;IAClD,OAAO,IAAI,wDAAwD,CAAC;IACpE,OAAO,IAAI,iDAAiD,CAAC;IAC7D,OAAO,IAAI,uCAAuC,CAAC;IACnD,OAAO,IAAI,8DAA8D,CAAC;IAE1E,OAAO,IAAI,WAAW,CAAC;IACvB,OAAO,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAc,EACd,UAAwB,EAAE;IAE1B,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnC,IAAI,OAAO,GAAG;SACP,GAAG,CAAC,IAAI;;YAEL,MAAM;;iBAED,GAAG;;+BAEW,MAAM;;;IAGjC,GAAG,CAAC,IAAI;;wBAEY,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE;;;;;;gBAMrC,OAAO,CAAC,MAAM;eACf,GAAG,CAAC,QAAQ;oBACP,GAAG,CAAC,YAAY;;CAEnC,CAAC;IAEA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,qCAAqC;QACrC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC;aAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC1D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,yBAAyB,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,MAAM,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,yBAAyB,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,OAAO,IAAI,MAAM,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QAED,YAAY;QACZ,OAAO,IAAI,kBAAkB,CAAC;QAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,sBAAsB,CAAC;QAClC,OAAO,IAAI,sBAAsB,CAAC;QAClC,KAAK,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,KAAK,MAAM,MAAM,aAAa,CAAC,MAAM,MAAM,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,kBAAkB,CAAC;QAC9B,OAAO,IAAI,wCAAwC,CAAC;IACtD,CAAC;IAED,WAAW;IACX,OAAO,IAAI,iBAAiB,CAAC;IAC7B,OAAO,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAEjD,WAAW;IACX,OAAO,IAAI,iBAAiB,CAAC;IAC7B,OAAO,IAAI,wDAAwD,CAAC;IACpE,OAAO,IAAI,6CAA6C,CAAC;IAEzD,OAAO,IAAI,WAAW,CAAC;IACvB,OAAO,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAqB;IAC1C,MAAM,OAAO,GAAiC;QAC5C,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"registry-generator.js","sourceRoot":"","sources":["../../src/generators/registry-generator.ts"],"names":[],"mappings":"AACA,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAG3D;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnC,IAAI,OAAO,GAAG;;;;;iBAKC,GAAG;;;;;;;;;;;;;CAanB,CAAC;IAEA,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrD,OAAO,IAAI,MAAM,GAAG,CAAC,IAAI,KAAK,MAAM,QAAQ,GAAG,CAAC,QAAQ,MAAM,GAAG,CAAC,YAAY,SAAS,QAAQ,MAAM,CAAC;IACxG,CAAC;IAED,OAAO,IAAI,sBAAsB,CAAC;IAElC,oBAAoB;IACpB,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,CAAU,CAAC;IAE5E,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,eAAe,GAAG,oBAAoB,CAAC,QAAQ,CAAC,CAAC;QAEvD,OAAO,IAAI,OAAO,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC;QAE7C,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACxC,OAAO,IAAI,QAAQ,GAAG,CAAC,IAAI,KAAK,MAAM,UAAU,GAAG,CAAC,WAAW,IAAI,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;IAED,OAAO,IAAI,qBAAqB,CAAC;IACjC,OAAO,IAAI,yBAAyB,CAAC;IACrC,OAAO,IAAI,yBAAyB,CAAC;IACrC,OAAO,IAAI,wDAAwD,CAAC;IACpE,OAAO,IAAI,mDAAmD,CAAC;IAC/D,OAAO,IAAI,sCAAsC,CAAC;IAClD,OAAO,IAAI,wDAAwD,CAAC;IACpE,OAAO,IAAI,iDAAiD,CAAC;IAC7D,OAAO,IAAI,uCAAuC,CAAC;IACnD,OAAO,IAAI,8DAA8D,CAAC;IAE1E,OAAO,IAAI,WAAW,CAAC;IACvB,OAAO,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,6BAA6B,CAC3C,MAAc,EACd,UAAwB,EAAE;IAE1B,MAAM,GAAG,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACxC,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAEnC,IAAI,OAAO,GAAG;SACP,GAAG,CAAC,IAAI;;YAEL,MAAM;;iBAED,GAAG;;+BAEW,MAAM;;;IAGjC,GAAG,CAAC,IAAI;;wBAEY,GAAG,CAAC,WAAW,CAAC,WAAW,EAAE;;;;;;gBAMrC,OAAO,CAAC,MAAM;eACf,GAAG,CAAC,QAAQ;oBACP,GAAG,CAAC,YAAY;;CAEnC,CAAC;IAEA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,qCAAqC;QACrC,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC;QACnE,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,CAAC;aAC/B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;aAC1D,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEf,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,yBAAyB,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;gBAC/C,OAAO,IAAI,MAAM,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,CAAC;YACnD,CAAC;YACD,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QAED,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,yBAAyB,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,aAAa,EAAE,CAAC;gBAClC,OAAO,IAAI,MAAM,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,IAAI,CAAC;YAC1E,CAAC;YACD,OAAO,IAAI,IAAI,CAAC;QAClB,CAAC;QAED,YAAY;QACZ,OAAO,IAAI,kBAAkB,CAAC;QAC9B,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,IAAI,sBAAsB,CAAC;QAClC,OAAO,IAAI,sBAAsB,CAAC;QAClC,KAAK,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/D,OAAO,IAAI,KAAK,MAAM,MAAM,aAAa,CAAC,MAAM,MAAM,CAAC;QACzD,CAAC;QACD,OAAO,IAAI,IAAI,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,kBAAkB,CAAC;QAC9B,OAAO,IAAI,wCAAwC,CAAC;IACtD,CAAC;IAED,WAAW;IACX,OAAO,IAAI,iBAAiB,CAAC;IAC7B,OAAO,IAAI,KAAK,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAEjD,WAAW;IACX,OAAO,IAAI,iBAAiB,CAAC;IAC7B,OAAO,IAAI,wDAAwD,CAAC;IACpE,OAAO,IAAI,6CAA6C,CAAC;IAEzD,OAAO,IAAI,WAAW,CAAC;IACvB,OAAO,IAAI,kBAAkB,GAAG,KAAK,CAAC;IAEtC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAqB;IAC1C,MAAM,OAAO,GAAiC;QAC5C,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,EAAE;QACT,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,MAAM,CAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW;IAC7B,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/generators/scaffold.ts"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAQxF,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAsDtF;AA6KD;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC,CA4BD"}
1
+ {"version":3,"file":"scaffold.d.ts","sourceRoot":"","sources":["../../src/generators/scaffold.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAS3D,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAsDtF;AAuND;;GAEG;AACH,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGvE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IACjE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,cAAc,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC,CA4BD"}
@@ -1,17 +1,17 @@
1
1
  import { mkdir, writeFile } from 'fs/promises';
2
2
  import { join } from 'path';
3
- import { DOMAINS, DOMAIN_DEFINITIONS } from '../core/domains/constants.js';
3
+ import { getAllDomains, getDomainDefinition } from '../core/domains/registry.js';
4
4
  import { generateRootIndex } from './index-generator.js';
5
5
  import { generateRootRegistry } from './registry-generator.js';
6
6
  import { generateDomainIndex } from './templates/domain-index.js';
7
7
  import { generateDomainRegistry } from './templates/domain-registry.js';
8
8
  import { logger } from '../utils/logger.js';
9
- import { pathExists } from '../utils/glob.js';
9
+ import { pathExists, ARCHIVE_DIR } from '../utils/glob.js';
10
10
  /**
11
11
  * Create the complete documentation scaffold
12
12
  */
13
13
  export async function createScaffold(options) {
14
- const { rootPath, overwrite = false, domains = [...DOMAINS], silent = false, } = options;
14
+ const { rootPath, overwrite = false, domains = getAllDomains(), silent = false, } = options;
15
15
  const result = {
16
16
  success: true,
17
17
  created: [],
@@ -96,7 +96,7 @@ async function createRootFiles(rootPath, result, overwrite) {
96
96
  */
97
97
  async function createDomainStructure(rootPath, domain, result, overwrite) {
98
98
  const domainPath = join(rootPath, domain);
99
- const def = DOMAIN_DEFINITIONS[domain];
99
+ const def = getDomainDefinition(domain);
100
100
  // Create domain directory
101
101
  await createDirectory(domainPath, result, overwrite);
102
102
  // Create INDEX.md
@@ -107,16 +107,50 @@ async function createDomainStructure(rootPath, domain, result, overwrite) {
107
107
  await createFile(join(domainPath, 'REGISTRY.md'), registryContent, result, overwrite);
108
108
  }
109
109
  /**
110
- * Create special directories (drafts, reports)
110
+ * Create special directories (drafts, reports, archive)
111
111
  */
112
112
  async function createSpecialDirectories(rootPath, result, overwrite) {
113
113
  // Drafts directory
114
114
  await createDirectory(join(rootPath, 'drafts'), result, overwrite);
115
115
  // Reports directory
116
116
  await createDirectory(join(rootPath, 'reports'), result, overwrite);
117
+ // Archive directory — deprecated docs live here and are NOT scanned.
118
+ await createDirectory(join(rootPath, ARCHIVE_DIR), result, overwrite);
117
119
  // Create .gitkeep files to preserve empty directories
118
120
  await createFile(join(rootPath, 'drafts', '.gitkeep'), '# This file ensures the drafts directory is tracked by git\n', result, overwrite);
119
121
  await createFile(join(rootPath, 'reports', '.gitkeep'), '# This file ensures the reports directory is tracked by git\n', result, overwrite);
122
+ // Archive README documents the convention (and keeps the dir tracked).
123
+ await createFile(join(rootPath, ARCHIVE_DIR, 'README.md'), generateArchiveReadme(), result, overwrite);
124
+ }
125
+ /**
126
+ * Generate the archive/ README — the user-facing instruction for the
127
+ * deprecated-docs convention.
128
+ */
129
+ function generateArchiveReadme() {
130
+ return `# Archive
131
+
132
+ This folder is the parking lot for **deprecated documentation**.
133
+
134
+ Move a doc here when it is retired but you don't want to delete it (historical
135
+ reference, superseded guides, old runbooks, etc.).
136
+
137
+ ## hewtd ignores this folder
138
+
139
+ Everything under \`archive/\` is **excluded from every hewtd scan** — \`audit\`,
140
+ \`link-check\`, \`metadata-sync\`, \`integrate\` duplicate-detection, the link
141
+ graph, and \`search\`. Archived docs:
142
+
143
+ - are **not** validated against the frontmatter schema,
144
+ - do **not** appear in any INDEX.md / REGISTRY.md,
145
+ - do **not** break link-check or audit if their frontmatter is stale.
146
+
147
+ In other words: parking a doc here takes it out of the active corpus without
148
+ losing it. To bring a doc back, move it into the appropriate domain folder and
149
+ run \`hewtd maintain\`.
150
+
151
+ > Note: \`archive/\` is a reserved name. Do not create a custom domain called
152
+ > \`archive\`.
153
+ `;
120
154
  }
121
155
  /**
122
156
  * Generate root README content
@@ -124,7 +158,7 @@ async function createSpecialDirectories(rootPath, result, overwrite) {
124
158
  function generateRootReadme() {
125
159
  return `# Documentation
126
160
 
127
- This documentation system uses a hierarchical 15-domain structure for optimal organization and discoverability.
161
+ This documentation system uses a hierarchical, domain-based structure for optimal organization and discoverability.
128
162
 
129
163
  ## Quick Navigation
130
164
 
@@ -135,7 +169,7 @@ This documentation system uses a hierarchical 15-domain structure for optimal or
135
169
 
136
170
  | Domain | Description |
137
171
  |--------|-------------|
138
- ${DOMAINS.map((d) => `| [${d}](${d}/) | ${DOMAIN_DEFINITIONS[d].description} |`).join('\n')}
172
+ ${getAllDomains().map((d) => `| [${d}](${d}/) | ${getDomainDefinition(d).description} |`).join('\n')}
139
173
 
140
174
  ## Adding New Documentation
141
175
 
@@ -190,12 +224,12 @@ export async function getScaffoldStatus(rootPath) {
190
224
  return {
191
225
  exists: false,
192
226
  domains: [],
193
- missingDomains: [...DOMAINS],
227
+ missingDomains: getAllDomains(),
194
228
  };
195
229
  }
196
230
  const presentDomains = [];
197
231
  const missingDomains = [];
198
- for (const domain of DOMAINS) {
232
+ for (const domain of getAllDomains()) {
199
233
  const domainPath = join(rootPath, domain);
200
234
  if (await pathExists(domainPath)) {
201
235
  presentDomains.push(domain);
@@ -1 +1 @@
1
- {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/generators/scaffold.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scaffold.js","sourceRoot":"","sources":["../../src/generators/scaffold.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  * intelligent automation, pattern discovery, and agent orchestration.
6
6
  */
7
7
  export * from './core/domains/constants.js';
8
+ export * from './core/domains/registry.js';
8
9
  export * from './core/domains/detector.js';
9
10
  export * from './core/domains/classifier.js';
10
11
  export * from './core/metadata/schema.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAG7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAG3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAGzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -6,6 +6,7 @@
6
6
  */
7
7
  // Core domain system
8
8
  export * from './core/domains/constants.js';
9
+ export * from './core/domains/registry.js';
9
10
  export * from './core/domains/detector.js';
10
11
  export * from './core/domains/classifier.js';
11
12
  // Metadata system
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAE7C,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAE7C,YAAY;AACZ,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,aAAa;AACb,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAE3C,kBAAkB;AAClB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAEhD,mBAAmB;AACnB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAEhD,UAAU;AACV,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,qCAAqC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,qBAAqB;AACrB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAE7C,kBAAkB;AAClB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAE7C,YAAY;AACZ,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AAEpC,aAAa;AACb,cAAc,0BAA0B,CAAC;AACzC,cAAc,iCAAiC,CAAC;AAChD,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAE3C,kBAAkB;AAClB,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAEhD,mBAAmB;AACnB,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAEhD,UAAU;AACV,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AAEzC,qCAAqC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
@@ -10,6 +10,43 @@ import { z } from 'zod';
10
10
  export declare const DEFAULT_VAULT_ROOT = ".documentation/knowledge-base/";
11
11
  export declare const DEFAULT_PLAYBOOK_GLOBS: string[];
12
12
  export declare const DEFAULT_AUDIT_WINDOW_DAYS = 90;
13
+ /**
14
+ * Valid `category` values for a domain. Kept in sync with `DomainDefinition`
15
+ * in `core/domains/constants.ts` — duplicated here intentionally so the config
16
+ * loader carries no dependency on the domain layer (the registry imports the
17
+ * config, not the other way around).
18
+ */
19
+ export declare const DOMAIN_CATEGORY_VALUES: readonly ["core", "development", "features", "advanced"];
20
+ /**
21
+ * Schema for a single custom domain entry. Mirrors `DomainDefinition`. Used
22
+ * by the registry merge layer and by `hewtd domain add` (which validates
23
+ * strictly before writing). Collision with a built-in id is NOT checked here —
24
+ * that requires knowing the built-in set, so it is enforced in the registry
25
+ * merge (drop-with-warning) and in the CLI writer (hard error).
26
+ */
27
+ export declare const customDomainSchema: z.ZodObject<{
28
+ id: z.ZodString;
29
+ name: z.ZodString;
30
+ description: z.ZodString;
31
+ keywords: z.ZodArray<z.ZodString, "many">;
32
+ loadPriority: z.ZodNumber;
33
+ category: z.ZodEnum<["core", "development", "features", "advanced"]>;
34
+ }, "strip", z.ZodTypeAny, {
35
+ id: string;
36
+ name: string;
37
+ description: string;
38
+ keywords: string[];
39
+ loadPriority: number;
40
+ category: "features" | "core" | "development" | "advanced";
41
+ }, {
42
+ id: string;
43
+ name: string;
44
+ description: string;
45
+ keywords: string[];
46
+ loadPriority: number;
47
+ category: "features" | "core" | "development" | "advanced";
48
+ }>;
49
+ export type CustomDomainConfig = z.infer<typeof customDomainSchema>;
13
50
  /**
14
51
  * Schema for `.claude/hit-em-with-the-docs.json`. Every field is optional
15
52
  * with a sensible default. The runtime's `updatePolicy` is preserved via
@@ -42,6 +79,35 @@ declare const pluginConfigSchema: z.ZodObject<{
42
79
  playbook_paths?: string[] | undefined;
43
80
  audit_window_days?: number | undefined;
44
81
  }>>;
82
+ domains: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodObject<{
83
+ id: z.ZodString;
84
+ name: z.ZodString;
85
+ description: z.ZodString;
86
+ keywords: z.ZodArray<z.ZodString, "many">;
87
+ loadPriority: z.ZodNumber;
88
+ category: z.ZodEnum<["core", "development", "features", "advanced"]>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ id: string;
91
+ name: string;
92
+ description: string;
93
+ keywords: string[];
94
+ loadPriority: number;
95
+ category: "features" | "core" | "development" | "advanced";
96
+ }, {
97
+ id: string;
98
+ name: string;
99
+ description: string;
100
+ keywords: string[];
101
+ loadPriority: number;
102
+ category: "features" | "core" | "development" | "advanced";
103
+ }>, "many">, {
104
+ id: string;
105
+ name: string;
106
+ description: string;
107
+ keywords: string[];
108
+ loadPriority: number;
109
+ category: "features" | "core" | "development" | "advanced";
110
+ }[], unknown>>;
45
111
  }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
46
112
  vault: z.ZodDefault<z.ZodObject<{
47
113
  root: z.ZodDefault<z.ZodString>;
@@ -56,6 +122,35 @@ declare const pluginConfigSchema: z.ZodObject<{
56
122
  playbook_paths?: string[] | undefined;
57
123
  audit_window_days?: number | undefined;
58
124
  }>>;
125
+ domains: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodObject<{
126
+ id: z.ZodString;
127
+ name: z.ZodString;
128
+ description: z.ZodString;
129
+ keywords: z.ZodArray<z.ZodString, "many">;
130
+ loadPriority: z.ZodNumber;
131
+ category: z.ZodEnum<["core", "development", "features", "advanced"]>;
132
+ }, "strip", z.ZodTypeAny, {
133
+ id: string;
134
+ name: string;
135
+ description: string;
136
+ keywords: string[];
137
+ loadPriority: number;
138
+ category: "features" | "core" | "development" | "advanced";
139
+ }, {
140
+ id: string;
141
+ name: string;
142
+ description: string;
143
+ keywords: string[];
144
+ loadPriority: number;
145
+ category: "features" | "core" | "development" | "advanced";
146
+ }>, "many">, {
147
+ id: string;
148
+ name: string;
149
+ description: string;
150
+ keywords: string[];
151
+ loadPriority: number;
152
+ category: "features" | "core" | "development" | "advanced";
153
+ }[], unknown>>;
59
154
  }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
60
155
  vault: z.ZodDefault<z.ZodObject<{
61
156
  root: z.ZodDefault<z.ZodString>;
@@ -70,6 +165,35 @@ declare const pluginConfigSchema: z.ZodObject<{
70
165
  playbook_paths?: string[] | undefined;
71
166
  audit_window_days?: number | undefined;
72
167
  }>>;
168
+ domains: z.ZodDefault<z.ZodEffects<z.ZodArray<z.ZodObject<{
169
+ id: z.ZodString;
170
+ name: z.ZodString;
171
+ description: z.ZodString;
172
+ keywords: z.ZodArray<z.ZodString, "many">;
173
+ loadPriority: z.ZodNumber;
174
+ category: z.ZodEnum<["core", "development", "features", "advanced"]>;
175
+ }, "strip", z.ZodTypeAny, {
176
+ id: string;
177
+ name: string;
178
+ description: string;
179
+ keywords: string[];
180
+ loadPriority: number;
181
+ category: "features" | "core" | "development" | "advanced";
182
+ }, {
183
+ id: string;
184
+ name: string;
185
+ description: string;
186
+ keywords: string[];
187
+ loadPriority: number;
188
+ category: "features" | "core" | "development" | "advanced";
189
+ }>, "many">, {
190
+ id: string;
191
+ name: string;
192
+ description: string;
193
+ keywords: string[];
194
+ loadPriority: number;
195
+ category: "features" | "core" | "development" | "advanced";
196
+ }[], unknown>>;
73
197
  }, z.ZodTypeAny, "passthrough">>;
74
198
  export type VaultConfig = z.infer<typeof vaultConfigSchema>;
75
199
  export type PluginConfig = z.infer<typeof pluginConfigSchema>;
@@ -85,6 +209,21 @@ export declare function loadPluginConfig(projectRoot?: string): Promise<PluginCo
85
209
  * Same fail-open behavior.
86
210
  */
87
211
  export declare function loadPluginConfigSync(projectRoot?: string): PluginConfig;
212
+ /**
213
+ * Read the RAW config object (unparsed, no defaults applied) for a project.
214
+ * Returns `{}` when the file is missing or unreadable/malformed. Use this when
215
+ * you need to MUTATE the config and write it back without clobbering keys this
216
+ * module doesn't model (e.g. the runtime's `updatePolicy`). Never throws.
217
+ */
218
+ export declare function readRawConfig(projectRoot?: string): Promise<Record<string, unknown>>;
219
+ /**
220
+ * Write the RAW config object back to `.claude/hit-em-with-the-docs.json`,
221
+ * creating the `.claude/` directory if needed. Pretty-printed with a trailing
222
+ * newline. Returns the absolute path written.
223
+ */
224
+ export declare function writeRawConfig(projectRoot: string, data: Record<string, unknown>): Promise<string>;
225
+ /** Absolute path to a project's config file (whether or not it exists). */
226
+ export declare function configFilePath(projectRoot: string): string;
88
227
  /**
89
228
  * Resolve the vault root for a project, applying config + defaults.
90
229
  * The returned path is absolute.
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB,mCAAmC,CAAC;AACnE,eAAO,MAAM,sBAAsB,UAA6B,CAAC;AACjE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAE5C;;;;GAIG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;GAMT,CAAC;AAEf,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAIR,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBlF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAoBvE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAElF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,GACnB,MAAM,EAAE,CAEV"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB,mCAAmC,CAAC;AACnE,eAAO,MAAM,sBAAsB,UAA6B,CAAC;AACjE,eAAO,MAAM,yBAAyB,KAAK,CAAC;AAK5C;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,0DAKzB,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;EAO7B,CAAC;AAEH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAgBpE;;;;GAIG;AACH,QAAA,MAAM,iBAAiB;;;;;;;;;;;;GAMT,CAAC;AAEf,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAKR,CAAC;AAEjB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAI9D;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBlF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,YAAY,CAiBvE;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAYlC;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,MAAM,CAAC,CAKjB;AAED,2EAA2E;AAC3E,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAElF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,YAAY,GACnB,MAAM,EAAE,CAEV"}
@@ -6,12 +6,56 @@
6
6
  * 2.3.0 `vault` block for knowledge-base configuration. Missing or
7
7
  * malformed files fall back to defaults — never throws.
8
8
  */
9
- import { readFile } from 'fs/promises';
10
- import { join, resolve } from 'path';
9
+ import { readFileSync } from 'fs';
10
+ import { mkdir, readFile, writeFile } from 'fs/promises';
11
+ import { dirname, join, resolve } from 'path';
11
12
  import { z } from 'zod';
12
13
  export const DEFAULT_VAULT_ROOT = '.documentation/knowledge-base/';
13
14
  export const DEFAULT_PLAYBOOK_GLOBS = ['.documentation/**/*.md'];
14
15
  export const DEFAULT_AUDIT_WINDOW_DAYS = 90;
16
+ /** Kebab-case slug: matches the fact/incident id convention used elsewhere. */
17
+ const KEBAB_SLUG_RE = /^[a-z0-9]+(?:-[a-z0-9]+)*$/;
18
+ /**
19
+ * Valid `category` values for a domain. Kept in sync with `DomainDefinition`
20
+ * in `core/domains/constants.ts` — duplicated here intentionally so the config
21
+ * loader carries no dependency on the domain layer (the registry imports the
22
+ * config, not the other way around).
23
+ */
24
+ export const DOMAIN_CATEGORY_VALUES = [
25
+ 'core',
26
+ 'development',
27
+ 'features',
28
+ 'advanced',
29
+ ];
30
+ /**
31
+ * Schema for a single custom domain entry. Mirrors `DomainDefinition`. Used
32
+ * by the registry merge layer and by `hewtd domain add` (which validates
33
+ * strictly before writing). Collision with a built-in id is NOT checked here —
34
+ * that requires knowing the built-in set, so it is enforced in the registry
35
+ * merge (drop-with-warning) and in the CLI writer (hard error).
36
+ */
37
+ export const customDomainSchema = z.object({
38
+ id: z.string().regex(KEBAB_SLUG_RE, 'domain id must be kebab-case'),
39
+ name: z.string().min(1),
40
+ description: z.string().min(1),
41
+ keywords: z.array(z.string().min(1)).min(1, 'at least one keyword is required'),
42
+ loadPriority: z.number().int().min(1).max(10),
43
+ category: z.enum(DOMAIN_CATEGORY_VALUES),
44
+ });
45
+ /**
46
+ * Lenient `domains[]` parser: drops malformed entries instead of failing the
47
+ * whole config load. This preserves `loadPluginConfig`'s never-throw contract —
48
+ * a hand-edited config with one bad domain entry still loads the rest (and the
49
+ * valid vault block). The CLI `domain add` command does the strict, user-facing
50
+ * validation; this is the last-line filter for the runtime.
51
+ */
52
+ const lenientDomainsArray = z
53
+ .preprocess((val) => {
54
+ if (!Array.isArray(val))
55
+ return [];
56
+ return val.filter((entry) => customDomainSchema.safeParse(entry).success);
57
+ }, z.array(customDomainSchema))
58
+ .default([]);
15
59
  /**
16
60
  * Schema for `.claude/hit-em-with-the-docs.json`. Every field is optional
17
61
  * with a sensible default. The runtime's `updatePolicy` is preserved via
@@ -27,6 +71,7 @@ const vaultConfigSchema = z
27
71
  const pluginConfigSchema = z
28
72
  .object({
29
73
  vault: vaultConfigSchema,
74
+ domains: lenientDomainsArray,
30
75
  })
31
76
  .passthrough();
32
77
  const CONFIG_FILENAME = '.claude/hit-em-with-the-docs.json';
@@ -63,9 +108,6 @@ export function loadPluginConfigSync(projectRoot) {
63
108
  const configPath = resolve(root, CONFIG_FILENAME);
64
109
  let raw;
65
110
  try {
66
- // Lazy require to avoid hoisting an fs dep when this code path isn't used.
67
- // eslint-disable-next-line @typescript-eslint/no-require-imports
68
- const { readFileSync } = require('fs');
69
111
  const contents = readFileSync(configPath, 'utf-8');
70
112
  raw = JSON.parse(contents);
71
113
  }
@@ -78,6 +120,41 @@ export function loadPluginConfigSync(projectRoot) {
78
120
  }
79
121
  return pluginConfigSchema.parse({});
80
122
  }
123
+ /**
124
+ * Read the RAW config object (unparsed, no defaults applied) for a project.
125
+ * Returns `{}` when the file is missing or unreadable/malformed. Use this when
126
+ * you need to MUTATE the config and write it back without clobbering keys this
127
+ * module doesn't model (e.g. the runtime's `updatePolicy`). Never throws.
128
+ */
129
+ export async function readRawConfig(projectRoot) {
130
+ const root = projectRoot ?? process.cwd();
131
+ const configPath = resolve(root, CONFIG_FILENAME);
132
+ try {
133
+ const contents = await readFile(configPath, 'utf-8');
134
+ const parsed = JSON.parse(contents);
135
+ return parsed && typeof parsed === 'object' && !Array.isArray(parsed)
136
+ ? parsed
137
+ : {};
138
+ }
139
+ catch {
140
+ return {};
141
+ }
142
+ }
143
+ /**
144
+ * Write the RAW config object back to `.claude/hit-em-with-the-docs.json`,
145
+ * creating the `.claude/` directory if needed. Pretty-printed with a trailing
146
+ * newline. Returns the absolute path written.
147
+ */
148
+ export async function writeRawConfig(projectRoot, data) {
149
+ const configPath = resolve(projectRoot, CONFIG_FILENAME);
150
+ await mkdir(dirname(configPath), { recursive: true });
151
+ await writeFile(configPath, JSON.stringify(data, null, 2) + '\n', 'utf-8');
152
+ return configPath;
153
+ }
154
+ /** Absolute path to a project's config file (whether or not it exists). */
155
+ export function configFilePath(projectRoot) {
156
+ return resolve(projectRoot, CONFIG_FILENAME);
157
+ }
81
158
  /**
82
159
  * Resolve the vault root for a project, applying config + defaults.
83
160
  * The returned path is absolute.
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,19 @@ export interface GlobOptions {
9
9
  */
10
10
  export declare function glob(pattern: string, options?: GlobOptions): Promise<string[]>;
11
11
  /**
12
- * Find all markdown files in a directory
12
+ * Reserved documentation subdirectory for DEPRECATED docs. Anything under
13
+ * `<docs>/archive/` is intentionally excluded from every hewtd scan (audit,
14
+ * link-check, metadata-sync, integrate dup-detection, link graph, search) —
15
+ * it's a parking lot for retired docs, not part of the active corpus.
16
+ */
17
+ export declare const ARCHIVE_DIR = "archive";
18
+ /**
19
+ * Find all markdown files in a directory.
20
+ *
21
+ * Used exclusively as the documentation-corpus scanner, so it always skips
22
+ * the reserved `archive/` subtree (deprecated docs) in addition to the
23
+ * standard build/vcs ignores. Callers may pass extra `ignore` patterns; they
24
+ * are merged, never override the archive exclusion.
13
25
  */
14
26
  export declare function findMarkdownFiles(dir: string, options?: Omit<GlobOptions, 'absolute'>): Promise<string[]>;
15
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/utils/glob.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAM,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAMnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAStE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
1
+ {"version":3,"file":"glob.d.ts","sourceRoot":"","sources":["../../src/utils/glob.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBnB;AAED;;;;;GAKG;AACH,eAAO,MAAM,WAAW,YAAY,CAAC;AAUrC;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAM,GAC1C,OAAO,CAAC,MAAM,EAAE,CAAC,CAQnB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOhE;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAStE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEtE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAElD"}
@@ -17,11 +17,32 @@ export async function glob(pattern, options = {}) {
17
17
  return matches;
18
18
  }
19
19
  /**
20
- * Find all markdown files in a directory
20
+ * Reserved documentation subdirectory for DEPRECATED docs. Anything under
21
+ * `<docs>/archive/` is intentionally excluded from every hewtd scan (audit,
22
+ * link-check, metadata-sync, integrate dup-detection, link graph, search) —
23
+ * it's a parking lot for retired docs, not part of the active corpus.
24
+ */
25
+ export const ARCHIVE_DIR = 'archive';
26
+ /** Glob ignores always applied to documentation scans. */
27
+ const DOC_SCAN_IGNORE = [
28
+ 'node_modules/**',
29
+ 'dist/**',
30
+ '.git/**',
31
+ `${ARCHIVE_DIR}/**`,
32
+ ];
33
+ /**
34
+ * Find all markdown files in a directory.
35
+ *
36
+ * Used exclusively as the documentation-corpus scanner, so it always skips
37
+ * the reserved `archive/` subtree (deprecated docs) in addition to the
38
+ * standard build/vcs ignores. Callers may pass extra `ignore` patterns; they
39
+ * are merged, never override the archive exclusion.
21
40
  */
22
41
  export async function findMarkdownFiles(dir, options = {}) {
42
+ const { ignore: extraIgnore = [], ...rest } = options;
23
43
  return glob('**/*.md', {
24
- ...options,
44
+ ...rest,
45
+ ignore: [...DOC_SCAN_IGNORE, ...extraIgnore],
25
46
  cwd: dir,
26
47
  absolute: true,
27
48
  });