@clawplays/ospec-cli 0.3.8 → 0.3.10
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/.ospec/templates/hooks/post-merge +9 -3
- package/.ospec/templates/hooks/pre-commit +9 -3
- package/README.md +9 -1
- package/SKILL.md +1 -1
- package/assets/git-hooks/post-merge +4 -2
- package/assets/git-hooks/pre-commit +4 -2
- package/dist/advanced/BatchOperations.d.ts +1 -2
- package/dist/advanced/BatchOperations.js +1 -2
- package/dist/advanced/CachingLayer.d.ts +1 -2
- package/dist/advanced/CachingLayer.js +1 -2
- package/dist/advanced/FeatureUpdater.d.ts +1 -2
- package/dist/advanced/FeatureUpdater.js +1 -2
- package/dist/advanced/PerformanceMonitor.d.ts +1 -2
- package/dist/advanced/PerformanceMonitor.js +1 -2
- package/dist/advanced/StatePersistence.d.ts +1 -2
- package/dist/advanced/StatePersistence.js +1 -2
- package/dist/advanced/index.d.ts +1 -2
- package/dist/advanced/index.js +1 -2
- package/dist/cli/commands/config.d.ts +1 -2
- package/dist/cli/commands/config.js +1 -2
- package/dist/cli/commands/feature.d.ts +1 -2
- package/dist/cli/commands/feature.js +1 -2
- package/dist/cli/commands/index.d.ts +1 -2
- package/dist/cli/commands/index.js +1 -2
- package/dist/cli/commands/project.d.ts +1 -2
- package/dist/cli/commands/project.js +1 -2
- package/dist/cli/commands/validate.d.ts +1 -2
- package/dist/cli/commands/validate.js +1 -2
- package/dist/cli/index.d.ts +1 -2
- package/dist/cli/index.js +1 -2
- package/dist/cli.d.ts +1 -2
- package/dist/cli.js +1 -2
- package/dist/commands/ArchiveCommand.d.ts +1 -2
- package/dist/commands/ArchiveCommand.js +0 -1
- package/dist/commands/BaseCommand.d.ts +1 -2
- package/dist/commands/BaseCommand.js +1 -2
- package/dist/commands/BatchCommand.d.ts +1 -2
- package/dist/commands/BatchCommand.js +1 -2
- package/dist/commands/ChangesCommand.js +0 -1
- package/dist/commands/DocsCommand.d.ts +1 -2
- package/dist/commands/DocsCommand.js +0 -1
- package/dist/commands/IndexCommand.d.ts +1 -2
- package/dist/commands/IndexCommand.js +1 -2
- package/dist/commands/InitCommand.d.ts +1 -2
- package/dist/commands/InitCommand.js +0 -1
- package/dist/commands/NewCommand.d.ts +0 -1
- package/dist/commands/NewCommand.js +0 -1
- package/dist/commands/PluginsCommand.d.ts +0 -1
- package/dist/commands/PluginsCommand.js +0 -1
- package/dist/commands/ProgressCommand.d.ts +1 -2
- package/dist/commands/ProgressCommand.js +1 -2
- package/dist/commands/QueueCommand.d.ts +0 -1
- package/dist/commands/QueueCommand.js +0 -1
- package/dist/commands/RunCommand.d.ts +0 -1
- package/dist/commands/RunCommand.js +0 -1
- package/dist/commands/SkillCommand.d.ts +0 -1
- package/dist/commands/SkillCommand.js +1 -2
- package/dist/commands/SkillsCommand.d.ts +1 -2
- package/dist/commands/SkillsCommand.js +1 -2
- package/dist/commands/StatusCommand.d.ts +1 -2
- package/dist/commands/StatusCommand.js +0 -1
- package/dist/commands/UpdateCommand.d.ts +0 -1
- package/dist/commands/UpdateCommand.js +37 -2
- package/dist/commands/VerifyCommand.d.ts +1 -2
- package/dist/commands/VerifyCommand.js +0 -1
- package/dist/commands/WorkflowCommand.d.ts +0 -1
- package/dist/commands/WorkflowCommand.js +0 -1
- package/dist/commands/index.d.ts +0 -1
- package/dist/commands/index.js +0 -1
- package/dist/core/constants.d.ts +1 -2
- package/dist/core/constants.js +1 -2
- package/dist/core/errors.d.ts +1 -2
- package/dist/core/errors.js +1 -2
- package/dist/core/index.d.ts +1 -2
- package/dist/core/index.js +1 -2
- package/dist/core/types.d.ts +0 -1
- package/dist/core/types.js +1 -2
- package/dist/index.d.ts +1 -2
- package/dist/index.js +1 -2
- package/dist/presets/ProjectPresets.d.ts +0 -1
- package/dist/presets/ProjectPresets.js +0 -1
- package/dist/scaffolds/ProjectScaffoldPresets.d.ts +1 -2
- package/dist/scaffolds/ProjectScaffoldPresets.js +1 -2
- package/dist/services/ConfigManager.d.ts +1 -2
- package/dist/services/ConfigManager.js +0 -1
- package/dist/services/FeatureManager.d.ts +1 -2
- package/dist/services/FeatureManager.js +1 -2
- package/dist/services/FileService.d.ts +1 -2
- package/dist/services/FileService.js +0 -1
- package/dist/services/IndexBuilder.d.ts +1 -2
- package/dist/services/IndexBuilder.js +1 -2
- package/dist/services/Logger.d.ts +1 -2
- package/dist/services/Logger.js +1 -2
- package/dist/services/ProjectAssetRegistry.d.ts +0 -1
- package/dist/services/ProjectAssetRegistry.js +1 -2
- package/dist/services/ProjectAssetService.d.ts +0 -1
- package/dist/services/ProjectAssetService.js +4 -2
- package/dist/services/ProjectScaffoldCommandService.d.ts +1 -2
- package/dist/services/ProjectScaffoldCommandService.js +0 -1
- package/dist/services/ProjectScaffoldService.d.ts +1 -2
- package/dist/services/ProjectScaffoldService.js +0 -1
- package/dist/services/ProjectService.d.ts +0 -1
- package/dist/services/ProjectService.js +10 -5
- package/dist/services/QueueService.d.ts +0 -1
- package/dist/services/QueueService.js +0 -1
- package/dist/services/RunService.d.ts +0 -1
- package/dist/services/RunService.js +0 -1
- package/dist/services/SkillParser.d.ts +1 -2
- package/dist/services/SkillParser.js +0 -1
- package/dist/services/StateManager.d.ts +0 -1
- package/dist/services/StateManager.js +0 -1
- package/dist/services/TemplateEngine.d.ts +1 -2
- package/dist/services/TemplateEngine.js +1 -2
- package/dist/services/TemplateGenerator.d.ts +1 -2
- package/dist/services/TemplateGenerator.js +0 -1
- package/dist/services/ValidationService.d.ts +1 -2
- package/dist/services/ValidationService.js +1 -2
- package/dist/services/Validator.d.ts +1 -2
- package/dist/services/Validator.js +1 -2
- package/dist/services/index.d.ts +0 -1
- package/dist/services/index.js +0 -1
- package/dist/services/templates/ExecutionTemplateBuilder.d.ts +1 -2
- package/dist/services/templates/ExecutionTemplateBuilder.js +0 -1
- package/dist/services/templates/ProjectTemplateBuilder.d.ts +1 -2
- package/dist/services/templates/ProjectTemplateBuilder.js +0 -1
- package/dist/services/templates/TemplateBuilderBase.d.ts +0 -1
- package/dist/services/templates/TemplateBuilderBase.js +0 -1
- package/dist/services/templates/TemplateInputFactory.d.ts +1 -2
- package/dist/services/templates/TemplateInputFactory.js +0 -1
- package/dist/services/templates/templateTypes.d.ts +0 -1
- package/dist/services/templates/templateTypes.js +1 -2
- package/dist/tools/build-index.js +115 -18
- package/dist/utils/DateUtils.d.ts +1 -2
- package/dist/utils/DateUtils.js +1 -2
- package/dist/utils/PathUtils.d.ts +0 -1
- package/dist/utils/PathUtils.js +0 -1
- package/dist/utils/StringUtils.d.ts +1 -2
- package/dist/utils/StringUtils.js +1 -2
- package/dist/utils/helpers.d.ts +0 -1
- package/dist/utils/helpers.js +0 -1
- package/dist/utils/index.d.ts +1 -2
- package/dist/utils/index.js +1 -2
- package/dist/utils/logger.d.ts +1 -2
- package/dist/utils/logger.js +1 -2
- package/dist/utils/path.d.ts +1 -2
- package/dist/utils/path.js +1 -2
- package/dist/utils/subcommandHelp.d.ts +0 -1
- package/dist/utils/subcommandHelp.js +0 -1
- package/dist/workflow/ArchiveGate.d.ts +1 -2
- package/dist/workflow/ArchiveGate.js +1 -2
- package/dist/workflow/ConfigurableWorkflow.d.ts +1 -2
- package/dist/workflow/ConfigurableWorkflow.js +1 -2
- package/dist/workflow/HookSystem.d.ts +1 -2
- package/dist/workflow/HookSystem.js +1 -2
- package/dist/workflow/IndexRegenerator.d.ts +1 -2
- package/dist/workflow/IndexRegenerator.js +1 -2
- package/dist/workflow/PluginWorkflowComposer.d.ts +0 -1
- package/dist/workflow/PluginWorkflowComposer.js +0 -1
- package/dist/workflow/SkillUpdateEngine.d.ts +1 -2
- package/dist/workflow/SkillUpdateEngine.js +1 -2
- package/dist/workflow/VerificationSystem.d.ts +1 -2
- package/dist/workflow/VerificationSystem.js +1 -2
- package/dist/workflow/WorkflowEngine.d.ts +1 -2
- package/dist/workflow/WorkflowEngine.js +1 -2
- package/dist/workflow/index.d.ts +0 -1
- package/dist/workflow/index.js +0 -1
- package/package.json +13 -8
- package/skill.yaml +2 -2
|
@@ -4,7 +4,6 @@ const fs = require('fs');
|
|
|
4
4
|
const fsp = require('fs/promises');
|
|
5
5
|
const path = require('path');
|
|
6
6
|
const { spawnSync } = require('child_process');
|
|
7
|
-
const matter = require('gray-matter');
|
|
8
7
|
|
|
9
8
|
const SKIP_DIRS = new Set(['node_modules', 'dist', '.git', 'changes', 'for-ai']);
|
|
10
9
|
const INDEX_FILE = 'SKILL.index.json';
|
|
@@ -65,7 +64,7 @@ async function runHookCheck(rootDir, event) {
|
|
|
65
64
|
const indexStatus = await computeIndexStatus(rootDir);
|
|
66
65
|
if (indexStatus.stale) {
|
|
67
66
|
console.log('[ospec] SKILL.index.json is stale');
|
|
68
|
-
console.log('[ospec] run "ospec index build" or "node build-index-auto.cjs" to refresh it');
|
|
67
|
+
console.log('[ospec] run "ospec index build" or "node .ospec/tools/build-index-auto.cjs" to refresh it');
|
|
69
68
|
if (event === 'pre-commit' && config.indexCheck === 'error') {
|
|
70
69
|
shouldBlock = true;
|
|
71
70
|
}
|
|
@@ -469,7 +468,7 @@ function analyzeWorkflowChecklistDocument(content, options) {
|
|
|
469
468
|
|
|
470
469
|
if (hasFrontmatter) {
|
|
471
470
|
try {
|
|
472
|
-
parsed =
|
|
471
|
+
parsed = parseFrontmatter(content, { strict: true });
|
|
473
472
|
} catch (error) {
|
|
474
473
|
parseError = error;
|
|
475
474
|
}
|
|
@@ -484,8 +483,8 @@ function analyzeWorkflowChecklistDocument(content, options) {
|
|
|
484
483
|
const missingActivatedSteps = optionalStepsFieldValid
|
|
485
484
|
? options.activatedSteps.filter(step => !optionalSteps.includes(step))
|
|
486
485
|
: [...options.activatedSteps];
|
|
487
|
-
const checklistItems = parsed?.
|
|
488
|
-
const uncheckedItems = parsed?.
|
|
486
|
+
const checklistItems = parsed?.body.match(/^\s*-\s+\[(?: |x|X)\]\s+.+$/gm) ?? [];
|
|
487
|
+
const uncheckedItems = parsed?.body.match(/^\s*-\s+\[ \]\s+.+$/gm) ?? [];
|
|
489
488
|
const checklistStructureValid = checklistItems.length > 0;
|
|
490
489
|
|
|
491
490
|
let frontmatterMessage = `${options.name} frontmatter parsed successfully`;
|
|
@@ -553,40 +552,61 @@ function normalizeLineEndings(content) {
|
|
|
553
552
|
return String(content || '').replace(/\r\n?/g, '\n');
|
|
554
553
|
}
|
|
555
554
|
|
|
556
|
-
function parseFrontmatter(content) {
|
|
557
|
-
const
|
|
555
|
+
function parseFrontmatter(content, options = {}) {
|
|
556
|
+
const normalizedContent = normalizeLineEndings(content);
|
|
557
|
+
const match = normalizedContent.match(/^---\n([\s\S]*?)\n---(?:\n|$)/);
|
|
558
558
|
if (!match) {
|
|
559
|
-
return { data: {}, body:
|
|
559
|
+
return { data: {}, body: normalizedContent };
|
|
560
560
|
}
|
|
561
561
|
|
|
562
562
|
const data = {};
|
|
563
|
-
const lines = match[1].split(
|
|
563
|
+
const lines = match[1].split('\n');
|
|
564
564
|
let currentKey = null;
|
|
565
565
|
|
|
566
|
-
for (
|
|
566
|
+
for (let index = 0; index < lines.length; index += 1) {
|
|
567
|
+
const line = lines[index];
|
|
568
|
+
const lineNumber = index + 1;
|
|
569
|
+
const trimmed = line.trim();
|
|
570
|
+
|
|
571
|
+
if (trimmed === '' || trimmed.startsWith('#')) {
|
|
572
|
+
continue;
|
|
573
|
+
}
|
|
574
|
+
|
|
567
575
|
if (/^\s*-\s+/.test(line) && currentKey) {
|
|
568
576
|
if (!Array.isArray(data[currentKey])) {
|
|
569
577
|
data[currentKey] = [];
|
|
570
578
|
}
|
|
571
|
-
data[currentKey].push(
|
|
579
|
+
data[currentKey].push(
|
|
580
|
+
parseValue(line.replace(/^\s*-\s+/, '').trim(), options, {
|
|
581
|
+
key: currentKey,
|
|
582
|
+
lineNumber,
|
|
583
|
+
})
|
|
584
|
+
);
|
|
572
585
|
continue;
|
|
573
586
|
}
|
|
574
587
|
|
|
588
|
+
if (/^\s*-\s+/.test(line) && options.strict) {
|
|
589
|
+
throw createFrontmatterParseError('Unexpected list item outside an array field', lineNumber);
|
|
590
|
+
}
|
|
591
|
+
|
|
575
592
|
const keyMatch = line.match(/^([A-Za-z0-9_-]+):\s*(.*)$/);
|
|
576
593
|
if (!keyMatch) {
|
|
594
|
+
if (options.strict) {
|
|
595
|
+
throw createFrontmatterParseError(`Invalid frontmatter line: ${trimmed}`, lineNumber);
|
|
596
|
+
}
|
|
577
597
|
currentKey = null;
|
|
578
598
|
continue;
|
|
579
599
|
}
|
|
580
600
|
|
|
581
601
|
const key = keyMatch[1];
|
|
582
602
|
const rawValue = keyMatch[2].trim();
|
|
583
|
-
data[key] = parseValue(rawValue);
|
|
603
|
+
data[key] = parseValue(rawValue, options, { key, lineNumber });
|
|
584
604
|
currentKey = Array.isArray(data[key]) && rawValue === '' ? key : null;
|
|
585
605
|
}
|
|
586
606
|
|
|
587
607
|
return {
|
|
588
608
|
data,
|
|
589
|
-
body:
|
|
609
|
+
body: normalizedContent.slice(match[0].length),
|
|
590
610
|
};
|
|
591
611
|
}
|
|
592
612
|
|
|
@@ -609,7 +629,7 @@ function isValidFrontmatterField(value, type) {
|
|
|
609
629
|
return false;
|
|
610
630
|
}
|
|
611
631
|
|
|
612
|
-
function parseValue(rawValue) {
|
|
632
|
+
function parseValue(rawValue, options = {}, context = {}) {
|
|
613
633
|
if (rawValue === '') {
|
|
614
634
|
return [];
|
|
615
635
|
}
|
|
@@ -622,25 +642,102 @@ function parseValue(rawValue) {
|
|
|
622
642
|
if (rawValue === 'false') {
|
|
623
643
|
return false;
|
|
624
644
|
}
|
|
645
|
+
if (options.strict) {
|
|
646
|
+
validateFrontmatterValue(rawValue, context);
|
|
647
|
+
}
|
|
625
648
|
if (/^\[(.*)\]$/.test(rawValue)) {
|
|
626
649
|
const inner = rawValue.slice(1, -1).trim();
|
|
627
650
|
if (!inner) {
|
|
628
651
|
return [];
|
|
629
652
|
}
|
|
630
653
|
|
|
631
|
-
return inner
|
|
632
|
-
.split(',')
|
|
633
|
-
.map(item => stripQuotes(item.trim()))
|
|
634
|
-
.filter(Boolean);
|
|
654
|
+
return splitInlineArray(inner, options, context);
|
|
635
655
|
}
|
|
636
656
|
|
|
637
657
|
return stripQuotes(rawValue);
|
|
638
658
|
}
|
|
639
659
|
|
|
660
|
+
function validateFrontmatterValue(rawValue, context) {
|
|
661
|
+
const startsArray = rawValue.startsWith('[');
|
|
662
|
+
const endsArray = rawValue.endsWith(']');
|
|
663
|
+
if (startsArray !== endsArray) {
|
|
664
|
+
throw createFrontmatterParseError(
|
|
665
|
+
`Unterminated inline array for ${context.key || 'field'}`,
|
|
666
|
+
context.lineNumber
|
|
667
|
+
);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
if (!rawValue) {
|
|
671
|
+
return;
|
|
672
|
+
}
|
|
673
|
+
|
|
674
|
+
const quote = rawValue[0];
|
|
675
|
+
if ((quote === '"' || quote === "'") && rawValue[rawValue.length - 1] !== quote) {
|
|
676
|
+
throw createFrontmatterParseError(
|
|
677
|
+
`Unterminated quoted string for ${context.key || 'field'}`,
|
|
678
|
+
context.lineNumber
|
|
679
|
+
);
|
|
680
|
+
}
|
|
681
|
+
}
|
|
682
|
+
|
|
683
|
+
function splitInlineArray(inner, options = {}, context = {}) {
|
|
684
|
+
const values = [];
|
|
685
|
+
let current = '';
|
|
686
|
+
let activeQuote = null;
|
|
687
|
+
|
|
688
|
+
for (let index = 0; index < inner.length; index += 1) {
|
|
689
|
+
const char = inner[index];
|
|
690
|
+
if (activeQuote) {
|
|
691
|
+
current += char;
|
|
692
|
+
if (char === activeQuote && inner[index - 1] !== '\\') {
|
|
693
|
+
activeQuote = null;
|
|
694
|
+
}
|
|
695
|
+
continue;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
if (char === '"' || char === "'") {
|
|
699
|
+
activeQuote = char;
|
|
700
|
+
current += char;
|
|
701
|
+
continue;
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
if (char === ',') {
|
|
705
|
+
const parsed = parseValue(current.trim(), {}, context);
|
|
706
|
+
if (parsed !== '') {
|
|
707
|
+
values.push(parsed);
|
|
708
|
+
}
|
|
709
|
+
current = '';
|
|
710
|
+
continue;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
current += char;
|
|
714
|
+
}
|
|
715
|
+
|
|
716
|
+
if (activeQuote && options.strict) {
|
|
717
|
+
throw createFrontmatterParseError(
|
|
718
|
+
`Unterminated quoted string in inline array for ${context.key || 'field'}`,
|
|
719
|
+
context.lineNumber
|
|
720
|
+
);
|
|
721
|
+
}
|
|
722
|
+
|
|
723
|
+
const parsed = parseValue(current.trim(), {}, context);
|
|
724
|
+
if (parsed !== '') {
|
|
725
|
+
values.push(parsed);
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
return values.filter(value => value !== '');
|
|
729
|
+
}
|
|
730
|
+
|
|
640
731
|
function stripQuotes(value) {
|
|
641
732
|
return value.replace(/^['"]|['"]$/g, '');
|
|
642
733
|
}
|
|
643
734
|
|
|
735
|
+
function createFrontmatterParseError(message, lineNumber) {
|
|
736
|
+
const error = new Error(lineNumber ? `line ${lineNumber}: ${message}` : message);
|
|
737
|
+
error.name = 'FrontmatterParseError';
|
|
738
|
+
return error;
|
|
739
|
+
}
|
|
740
|
+
|
|
644
741
|
function extractSections(content) {
|
|
645
742
|
const sections = {};
|
|
646
743
|
const matches = [];
|
package/dist/utils/DateUtils.js
CHANGED
package/dist/utils/PathUtils.js
CHANGED
package/dist/utils/helpers.d.ts
CHANGED
package/dist/utils/helpers.js
CHANGED
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
|
@@ -19,5 +19,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
__exportStar(require("./PathUtils"), exports);
|
|
21
21
|
__exportStar(require("./StringUtils"), exports);
|
|
22
|
-
__exportStar(require("./DateUtils"), exports);
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
|
22
|
+
__exportStar(require("./DateUtils"), exports);
|
package/dist/utils/logger.d.ts
CHANGED
package/dist/utils/logger.js
CHANGED
package/dist/utils/path.d.ts
CHANGED
package/dist/utils/path.js
CHANGED
|
@@ -26,5 +26,4 @@ export interface ArchiveProtocolState {
|
|
|
26
26
|
export declare class ArchiveGate {
|
|
27
27
|
checkArchiveReadiness(featureState: FeatureState, config: ArchiveGateConfig, protocolState?: ArchiveProtocolState): Promise<ArchiveCheckResult>;
|
|
28
28
|
}
|
|
29
|
-
export declare const archiveGate: ArchiveGate;
|
|
30
|
-
//# sourceMappingURL=ArchiveGate.d.ts.map
|
|
29
|
+
export declare const archiveGate: ArchiveGate;
|
|
@@ -22,5 +22,4 @@ export declare class SkillUpdateEngine {
|
|
|
22
22
|
}>;
|
|
23
23
|
exportSkillPackage(featureDir: string): Promise<Buffer>;
|
|
24
24
|
}
|
|
25
|
-
export declare const skillUpdateEngine: SkillUpdateEngine;
|
|
26
|
-
//# sourceMappingURL=SkillUpdateEngine.d.ts.map
|
|
25
|
+
export declare const skillUpdateEngine: SkillUpdateEngine;
|
package/dist/workflow/index.d.ts
CHANGED
|
@@ -16,4 +16,3 @@ export { ConfigurableWorkflow, WORKFLOW_PRESETS } from './ConfigurableWorkflow';
|
|
|
16
16
|
export type { CoreStep, OptionalStep, OptionalStepConfig, WorkflowConfigType } from './ConfigurableWorkflow';
|
|
17
17
|
export { PluginWorkflowComposer, DEFAULT_STITCH_PLUGIN_CONFIG, DEFAULT_CHECKPOINT_PLUGIN_CONFIG } from './PluginWorkflowComposer';
|
|
18
18
|
export type { EnabledPluginSummary, PluginCapabilitySummary } from './PluginWorkflowComposer';
|
|
19
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/workflow/index.js
CHANGED
|
@@ -29,4 +29,3 @@ var PluginWorkflowComposer_1 = require("./PluginWorkflowComposer");
|
|
|
29
29
|
Object.defineProperty(exports, "DEFAULT_STITCH_PLUGIN_CONFIG", { enumerable: true, get: function () { return PluginWorkflowComposer_1.DEFAULT_STITCH_PLUGIN_CONFIG; } });
|
|
30
30
|
Object.defineProperty(exports, "DEFAULT_CHECKPOINT_PLUGIN_CONFIG", { enumerable: true, get: function () { return PluginWorkflowComposer_1.DEFAULT_CHECKPOINT_PLUGIN_CONFIG; } });
|
|
31
31
|
Object.defineProperty(exports, "PluginWorkflowComposer", { enumerable: true, get: function () { return PluginWorkflowComposer_1.PluginWorkflowComposer; } });
|
|
32
|
-
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@clawplays/ospec-cli",
|
|
3
|
-
"version": "0.3.
|
|
4
|
-
"description": "CLI
|
|
3
|
+
"version": "0.3.10",
|
|
4
|
+
"description": "Official OSpec CLI package for spec-driven development (SDD) and document-driven development in AI coding agent and CLI workflows.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"bin": {
|
|
@@ -11,9 +11,10 @@
|
|
|
11
11
|
"access": "public"
|
|
12
12
|
},
|
|
13
13
|
"scripts": {
|
|
14
|
-
"build": "tsc",
|
|
15
|
-
"dev": "
|
|
14
|
+
"build": "tsc && node scripts/strip-sourcemap-refs.js",
|
|
15
|
+
"dev": "node scripts/dev-watch.js",
|
|
16
16
|
"postinstall": "node scripts/postinstall.js",
|
|
17
|
+
"prepack": "node scripts/strip-sourcemap-refs.js",
|
|
17
18
|
"test": "vitest",
|
|
18
19
|
"test:run": "vitest --run",
|
|
19
20
|
"lint": "eslint src tests --ext .ts",
|
|
@@ -26,6 +27,7 @@
|
|
|
26
27
|
"release:cut:major": "node scripts/release-cut.js major",
|
|
27
28
|
"release:smoke": "node scripts/release-smoke.js",
|
|
28
29
|
"release:notes": "node scripts/release-notes.js",
|
|
30
|
+
"release:upload-notes": "node scripts/release-upload-notes.js",
|
|
29
31
|
"release:sync-version": "node scripts/sync-version.js",
|
|
30
32
|
"release:bump:patch": "npm version patch --no-git-tag-version",
|
|
31
33
|
"release:bump:minor": "npm version minor --no-git-tag-version",
|
|
@@ -36,16 +38,19 @@
|
|
|
36
38
|
},
|
|
37
39
|
"keywords": [
|
|
38
40
|
"ospec",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
41
|
-
"
|
|
41
|
+
"ospec-cli",
|
|
42
|
+
"spec-driven development",
|
|
43
|
+
"sdd",
|
|
44
|
+
"document-driven development",
|
|
45
|
+
"ai coding agents",
|
|
46
|
+
"cli workflows"
|
|
42
47
|
],
|
|
43
48
|
"author": "clawplays <ai@clawplays.com>",
|
|
44
49
|
"repository": {
|
|
45
50
|
"type": "git",
|
|
46
51
|
"url": "git+https://github.com/clawplays/ospec.git"
|
|
47
52
|
},
|
|
48
|
-
"homepage": "https://
|
|
53
|
+
"homepage": "https://ospec.ai/",
|
|
49
54
|
"bugs": {
|
|
50
55
|
"url": "https://github.com/clawplays/ospec/issues"
|
|
51
56
|
},
|
package/skill.yaml
CHANGED
|
@@ -19,7 +19,7 @@ protocol:
|
|
|
19
19
|
- ".skillrc"
|
|
20
20
|
- "SKILL.md"
|
|
21
21
|
- "SKILL.index.json"
|
|
22
|
-
- "build-index-auto.cjs"
|
|
22
|
+
- ".ospec/tools/build-index-auto.cjs"
|
|
23
23
|
- "for-ai/ai-guide.md"
|
|
24
24
|
- "for-ai/execution-protocol.md"
|
|
25
25
|
- "for-ai/naming-conventions.md"
|
|
@@ -139,7 +139,7 @@ usage:
|
|
|
139
139
|
- "Create the first active change explicitly."
|
|
140
140
|
- "Run your project deployment and validation flow, then use ospec verify [changes/active/<change>]."
|
|
141
141
|
- "Archive the validated change with ospec finalize [changes/active/<change>]."
|
|
142
|
-
- "Verify .skillrc, changes/, .ospec/, build-index-auto.cjs, for-ai docs, and docs/project/* before claiming init is complete."
|
|
142
|
+
- "Verify .skillrc, changes/, .ospec/, .ospec/tools/build-index-auto.cjs, for-ai docs, and docs/project/* before claiming init is complete."
|
|
143
143
|
- "Use presets only as planning defaults; scaffold still requires explicit intent."
|
|
144
144
|
prompt_shortcuts:
|
|
145
145
|
- "initialize this project"
|