@seanmars/tospec 0.21.0 → 0.23.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 (107) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +6 -4
  3. package/assets/rules/tospec/single-source-of-truth.md +1 -1
  4. package/dist/core/init.d.ts.map +1 -1
  5. package/dist/core/init.js +5 -6
  6. package/dist/core/init.js.map +1 -1
  7. package/dist/core/migrate.js +1 -1
  8. package/dist/core/migrate.js.map +1 -1
  9. package/dist/core/shared/index.d.ts +1 -1
  10. package/dist/core/shared/index.d.ts.map +1 -1
  11. package/dist/core/shared/index.js +1 -1
  12. package/dist/core/shared/index.js.map +1 -1
  13. package/dist/core/shared/skill-generation.d.ts +2 -25
  14. package/dist/core/shared/skill-generation.d.ts.map +1 -1
  15. package/dist/core/shared/skill-generation.js +16 -60
  16. package/dist/core/shared/skill-generation.js.map +1 -1
  17. package/dist/core/shared/tool-detection.d.ts +1 -2
  18. package/dist/core/shared/tool-detection.d.ts.map +1 -1
  19. package/dist/core/shared/tool-detection.js +1 -2
  20. package/dist/core/shared/tool-detection.js.map +1 -1
  21. package/dist/core/{command-generation → shared}/yaml.d.ts +1 -2
  22. package/dist/core/shared/yaml.d.ts.map +1 -0
  23. package/dist/core/{command-generation → shared}/yaml.js +1 -2
  24. package/dist/core/shared/yaml.js.map +1 -0
  25. package/dist/core/skill-metrics.d.ts +3 -2
  26. package/dist/core/skill-metrics.d.ts.map +1 -1
  27. package/dist/core/skill-metrics.js +3 -2
  28. package/dist/core/skill-metrics.js.map +1 -1
  29. package/dist/core/templates/fragments/interview.d.ts +1 -1
  30. package/dist/core/templates/fragments/interview.d.ts.map +1 -1
  31. package/dist/core/templates/fragments/interview.js +1 -1
  32. package/dist/core/templates/fragments/interview.js.map +1 -1
  33. package/dist/core/templates/fragments/verify.d.ts +3 -13
  34. package/dist/core/templates/fragments/verify.d.ts.map +1 -1
  35. package/dist/core/templates/fragments/verify.js +5 -13
  36. package/dist/core/templates/fragments/verify.js.map +1 -1
  37. package/dist/core/templates/skill-templates.d.ts +10 -10
  38. package/dist/core/templates/skill-templates.d.ts.map +1 -1
  39. package/dist/core/templates/skill-templates.js +9 -9
  40. package/dist/core/templates/skill-templates.js.map +1 -1
  41. package/dist/core/templates/types.d.ts +0 -7
  42. package/dist/core/templates/types.d.ts.map +1 -1
  43. package/dist/core/templates/workflows/apply.d.ts +1 -3
  44. package/dist/core/templates/workflows/apply.d.ts.map +1 -1
  45. package/dist/core/templates/workflows/apply.js +9 -42
  46. package/dist/core/templates/workflows/apply.js.map +1 -1
  47. package/dist/core/templates/workflows/archive.d.ts +1 -2
  48. package/dist/core/templates/workflows/archive.d.ts.map +1 -1
  49. package/dist/core/templates/workflows/archive.js +1 -14
  50. package/dist/core/templates/workflows/archive.js.map +1 -1
  51. package/dist/core/templates/workflows/decision.d.ts +1 -2
  52. package/dist/core/templates/workflows/decision.d.ts.map +1 -1
  53. package/dist/core/templates/workflows/decision.js +0 -13
  54. package/dist/core/templates/workflows/decision.js.map +1 -1
  55. package/dist/core/templates/workflows/explore.d.ts +1 -2
  56. package/dist/core/templates/workflows/explore.d.ts.map +1 -1
  57. package/dist/core/templates/workflows/explore.js +3 -16
  58. package/dist/core/templates/workflows/explore.js.map +1 -1
  59. package/dist/core/templates/workflows/grill.d.ts +1 -2
  60. package/dist/core/templates/workflows/grill.d.ts.map +1 -1
  61. package/dist/core/templates/workflows/grill.js +1 -14
  62. package/dist/core/templates/workflows/grill.js.map +1 -1
  63. package/dist/core/templates/workflows/issue.d.ts +1 -2
  64. package/dist/core/templates/workflows/issue.d.ts.map +1 -1
  65. package/dist/core/templates/workflows/issue.js +4 -17
  66. package/dist/core/templates/workflows/issue.js.map +1 -1
  67. package/dist/core/templates/workflows/propose.d.ts +1 -2
  68. package/dist/core/templates/workflows/propose.d.ts.map +1 -1
  69. package/dist/core/templates/workflows/propose.js +1 -14
  70. package/dist/core/templates/workflows/propose.js.map +1 -1
  71. package/dist/core/templates/workflows/sync.d.ts +1 -2
  72. package/dist/core/templates/workflows/sync.d.ts.map +1 -1
  73. package/dist/core/templates/workflows/sync.js +0 -13
  74. package/dist/core/templates/workflows/sync.js.map +1 -1
  75. package/dist/core/templates/workflows/update.d.ts +1 -2
  76. package/dist/core/templates/workflows/update.d.ts.map +1 -1
  77. package/dist/core/templates/workflows/update.js +4 -17
  78. package/dist/core/templates/workflows/update.js.map +1 -1
  79. package/dist/core/update.d.ts.map +1 -1
  80. package/dist/core/update.js +4 -6
  81. package/dist/core/update.js.map +1 -1
  82. package/package.json +2 -1
  83. package/schemas/decision/schema.yaml +1 -1
  84. package/schemas/issue/schema.yaml +4 -4
  85. package/schemas/sdd/schema.yaml +4 -3
  86. package/dist/core/command-generation/adapters/claude.d.ts +0 -7
  87. package/dist/core/command-generation/adapters/claude.d.ts.map +0 -1
  88. package/dist/core/command-generation/adapters/claude.js +0 -28
  89. package/dist/core/command-generation/adapters/claude.js.map +0 -1
  90. package/dist/core/command-generation/adapters/index.d.ts +0 -7
  91. package/dist/core/command-generation/adapters/index.d.ts.map +0 -1
  92. package/dist/core/command-generation/adapters/index.js +0 -8
  93. package/dist/core/command-generation/adapters/index.js.map +0 -1
  94. package/dist/core/command-generation/generator.d.ts +0 -4
  95. package/dist/core/command-generation/generator.d.ts.map +0 -1
  96. package/dist/core/command-generation/generator.js +0 -10
  97. package/dist/core/command-generation/generator.js.map +0 -1
  98. package/dist/core/command-generation/index.d.ts +0 -8
  99. package/dist/core/command-generation/index.d.ts.map +0 -1
  100. package/dist/core/command-generation/index.js +0 -3
  101. package/dist/core/command-generation/index.js.map +0 -1
  102. package/dist/core/command-generation/types.d.ts +0 -30
  103. package/dist/core/command-generation/types.d.ts.map +0 -1
  104. package/dist/core/command-generation/types.js +0 -2
  105. package/dist/core/command-generation/types.js.map +0 -1
  106. package/dist/core/command-generation/yaml.d.ts.map +0 -1
  107. package/dist/core/command-generation/yaml.js.map +0 -1
