lightspec 0.2.1 → 0.3.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 (68) hide show
  1. package/README.md +32 -57
  2. package/dist/core/configurators/skills/base.d.ts +27 -0
  3. package/dist/core/configurators/{slash → skills}/base.js +19 -81
  4. package/dist/core/configurators/skills/registry.d.ts +9 -0
  5. package/dist/core/configurators/skills/registry.js +24 -0
  6. package/dist/core/init.d.ts +1 -1
  7. package/dist/core/init.js +16 -16
  8. package/dist/core/templates/agent-skill-templates.d.ts +6 -0
  9. package/dist/core/templates/{slash-command-templates.js → agent-skill-templates.js} +7 -7
  10. package/dist/core/templates/agents-root-stub.d.ts +1 -1
  11. package/dist/core/templates/agents-root-stub.js +2 -9
  12. package/dist/core/templates/agents-template.d.ts +1 -1
  13. package/dist/core/templates/agents-template.js +1 -1
  14. package/dist/core/templates/archive-template.js +1 -1
  15. package/dist/core/templates/index.d.ts +4 -4
  16. package/dist/core/templates/index.js +5 -5
  17. package/dist/core/update.js +11 -11
  18. package/package.json +2 -1
  19. package/dist/core/configurators/slash/amazon-q.d.ts +0 -9
  20. package/dist/core/configurators/slash/amazon-q.js +0 -50
  21. package/dist/core/configurators/slash/antigravity.d.ts +0 -9
  22. package/dist/core/configurators/slash/antigravity.js +0 -25
  23. package/dist/core/configurators/slash/auggie.d.ts +0 -9
  24. package/dist/core/configurators/slash/auggie.js +0 -38
  25. package/dist/core/configurators/slash/base.d.ts +0 -30
  26. package/dist/core/configurators/slash/claude.d.ts +0 -9
  27. package/dist/core/configurators/slash/claude.js +0 -44
  28. package/dist/core/configurators/slash/cline.d.ts +0 -9
  29. package/dist/core/configurators/slash/cline.js +0 -25
  30. package/dist/core/configurators/slash/codebuddy.d.ts +0 -9
  31. package/dist/core/configurators/slash/codebuddy.js +0 -41
  32. package/dist/core/configurators/slash/codex.d.ts +0 -6
  33. package/dist/core/configurators/slash/codex.js +0 -6
  34. package/dist/core/configurators/slash/continue.d.ts +0 -9
  35. package/dist/core/configurators/slash/continue.js +0 -53
  36. package/dist/core/configurators/slash/costrict.d.ts +0 -9
  37. package/dist/core/configurators/slash/costrict.js +0 -35
  38. package/dist/core/configurators/slash/crush.d.ts +0 -9
  39. package/dist/core/configurators/slash/crush.js +0 -44
  40. package/dist/core/configurators/slash/cursor.d.ts +0 -9
  41. package/dist/core/configurators/slash/cursor.js +0 -44
  42. package/dist/core/configurators/slash/factory.d.ts +0 -10
  43. package/dist/core/configurators/slash/factory.js +0 -42
  44. package/dist/core/configurators/slash/gemini.d.ts +0 -9
  45. package/dist/core/configurators/slash/gemini.js +0 -24
  46. package/dist/core/configurators/slash/github-copilot.d.ts +0 -9
  47. package/dist/core/configurators/slash/github-copilot.js +0 -38
  48. package/dist/core/configurators/slash/iflow.d.ts +0 -9
  49. package/dist/core/configurators/slash/iflow.js +0 -44
  50. package/dist/core/configurators/slash/kilocode.d.ts +0 -9
  51. package/dist/core/configurators/slash/kilocode.js +0 -18
  52. package/dist/core/configurators/slash/mistral-vibe.d.ts +0 -6
  53. package/dist/core/configurators/slash/mistral-vibe.js +0 -6
  54. package/dist/core/configurators/slash/opencode.d.ts +0 -12
  55. package/dist/core/configurators/slash/opencode.js +0 -76
  56. package/dist/core/configurators/slash/qoder.d.ts +0 -35
  57. package/dist/core/configurators/slash/qoder.js +0 -83
  58. package/dist/core/configurators/slash/qwen.d.ts +0 -32
  59. package/dist/core/configurators/slash/qwen.js +0 -51
  60. package/dist/core/configurators/slash/registry.d.ts +0 -9
  61. package/dist/core/configurators/slash/registry.js +0 -86
  62. package/dist/core/configurators/slash/roocode.d.ts +0 -9
  63. package/dist/core/configurators/slash/roocode.js +0 -25
  64. package/dist/core/configurators/slash/toml-base.d.ts +0 -4
  65. package/dist/core/configurators/slash/toml-base.js +0 -4
  66. package/dist/core/configurators/slash/windsurf.d.ts +0 -9
  67. package/dist/core/configurators/slash/windsurf.js +0 -25
  68. package/dist/core/templates/slash-command-templates.d.ts +0 -6
