Skip to content

Commit fdb05a7

Browse files
authored
feat(skills): add bulk-archive skill for archiving multiple changes (Fission-AI#527)
Add `/opsx:bulk-archive` skill that allows archiving multiple completed changes in a single operation. Features include: - Multi-select change selection via AskUserQuestion - Batch validation of artifacts, tasks, and delta specs - Spec conflict detection when multiple changes touch same capability - Agentic conflict resolution by checking codebase for implementation - Consolidated status table before confirmation - Single confirmation for entire batch operation - Comprehensive summary showing archived/skipped/failed changes This is useful when working on multiple changes in parallel and wanting to archive them together after implementation is complete.
1 parent 8332a09 commit fdb05a7

2 files changed

Lines changed: 498 additions & 1 deletion

File tree

src/commands/artifact-workflow.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ import {
2828
type SchemaInfo,
2929
} from '../core/artifact-graph/index.js';
3030
import { createChange, validateChangeName } from '../utils/change-utils.js';
31-
import { getExploreSkillTemplate, getNewChangeSkillTemplate, getContinueChangeSkillTemplate, getApplyChangeSkillTemplate, getFfChangeSkillTemplate, getSyncSpecsSkillTemplate, getArchiveChangeSkillTemplate, getVerifyChangeSkillTemplate, getOpsxExploreCommandTemplate, getOpsxNewCommandTemplate, getOpsxContinueCommandTemplate, getOpsxApplyCommandTemplate, getOpsxFfCommandTemplate, getOpsxSyncCommandTemplate, getOpsxArchiveCommandTemplate, getOpsxVerifyCommandTemplate } from '../core/templates/skill-templates.js';
31+
import { getExploreSkillTemplate, getNewChangeSkillTemplate, getContinueChangeSkillTemplate, getApplyChangeSkillTemplate, getFfChangeSkillTemplate, getSyncSpecsSkillTemplate, getArchiveChangeSkillTemplate, getBulkArchiveChangeSkillTemplate, getVerifyChangeSkillTemplate, getOpsxExploreCommandTemplate, getOpsxNewCommandTemplate, getOpsxContinueCommandTemplate, getOpsxApplyCommandTemplate, getOpsxFfCommandTemplate, getOpsxSyncCommandTemplate, getOpsxArchiveCommandTemplate, getOpsxBulkArchiveCommandTemplate, getOpsxVerifyCommandTemplate } from '../core/templates/skill-templates.js';
3232
import { FileSystemUtils } from '../utils/file-system.js';
3333
import { promptForConfig, serializeConfig, isExitPromptError } from '../core/config-prompts.js';
3434
import { readProjectConfig } from '../core/project-config.js';
@@ -818,6 +818,7 @@ async function artifactExperimentalSetupCommand(): Promise<void> {
818818
const ffChangeSkill = getFfChangeSkillTemplate();
819819
const syncSpecsSkill = getSyncSpecsSkillTemplate();
820820
const archiveChangeSkill = getArchiveChangeSkillTemplate();
821+
const bulkArchiveChangeSkill = getBulkArchiveChangeSkillTemplate();
821822
const verifyChangeSkill = getVerifyChangeSkillTemplate();
822823

823824
// Get command templates
@@ -828,6 +829,7 @@ async function artifactExperimentalSetupCommand(): Promise<void> {
828829
const ffCommand = getOpsxFfCommandTemplate();
829830
const syncCommand = getOpsxSyncCommandTemplate();
830831
const archiveCommand = getOpsxArchiveCommandTemplate();
832+
const bulkArchiveCommand = getOpsxBulkArchiveCommandTemplate();
831833
const verifyCommand = getOpsxVerifyCommandTemplate();
832834

833835
// Create skill directories and SKILL.md files
@@ -839,6 +841,7 @@ async function artifactExperimentalSetupCommand(): Promise<void> {
839841
{ template: ffChangeSkill, dirName: 'openspec-ff-change' },
840842
{ template: syncSpecsSkill, dirName: 'openspec-sync-specs' },
841843
{ template: archiveChangeSkill, dirName: 'openspec-archive-change' },
844+
{ template: bulkArchiveChangeSkill, dirName: 'openspec-bulk-archive-change' },
842845
{ template: verifyChangeSkill, dirName: 'openspec-verify-change' },
843846
];
844847

@@ -871,6 +874,7 @@ ${template.instructions}
871874
{ template: ffCommand, fileName: 'ff.md' },
872875
{ template: syncCommand, fileName: 'sync.md' },
873876
{ template: archiveCommand, fileName: 'archive.md' },
877+
{ template: bulkArchiveCommand, fileName: 'bulk-archive.md' },
874878
{ template: verifyCommand, fileName: 'verify.md' },
875879
];
876880

0 commit comments

Comments
 (0)