Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions docs/experimental-workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ This creates skills in `.claude/skills/` that Claude Code auto-detects.

| Command | What it does |
|---------|--------------|
| `/opsx:explore` | Think through ideas, investigate problems, clarify requirements |
| `/opsx:new` | Start a new change |
| `/opsx:continue` | Create the next artifact (based on what's ready) |
| `/opsx:ff` | Fast-forward — create all planning artifacts at once |
Expand All @@ -91,6 +92,12 @@ This creates skills in `.claude/skills/` that Claude Code auto-detects.

## Usage

### Explore an idea
```
/opsx:explore
```
Think through ideas, investigate problems, compare options. No structure required - just a thinking partner. When insights crystallize, transition to `/opsx:new` or `/opsx:ff`.
Comment on lines +95 to +99
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add a language identifier to the fenced code block.

The static analysis tool flagged the missing language specifier on the fenced code block. For consistency with other usage examples in this file (e.g., line 103), add bash or leave it as a generic text block with an explicit identifier.

Proposed fix
 ### Explore an idea
-```
+```bash
 /opsx:explore

</details>

<!-- suggestion_start -->

<details>
<summary>📝 Committable suggestion</summary>

> ‼️ **IMPORTANT**
> Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

```suggestion
### Explore an idea
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

96-96: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In @docs/experimental-workflow.md around lines 95 - 99, The fenced code block
showing the command "/opsx:explore" is missing a language identifier; update
that block to include a language like bash (i.e., change the opening ``` to
```bash) so the static analysis and consistency with other examples (e.g., the
`/opsx:explore` example) are satisfied.


### Start a new change
```
/opsx:new
Expand Down Expand Up @@ -520,6 +527,7 @@ Run `openspec schemas` to see available schemas.

## Tips

- Use `/opsx:explore` to think through an idea before committing to a change
- `/opsx:ff` when you know what you want, `/opsx:continue` when exploring
- During `/opsx:apply`, if something's wrong — fix the artifact, then continue
- Tasks track progress via checkboxes in `tasks.md`
Expand Down
7 changes: 6 additions & 1 deletion src/commands/artifact-workflow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ import {
type SchemaInfo,
} from '../core/artifact-graph/index.js';
import { createChange, validateChangeName } from '../utils/change-utils.js';
import { getNewChangeSkillTemplate, getContinueChangeSkillTemplate, getApplyChangeSkillTemplate, getFfChangeSkillTemplate, getSyncSpecsSkillTemplate, getArchiveChangeSkillTemplate, getOpsxNewCommandTemplate, getOpsxContinueCommandTemplate, getOpsxApplyCommandTemplate, getOpsxFfCommandTemplate, getOpsxSyncCommandTemplate, getOpsxArchiveCommandTemplate } from '../core/templates/skill-templates.js';
import { getExploreSkillTemplate, getNewChangeSkillTemplate, getContinueChangeSkillTemplate, getApplyChangeSkillTemplate, getFfChangeSkillTemplate, getSyncSpecsSkillTemplate, getArchiveChangeSkillTemplate, getOpsxExploreCommandTemplate, getOpsxNewCommandTemplate, getOpsxContinueCommandTemplate, getOpsxApplyCommandTemplate, getOpsxFfCommandTemplate, getOpsxSyncCommandTemplate, getOpsxArchiveCommandTemplate } from '../core/templates/skill-templates.js';
import { FileSystemUtils } from '../utils/file-system.js';

// -----------------------------------------------------------------------------
Expand Down Expand Up @@ -793,6 +793,7 @@ async function artifactExperimentalSetupCommand(): Promise<void> {
const commandsDir = path.join(projectRoot, '.claude', 'commands', 'opsx');

// Get skill templates
const exploreSkill = getExploreSkillTemplate();
const newChangeSkill = getNewChangeSkillTemplate();
const continueChangeSkill = getContinueChangeSkillTemplate();
const applyChangeSkill = getApplyChangeSkillTemplate();
Expand All @@ -801,6 +802,7 @@ async function artifactExperimentalSetupCommand(): Promise<void> {
const archiveChangeSkill = getArchiveChangeSkillTemplate();

// Get command templates
const exploreCommand = getOpsxExploreCommandTemplate();
const newCommand = getOpsxNewCommandTemplate();
const continueCommand = getOpsxContinueCommandTemplate();
const applyCommand = getOpsxApplyCommandTemplate();
Expand All @@ -810,6 +812,7 @@ async function artifactExperimentalSetupCommand(): Promise<void> {

// Create skill directories and SKILL.md files
const skills = [
{ template: exploreSkill, dirName: 'openspec-explore' },
{ template: newChangeSkill, dirName: 'openspec-new-change' },
{ template: continueChangeSkill, dirName: 'openspec-continue-change' },
{ template: applyChangeSkill, dirName: 'openspec-apply-change' },
Expand Down Expand Up @@ -840,6 +843,7 @@ ${template.instructions}

// Create slash command files
const commands = [
{ template: exploreCommand, fileName: 'explore.md' },
{ template: newCommand, fileName: 'new.md' },
{ template: continueCommand, fileName: 'continue.md' },
{ template: applyCommand, fileName: 'apply.md' },
Expand Down Expand Up @@ -898,6 +902,7 @@ ${template.content}
console.log(' • "Implement the tasks for this change"');
console.log();
console.log(' ' + chalk.cyan('Slash Commands') + ' for explicit invocation:');
console.log(' • /opsx:explore - Think through ideas, investigate problems');
console.log(' • /opsx:new - Start a new change');
console.log(' • /opsx:continue - Create the next artifact');
console.log(' • /opsx:apply - Implement tasks');
Expand Down
Loading
Loading