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.
- package/README.md +32 -57
- package/dist/core/configurators/skills/base.d.ts +27 -0
- package/dist/core/configurators/{slash → skills}/base.js +19 -81
- package/dist/core/configurators/skills/registry.d.ts +9 -0
- package/dist/core/configurators/skills/registry.js +24 -0
- package/dist/core/init.d.ts +1 -1
- package/dist/core/init.js +16 -16
- package/dist/core/templates/agent-skill-templates.d.ts +6 -0
- package/dist/core/templates/{slash-command-templates.js → agent-skill-templates.js} +7 -7
- package/dist/core/templates/agents-root-stub.d.ts +1 -1
- package/dist/core/templates/agents-root-stub.js +2 -9
- package/dist/core/templates/agents-template.d.ts +1 -1
- package/dist/core/templates/agents-template.js +1 -1
- package/dist/core/templates/archive-template.js +1 -1
- package/dist/core/templates/index.d.ts +4 -4
- package/dist/core/templates/index.js +5 -5
- package/dist/core/update.js +11 -11
- package/package.json +2 -1
- package/dist/core/configurators/slash/amazon-q.d.ts +0 -9
- package/dist/core/configurators/slash/amazon-q.js +0 -50
- package/dist/core/configurators/slash/antigravity.d.ts +0 -9
- package/dist/core/configurators/slash/antigravity.js +0 -25
- package/dist/core/configurators/slash/auggie.d.ts +0 -9
- package/dist/core/configurators/slash/auggie.js +0 -38
- package/dist/core/configurators/slash/base.d.ts +0 -30
- package/dist/core/configurators/slash/claude.d.ts +0 -9
- package/dist/core/configurators/slash/claude.js +0 -44
- package/dist/core/configurators/slash/cline.d.ts +0 -9
- package/dist/core/configurators/slash/cline.js +0 -25
- package/dist/core/configurators/slash/codebuddy.d.ts +0 -9
- package/dist/core/configurators/slash/codebuddy.js +0 -41
- package/dist/core/configurators/slash/codex.d.ts +0 -6
- package/dist/core/configurators/slash/codex.js +0 -6
- package/dist/core/configurators/slash/continue.d.ts +0 -9
- package/dist/core/configurators/slash/continue.js +0 -53
- package/dist/core/configurators/slash/costrict.d.ts +0 -9
- package/dist/core/configurators/slash/costrict.js +0 -35
- package/dist/core/configurators/slash/crush.d.ts +0 -9
- package/dist/core/configurators/slash/crush.js +0 -44
- package/dist/core/configurators/slash/cursor.d.ts +0 -9
- package/dist/core/configurators/slash/cursor.js +0 -44
- package/dist/core/configurators/slash/factory.d.ts +0 -10
- package/dist/core/configurators/slash/factory.js +0 -42
- package/dist/core/configurators/slash/gemini.d.ts +0 -9
- package/dist/core/configurators/slash/gemini.js +0 -24
- package/dist/core/configurators/slash/github-copilot.d.ts +0 -9
- package/dist/core/configurators/slash/github-copilot.js +0 -38
- package/dist/core/configurators/slash/iflow.d.ts +0 -9
- package/dist/core/configurators/slash/iflow.js +0 -44
- package/dist/core/configurators/slash/kilocode.d.ts +0 -9
- package/dist/core/configurators/slash/kilocode.js +0 -18
- package/dist/core/configurators/slash/mistral-vibe.d.ts +0 -6
- package/dist/core/configurators/slash/mistral-vibe.js +0 -6
- package/dist/core/configurators/slash/opencode.d.ts +0 -12
- package/dist/core/configurators/slash/opencode.js +0 -76
- package/dist/core/configurators/slash/qoder.d.ts +0 -35
- package/dist/core/configurators/slash/qoder.js +0 -83
- package/dist/core/configurators/slash/qwen.d.ts +0 -32
- package/dist/core/configurators/slash/qwen.js +0 -51
- package/dist/core/configurators/slash/registry.d.ts +0 -9
- package/dist/core/configurators/slash/registry.js +0 -86
- package/dist/core/configurators/slash/roocode.d.ts +0 -9
- package/dist/core/configurators/slash/roocode.js +0 -25
- package/dist/core/configurators/slash/toml-base.d.ts +0 -4
- package/dist/core/configurators/slash/toml-base.js +0 -4
- package/dist/core/configurators/slash/windsurf.d.ts +0 -9
- package/dist/core/configurators/slash/windsurf.js +0 -25
- 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 {
|
|
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
|
|
14
|
-
static
|
|
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 {
|
|
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 {
|
|
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
|
|
29
|
-
return
|
|
28
|
+
static getAgentSkillBody(id) {
|
|
29
|
+
return getAgentSkillBody(id);
|
|
30
30
|
}
|
|
31
|
-
static
|
|
32
|
-
return
|
|
31
|
+
static getAgentSkillFrontmatter(id) {
|
|
32
|
+
return getAgentSkillFrontmatter(id);
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
//# sourceMappingURL=index.js.map
|
package/dist/core/update.js
CHANGED
|
@@ -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 {
|
|
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
|
|
21
|
+
const skillConfigurators = AgentSkillRegistry.getAll();
|
|
22
22
|
const updatedFiles = [];
|
|
23
23
|
const createdFiles = [];
|
|
24
24
|
const failedFiles = [];
|
|
25
|
-
const
|
|
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
|
|
50
|
-
if (!
|
|
49
|
+
for (const skillConfigurator of skillConfigurators) {
|
|
50
|
+
if (!skillConfigurator.isAvailable) {
|
|
51
51
|
continue;
|
|
52
52
|
}
|
|
53
53
|
try {
|
|
54
|
-
const updated = await
|
|
55
|
-
|
|
54
|
+
const updated = await skillConfigurator.updateExisting(resolvedProjectPath, lightspecPath);
|
|
55
|
+
updatedSkillFiles.push(...updated);
|
|
56
56
|
}
|
|
57
57
|
catch (error) {
|
|
58
|
-
failedSkillTools.push(
|
|
59
|
-
console.error(`Failed to update skills for ${
|
|
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 (
|
|
72
|
+
if (updatedSkillFiles.length > 0) {
|
|
73
73
|
// Normalize to forward slashes for cross-platform log consistency
|
|
74
|
-
const normalized =
|
|
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.
|
|
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,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
|