@@ -1,7 +0,0 @@
1
- import type { ToolCommandAdapter } from '../types.js';
2
- import { claudeAdapter } from './claude.js';
3
- export { claudeAdapter };
4
- /** Adding a tool means adding it here; callers resolve by `toolId`. */
5
- export declare const COMMAND_ADAPTERS: readonly ToolCommandAdapter[];
6
- export declare function findCommandAdapter(toolId: string): ToolCommandAdapter | undefined;
7
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/core/command-generation/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,EAAE,SAAS,kBAAkB,EAAoB,CAAC;AAE/E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAEjF"}
@@ -1,8 +0,0 @@
1
- import { claudeAdapter } from './claude.js';
2
- export { claudeAdapter };
3
- /** Adding a tool means adding it here; callers resolve by `toolId`. */
4
- export const COMMAND_ADAPTERS = [claudeAdapter];
5
- export function findCommandAdapter(toolId) {
6
- return COMMAND_ADAPTERS.find((adapter) => adapter.toolId === toolId);
7
- }
8
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/core/command-generation/adapters/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,CAAC;AAEzB,uEAAuE;AACvE,MAAM,CAAC,MAAM,gBAAgB,GAAkC,CAAC,aAAa,CAAC,CAAC;AAE/E,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;AACvE,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { CommandContent, ToolCommandAdapter, GeneratedCommand } from './types.js';
2
- export declare function generateCommand(content: CommandContent, adapter: ToolCommandAdapter): GeneratedCommand;
3
- export declare function generateCommands(contents: CommandContent[], adapter: ToolCommandAdapter): GeneratedCommand[];
4
- //# sourceMappingURL=generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../../../src/core/command-generation/generator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEvF,wBAAgB,eAAe,CAC7B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,CAKlB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,cAAc,EAAE,EAC1B,OAAO,EAAE,kBAAkB,GAC1B,gBAAgB,EAAE,CAEpB"}
@@ -1,10 +0,0 @@
1
- export function generateCommand(content, adapter) {
2
- return {
3
- path: adapter.getFilePath(content.id),
4
- fileContent: adapter.formatFile(content),
5
- };
6
- }
7
- export function generateCommands(contents, adapter) {
8
- return contents.map((content) => generateCommand(content, adapter));
9
- }
10
- //# sourceMappingURL=generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../src/core/command-generation/generator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAC7B,OAAuB,EACvB,OAA2B;IAE3B,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;QACrC,WAAW,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,QAA0B,EAC1B,OAA2B;IAE3B,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;AACtE,CAAC"}
@@ -1,8 +0,0 @@
1
- /**
2
- * Command generation through a tool adapter. Claude Code is the only shipped
3
- * one; add a tool by writing an adapter and registering it in COMMAND_ADAPTERS.
4
- */
5
- export type { CommandContent, ToolCommandAdapter, GeneratedCommand, } from './types.js';
6
- export { generateCommand, generateCommands } from './generator.js';
7
- export { claudeAdapter, COMMAND_ADAPTERS, findCommandAdapter } from './adapters/index.js';
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/command-generation/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,YAAY,EACV,cAAc,EACd,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,3 +0,0 @@
1
- export { generateCommand, generateCommands } from './generator.js';
2
- export { claudeAdapter, COMMAND_ADAPTERS, findCommandAdapter } from './adapters/index.js';
3
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/command-generation/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1,30 +0,0 @@
1
- /** A command's content, before any tool-specific formatting. */
2
- export interface CommandContent {
3
- /** e.g. 'explore', 'apply', 'new'. */
4
- id: string;
5
- name: string;
6
- description: string;
7
- /** Grouping category, e.g. 'Workflow'. */
8
- category: string;
9
- tags: string[];
10
- /** The command instruction text. */
11
- body: string;
12
- }
13
- /** Per-tool formatting strategy: where the file goes and how it is framed. */
14
- export interface ToolCommandAdapter {
15
- /** Matches AIToolOption.value, e.g. 'claude'. */
16
- toolId: string;
17
- /**
18
- * Path from the project root, e.g. '.claude/commands/tosx/explore.md'. May be
19
- * absolute for a tool with global-scoped prompts.
20
- */
21
- getFilePath(commandId: string): string;
22
- /** The complete file, frontmatter included. */
23
- formatFile(content: CommandContent): string;
24
- }
25
- export interface GeneratedCommand {
26
- /** From the project root, or absolute for global-scoped tools. */
27
- path: string;
28
- fileContent: string;
29
- }
30
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/command-generation/types.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,MAAM,WAAW,cAAc;IAC7B,sCAAsC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,0CAA0C;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;CACd;AAED,8EAA8E;AAC9E,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;IACvC,+CAA+C;IAC/C,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/command-generation/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../../src/core/command-generation/yaml.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAarD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../../src/core/command-generation/yaml.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,YAAY,GAAG,kCAAkC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,YAAY,EAAE,CAAC;QACjB,qEAAqE;QACrE,gDAAgD;QAChD,MAAM,OAAO,GAAG,KAAK;aAClB,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC;aACpB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;aACrB,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzB,OAAO,IAAI,OAAO,GAAG,CAAC;IACxB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}