@@ -1,5 +1,5 @@
1
1
  import { ProjectContext } from './project-template.js';
2
- import { SlashCommandId } from './slash-command-templates.js';
2
+ import { AgentSkillId } from './agent-skill-templates.js';
3
3
  export interface Template {
4
4
  path: string;
5
5
  content: string | ((context: ProjectContext) => string);
@@ -10,9 +10,9 @@ export declare class TemplateManager {
10
10
  static getClineTemplate(): string;
11
11
  static getCostrictTemplate(): string;
12
12
  static getAgentsStandardTemplate(): string;
13
- static getSlashCommandBody(id: SlashCommandId): string;
14
- static getSlashCommandFrontmatter(id: SlashCommandId): string;
13
+ static getAgentSkillBody(id: AgentSkillId): string;
14
+ static getAgentSkillFrontmatter(id: AgentSkillId): string;
15
15
  }
16
16
  export { ProjectContext } from './project-template.js';
17
- export type { SlashCommandId } from './slash-command-templates.js';
17
+ export type { AgentSkillId } from './agent-skill-templates.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -3,7 +3,7 @@ import { claudeTemplate } from './claude-template.js';
3
3
  import { clineTemplate } from './cline-template.js';
4
4
  import { costrictTemplate } from './costrict-template.js';
5
5
  import { agentsRootStubTemplate } from './agents-root-stub.js';
6
- import { getSlashCommandBody, getSlashCommandFrontmatter, } from './slash-command-templates.js';
6
+ import { getAgentSkillBody, getAgentSkillFrontmatter, } from './agent-skill-templates.js';
7
7
  export class TemplateManager {
8
8
  static getTemplates(context = {}) {
9
9
  return [
@@ -25,11 +25,11 @@ export class TemplateManager {
25
25
  static getAgentsStandardTemplate() {
26
26
  return agentsRootStubTemplate;
27
27
  }
28
- static getSlashCommandBody(id) {
29
- return getSlashCommandBody(id);
28
+ static getAgentSkillBody(id) {
29
+ return getAgentSkillBody(id);
30
30
  }
31
- static getSlashCommandFrontmatter(id) {
32
- return getSlashCommandFrontmatter(id);
31
+ static getAgentSkillFrontmatter(id) {
32
+ return getAgentSkillFrontmatter(id);
33
33
  }
34
34
  }
35
35
  //# sourceMappingURL=index.js.map
@@ -2,7 +2,7 @@ import path from 'path';
2
2
  import { FileSystemUtils } from '../utils/file-system.js';
3
3
  import { LIGHTSPEC_DIR_NAME } from './config.js';
4
4
  import { ToolRegistry } from './configurators/registry.js';
5
- import { SlashCommandRegistry } from './configurators/slash/registry.js';
5
+ import { AgentSkillRegistry } from './configurators/skills/registry.js';
6
6
  import { agentsTemplate } from './templates/agents-template.js';
7
7
  export class UpdateCommand {
8
8
  async execute(projectPath) {
@@ -18,11 +18,11 @@ export class UpdateCommand {
18
18
  await FileSystemUtils.writeFile(agentsPath, agentsTemplate);
19
19
  // 3. Update existing AI tool configuration files only
20
20
  const configurators = ToolRegistry.getAll();
21
- const slashConfigurators = SlashCommandRegistry.getAll();
21
+ const skillConfigurators = AgentSkillRegistry.getAll();
22
22
  const updatedFiles = [];
23
23
  const createdFiles = [];
24
24
  const failedFiles = [];
25
- const updatedSlashFiles = [];
25
+ const updatedSkillFiles = [];
26
26
  const failedSkillTools = [];
27
27
  for (const configurator of configurators) {
28
28
  const configFilePath = path.join(resolvedProjectPath, configurator.configFileName);
@@ -46,17 +46,17 @@ export class UpdateCommand {
46
46
  console.error(`Failed to update ${configurator.configFileName}: ${error instanceof Error ? error.message : String(error)}`);
47
47
  }
48
48
  }
49
- for (const slashConfigurator of slashConfigurators) {
50
- if (!slashConfigurator.isAvailable) {
49
+ for (const skillConfigurator of skillConfigurators) {
50
+ if (!skillConfigurator.isAvailable) {
51
51
  continue;
52
52
  }
53
53
  try {
54
- const updated = await slashConfigurator.updateExisting(resolvedProjectPath, lightspecPath);
55
- updatedSlashFiles.push(...updated);
54
+ const updated = await skillConfigurator.updateExisting(resolvedProjectPath, lightspecPath);
55
+ updatedSkillFiles.push(...updated);
56
56
  }
57
57
  catch (error) {
58
- failedSkillTools.push(slashConfigurator.toolId);
59
- console.error(`Failed to update skills for ${slashConfigurator.toolId}: ${error instanceof Error ? error.message : String(error)}`);
58
+ failedSkillTools.push(skillConfigurator.toolId);
59
+ console.error(`Failed to update skills for ${skillConfigurator.toolId}: ${error instanceof Error ? error.message : String(error)}`);
60
60
  }
61
61
  }
62
62
  const summaryParts = [];
@@ -69,9 +69,9 @@ export class UpdateCommand {
69
69
  if (aiToolFiles.length > 0) {
70
70
  summaryParts.push(`Updated AI tool files: ${aiToolFiles.join(', ')}`);
71
71
  }
72
- if (updatedSlashFiles.length > 0) {
72
+ if (updatedSkillFiles.length > 0) {
73
73
  // Normalize to forward slashes for cross-platform log consistency
74
- const normalized = updatedSlashFiles.map((p) => FileSystemUtils.toPosixPath(p));
74
+ const normalized = updatedSkillFiles.map((p) => FileSystemUtils.toPosixPath(p));
75
75
  summaryParts.push(`Updated skills: ${normalized.join(', ')}`);
76
76
  }
77
77
  const failedItems = [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lightspec",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
4
  "description": "AI-native system for spec-driven development",
5
5
  "keywords": [
6
6
  "lightspec",
@@ -74,6 +74,7 @@
74
74
  "check:pack-version": "node scripts/pack-version-check.mjs",
75
75
  "release": "pnpm run release:ci",
76
76
  "release:ci": "pnpm run check:pack-version && pnpm exec changeset publish",
77
+ "release:manual": "bash scripts/release-manual.sh",
77
78
  "changeset": "changeset"
78
79
  }
79
80
  }
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class AmazonQSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "amazon-q";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=amazon-q.d.ts.map
@@ -1,50 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.amazonq/prompts/lightspec-proposal.md',
4
- apply: '.amazonq/prompts/lightspec-apply.md',
5
- archive: '.amazonq/prompts/lightspec-archive.md',
6
- 'context-check': '.aws/amazonq/commands/lightspec-context-check.md'
7
- };
8
- const FRONTMATTER = {
9
- proposal: `---
10
- description: Scaffold a new LightSpec change and validate strictly.
11
- ---
12
-
13
- The user has requested the following change proposal. Use the lightspec instructions to create their change proposal.
14
-
15
- <UserRequest>
16
- $ARGUMENTS
17
- </UserRequest>`,
18
- apply: `---
19
- description: Implement an approved LightSpec change and keep tasks in sync.
20
- ---
21
-
22
- The user wants to apply the following change. Use the lightspec instructions to implement the approved change.
23
-
24
- <ChangeId>
25
- $ARGUMENTS
26
- </ChangeId>`,
27
- archive: `---
28
- description: Archive a deployed LightSpec change and update specs.
29
- ---
30
-
31
- The user wants to archive the following deployed change. Use the lightspec instructions to archive the change and update specs.
32
-
33
- <ChangeId>
34
- $ARGUMENTS
35
- </ChangeId>`,
36
- 'context-check': `---
37
- description: Validate project context in agent instruction files and help populate missing information.
38
- ---`
39
- };
40
- export class AmazonQSlashCommandConfigurator extends SlashCommandConfigurator {
41
- toolId = 'amazon-q';
42
- isAvailable = true;
43
- getRelativePath(id) {
44
- return FILE_PATHS[id];
45
- }
46
- getFrontmatter(id) {
47
- return FRONTMATTER[id];
48
- }
49
- }
50
- //# sourceMappingURL=amazon-q.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class AntigravitySlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "antigravity";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string | undefined;
8
- }
9
- //# sourceMappingURL=antigravity.d.ts.map
@@ -1,25 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.agent/workflows/lightspec-proposal.md',
4
- apply: '.agent/workflows/lightspec-apply.md',
5
- archive: '.agent/workflows/lightspec-archive.md',
6
- 'context-check': '.antigravity/commands/lightspec-context-check.md'
7
- };
8
- const DESCRIPTIONS = {
9
- proposal: 'Scaffold a new LightSpec change and validate strictly.',
10
- apply: 'Implement an approved LightSpec change and keep tasks in sync.',
11
- archive: 'Archive a deployed LightSpec change and update specs.',
12
- 'context-check': 'Validate project context in agent instruction files and help populate missing information.'
13
- };
14
- export class AntigravitySlashCommandConfigurator extends SlashCommandConfigurator {
15
- toolId = 'antigravity';
16
- isAvailable = true;
17
- getRelativePath(id) {
18
- return FILE_PATHS[id];
19
- }
20
- getFrontmatter(id) {
21
- const description = DESCRIPTIONS[id];
22
- return `---\ndescription: ${description}\n---`;
23
- }
24
- }
25
- //# sourceMappingURL=antigravity.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class AuggieSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "auggie";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=auggie.d.ts.map
@@ -1,38 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.augment/commands/lightspec-proposal.md',
4
- apply: '.augment/commands/lightspec-apply.md',
5
- archive: '.augment/commands/lightspec-archive.md',
6
- 'context-check': '.auggie/commands/lightspec-context-check.md'
7
- };
8
- const FRONTMATTER = {
9
- proposal: `---
10
- description: Scaffold a new LightSpec change and validate strictly.
11
- argument-hint: feature description or request
12
- ---`,
13
- apply: `---
14
- description: Implement an approved LightSpec change and keep tasks in sync.
15
- argument-hint: change-id
16
- ---`,
17
- archive: `---
18
- description: Archive a deployed LightSpec change and update specs.
19
- argument-hint: change-id
20
- ---`,
21
- 'context-check': `---
22
- name: LightSpec: Context Check
23
- description: Validate project context in agent instruction files and help populate missing information.
24
- category: LightSpec
25
- tags: [lightspec, context, validation]
26
- ---`
27
- };
28
- export class AuggieSlashCommandConfigurator extends SlashCommandConfigurator {
29
- toolId = 'auggie';
30
- isAvailable = true;
31
- getRelativePath(id) {
32
- return FILE_PATHS[id];
33
- }
34
- getFrontmatter(id) {
35
- return FRONTMATTER[id];
36
- }
37
- }
38
- //# sourceMappingURL=auggie.js.map
@@ -1,30 +0,0 @@
1
- import { SlashCommandId } from '../../templates/index.js';
2
- export interface SlashCommandTarget {
3
- id: SlashCommandId;
4
- path: string;
5
- kind: 'skill';
6
- }
7
- export type SkillInstallLocation = 'project' | 'home';
8
- export declare abstract class SlashCommandConfigurator {
9
- abstract readonly toolId: string;
10
- abstract readonly isAvailable: boolean;
11
- private installLocation;
12
- setInstallLocation(location: SkillInstallLocation): void;
13
- getTargets(): SlashCommandTarget[];
14
- generateAll(projectPath: string, _lightspecDir: string): Promise<string[]>;
15
- updateExisting(projectPath: string, _lightspecDir: string): Promise<string[]>;
16
- protected getBody(id: SlashCommandId): string;
17
- resolveAbsolutePath(projectPath: string, id: SlashCommandId): string;
18
- private getRelativeSkillPath;
19
- private getToolRoot;
20
- private getHomeRootPath;
21
- private getSkillName;
22
- private buildSkillFile;
23
- protected updateBody(filePath: string, body: string): Promise<void>;
24
- private cleanupLegacyArtifacts;
25
- private relativeToToolRoot;
26
- private removeLegacyLightSpecFiles;
27
- private walkAndRemove;
28
- private isLegacyLightSpecFile;
29
- }
30
- //# sourceMappingURL=base.d.ts.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class ClaudeSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "claude";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=claude.d.ts.map
@@ -1,44 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.claude/commands/lightspec/proposal.md',
4
- apply: '.claude/commands/lightspec/apply.md',
5
- archive: '.claude/commands/lightspec/archive.md',
6
- 'context-check': '.claude/commands/lightspec/context-check.md'
7
- };
8
- const FRONTMATTER = {
9
- proposal: `---
10
- name: LightSpec: Proposal
11
- description: Scaffold a new LightSpec change and validate strictly.
12
- category: LightSpec
13
- tags: [lightspec, change]
14
- ---`,
15
- apply: `---
16
- name: LightSpec: Apply
17
- description: Implement an approved LightSpec change and keep tasks in sync.
18
- category: LightSpec
19
- tags: [lightspec, apply]
20
- ---`,
21
- archive: `---
22
- name: LightSpec: Archive
23
- description: Archive a deployed LightSpec change and update specs.
24
- category: LightSpec
25
- tags: [lightspec, archive]
26
- ---`,
27
- 'context-check': `---
28
- name: LightSpec: Context Check
29
- description: Validate project context in agent instruction files and help populate missing information.
30
- category: LightSpec
31
- tags: [lightspec, context, validation]
32
- ---`
33
- };
34
- export class ClaudeSlashCommandConfigurator extends SlashCommandConfigurator {
35
- toolId = 'claude';
36
- isAvailable = true;
37
- getRelativePath(id) {
38
- return FILE_PATHS[id];
39
- }
40
- getFrontmatter(id) {
41
- return FRONTMATTER[id];
42
- }
43
- }
44
- //# sourceMappingURL=claude.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class ClineSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "cline";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string | undefined;
8
- }
9
- //# sourceMappingURL=cline.d.ts.map
@@ -1,25 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.clinerules/workflows/lightspec-proposal.md',
4
- apply: '.clinerules/workflows/lightspec-apply.md',
5
- archive: '.clinerules/workflows/lightspec-archive.md',
6
- 'context-check': '.cline/commands/lightspec-context-check.md'
7
- };
8
- export class ClineSlashCommandConfigurator extends SlashCommandConfigurator {
9
- toolId = 'cline';
10
- isAvailable = true;
11
- getRelativePath(id) {
12
- return FILE_PATHS[id];
13
- }
14
- getFrontmatter(id) {
15
- const descriptions = {
16
- proposal: 'Scaffold a new LightSpec change and validate strictly.',
17
- apply: 'Implement an approved LightSpec change and keep tasks in sync.',
18
- archive: 'Archive a deployed LightSpec change and update specs.',
19
- 'context-check': 'Validate project context in agent instruction files and help populate missing information.'
20
- };
21
- const description = descriptions[id];
22
- return `# LightSpec: ${id.charAt(0).toUpperCase() + id.slice(1)}\n\n${description}`;
23
- }
24
- }
25
- //# sourceMappingURL=cline.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class CodeBuddySlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "codebuddy";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=codebuddy.d.ts.map
@@ -1,41 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.codebuddy/commands/lightspec/proposal.md',
4
- apply: '.codebuddy/commands/lightspec/apply.md',
5
- archive: '.codebuddy/commands/lightspec/archive.md',
6
- 'context-check': '.codebuddy/commands/lightspec-context-check.md'
7
- };
8
- const FRONTMATTER = {
9
- proposal: `---
10
- name: LightSpec: Proposal
11
- description: "Scaffold a new LightSpec change and validate strictly."
12
- argument-hint: "[feature description or request]"
13
- ---`,
14
- apply: `---
15
- name: LightSpec: Apply
16
- description: "Implement an approved LightSpec change and keep tasks in sync."
17
- argument-hint: "[change-id]"
18
- ---`,
19
- archive: `---
20
- name: LightSpec: Archive
21
- description: "Archive a deployed LightSpec change and update specs."
22
- argument-hint: "[change-id]"
23
- ---`,
24
- 'context-check': `---
25
- name: LightSpec: Context Check
26
- description: Validate project context in agent instruction files and help populate missing information.
27
- category: LightSpec
28
- tags: [lightspec, context, validation]
29
- ---`
30
- };
31
- export class CodeBuddySlashCommandConfigurator extends SlashCommandConfigurator {
32
- toolId = 'codebuddy';
33
- isAvailable = true;
34
- getRelativePath(id) {
35
- return FILE_PATHS[id];
36
- }
37
- getFrontmatter(id) {
38
- return FRONTMATTER[id];
39
- }
40
- }
41
- //# sourceMappingURL=codebuddy.js.map
@@ -1,6 +0,0 @@
1
- import { SlashCommandConfigurator } from "./base.js";
2
- export declare class CodexSlashCommandConfigurator extends SlashCommandConfigurator {
3
- readonly toolId = "codex";
4
- readonly isAvailable = true;
5
- }
6
- //# sourceMappingURL=codex.d.ts.map
@@ -1,6 +0,0 @@
1
- import { SlashCommandConfigurator } from "./base.js";
2
- export class CodexSlashCommandConfigurator extends SlashCommandConfigurator {
3
- toolId = "codex";
4
- isAvailable = true;
5
- }
6
- //# sourceMappingURL=codex.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class ContinueSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "continue";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=continue.d.ts.map
@@ -1,53 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.continue/prompts/lightspec-proposal.prompt',
4
- apply: '.continue/prompts/lightspec-apply.prompt',
5
- archive: '.continue/prompts/lightspec-archive.prompt',
6
- 'context-check': '.continue/commands/lightspec-context-check.md'
7
- };
8
- /*
9
- * Continue .prompt format requires YAML frontmatter:
10
- * ---
11
- * name: commandName
12
- * description: description
13
- * invokable: true
14
- * ---
15
- * Body...
16
- *
17
- * The 'invokable: true' field is required to make the prompt available as a slash command.
18
- * We use 'lightspec-proposal' as the name so the command becomes /lightspec-proposal.
19
- */
20
- const FRONTMATTER = {
21
- proposal: `---
22
- name: lightspec-proposal
23
- description: Scaffold a new LightSpec change and validate strictly.
24
- invokable: true
25
- ---`,
26
- apply: `---
27
- name: lightspec-apply
28
- description: Implement an approved LightSpec change and keep tasks in sync.
29
- invokable: true
30
- ---`,
31
- archive: `---
32
- name: lightspec-archive
33
- description: Archive a deployed LightSpec change and update specs.
34
- invokable: true
35
- ---`,
36
- 'context-check': `---
37
- name: LightSpec: Context Check
38
- description: Validate project context in agent instruction files and help populate missing information.
39
- category: LightSpec
40
- tags: [lightspec, context, validation]
41
- ---`
42
- };
43
- export class ContinueSlashCommandConfigurator extends SlashCommandConfigurator {
44
- toolId = 'continue';
45
- isAvailable = true;
46
- getRelativePath(id) {
47
- return FILE_PATHS[id];
48
- }
49
- getFrontmatter(id) {
50
- return FRONTMATTER[id];
51
- }
52
- }
53
- //# sourceMappingURL=continue.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class CostrictSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "costrict";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string | undefined;
8
- }
9
- //# sourceMappingURL=costrict.d.ts.map
@@ -1,35 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.cospec/lightspec/commands/lightspec-proposal.md',
4
- apply: '.cospec/lightspec/commands/lightspec-apply.md',
5
- archive: '.cospec/lightspec/commands/lightspec-archive.md',
6
- 'context-check': '.cospec/lightspec/commands/lightspec-context-check.md'
7
- };
8
- const FRONTMATTER = {
9
- proposal: `---
10
- description: "Scaffold a new LightSpec change and validate strictly."
11
- argument-hint: feature description or request
12
- ---`,
13
- apply: `---
14
- description: "Implement an approved LightSpec change and keep tasks in sync."
15
- argument-hint: change-id
16
- ---`,
17
- archive: `---
18
- description: "Archive a deployed LightSpec change and update specs."
19
- argument-hint: change-id
20
- ---`,
21
- 'context-check': `---
22
- description: "Validate project context in agent instruction files and help populate missing information."
23
- ---`
24
- };
25
- export class CostrictSlashCommandConfigurator extends SlashCommandConfigurator {
26
- toolId = 'costrict';
27
- isAvailable = true;
28
- getRelativePath(id) {
29
- return FILE_PATHS[id];
30
- }
31
- getFrontmatter(id) {
32
- return FRONTMATTER[id];
33
- }
34
- }
35
- //# sourceMappingURL=costrict.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class CrushSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "crush";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=crush.d.ts.map
@@ -1,44 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- const FILE_PATHS = {
3
- proposal: '.crush/commands/lightspec/proposal.md',
4
- apply: '.crush/commands/lightspec/apply.md',
5
- archive: '.crush/commands/lightspec/archive.md',
6
- 'context-check': '.crush/commands/lightspec-context-check.md'
7
- };
8
- const FRONTMATTER = {
9
- proposal: `---
10
- name: LightSpec: Proposal
11
- description: Scaffold a new LightSpec change and validate strictly.
12
- category: LightSpec
13
- tags: [lightspec, change]
14
- ---`,
15
- apply: `---
16
- name: LightSpec: Apply
17
- description: Implement an approved LightSpec change and keep tasks in sync.
18
- category: LightSpec
19
- tags: [lightspec, apply]
20
- ---`,
21
- archive: `---
22
- name: LightSpec: Archive
23
- description: Archive a deployed LightSpec change and update specs.
24
- category: LightSpec
25
- tags: [lightspec, archive]
26
- ---`,
27
- 'context-check': `---
28
- name: LightSpec: Context Check
29
- description: Validate project context in agent instruction files and help populate missing information.
30
- category: LightSpec
31
- tags: [lightspec, context, validation]
32
- ---`
33
- };
34
- export class CrushSlashCommandConfigurator extends SlashCommandConfigurator {
35
- toolId = 'crush';
36
- isAvailable = true;
37
- getRelativePath(id) {
38
- return FILE_PATHS[id];
39
- }
40
- getFrontmatter(id) {
41
- return FRONTMATTER[id];
42
- }
43
- }
44
- //# sourceMappingURL=crush.js.map
@@ -1,9 +0,0 @@
1
- import { SlashCommandConfigurator } from './base.js';
2
- import { SlashCommandId } from '../../templates/index.js';
3
- export declare class CursorSlashCommandConfigurator extends SlashCommandConfigurator {
4
- readonly toolId = "cursor";
5
- readonly isAvailable = true;
6
- protected getRelativePath(id: SlashCommandId): string;
7
- protected getFrontmatter(id: SlashCommandId): string;
8
- }
9
- //# sourceMappingURL=cursor.d.ts.map