diff --git a/src/core/templates/workflows/bulk-archive-change.ts b/src/core/templates/workflows/bulk-archive-change.ts index d57db8aa0..ed6d14452 100644 --- a/src/core/templates/workflows/bulk-archive-change.ts +++ b/src/core/templates/workflows/bulk-archive-change.ts @@ -85,7 +85,7 @@ This skill allows you to batch-archive changes, handling spec conflicts intellig Display a table summarizing all changes: \`\`\` - | Change | Artifacts | Tasks | Specs | Conflicts | Status | + | Change | Artifacts | Tasks | Specs | Conflicts | Status | |---------------------|-----------|-------|---------|-----------|--------| | schema-management | Done | 5/5 | 2 delta | None | Ready | | project-config | Done | 3/3 | 1 delta | None | Ready | @@ -332,7 +332,7 @@ This skill allows you to batch-archive changes, handling spec conflicts intellig Display a table summarizing all changes: \`\`\` - | Change | Artifacts | Tasks | Specs | Conflicts | Status | + | Change | Artifacts | Tasks | Specs | Conflicts | Status | |---------------------|-----------|-------|---------|-----------|--------| | schema-management | Done | 5/5 | 2 delta | None | Ready | | project-config | Done | 3/3 | 1 delta | None | Ready | diff --git a/src/core/templates/workflows/explore.ts b/src/core/templates/workflows/explore.ts index 059d2ecae..76db8ff8f 100644 --- a/src/core/templates/workflows/explore.ts +++ b/src/core/templates/workflows/explore.ts @@ -57,10 +57,10 @@ Depending on what the user brings, you might: │ Use ASCII diagrams liberally │ ├─────────────────────────────────────────┤ │ │ -│ ┌────────┐ ┌────────┐ │ -│ │ State │────────▶│ State │ │ -│ │ A │ │ B │ │ -│ └────────┘ └────────┘ │ +│ ┌────────┐ ┌────────┐ │ +│ │ State │────────▶│ State │ │ +│ │ A │ │ B │ │ +│ └────────┘ └────────┘ │ │ │ │ System diagrams, state machines, │ │ data flows, architecture sketches, │ @@ -115,14 +115,14 @@ If the user mentions a change or you detect one is relevant: 3. **Offer to capture when decisions are made** - | Insight Type | Where to Capture | - |--------------|------------------| - | New requirement discovered | \`specs//spec.md\` | - | Requirement changed | \`specs//spec.md\` | - | Design decision made | \`design.md\` | - | Scope changed | \`proposal.md\` | - | New work identified | \`tasks.md\` | - | Assumption invalidated | Relevant artifact | + | Insight Type | Where to Capture | + |----------------------------|--------------------------------| + | New requirement discovered | \`specs//spec.md\` | + | Requirement changed | \`specs//spec.md\` | + | Design decision made | \`design.md\` | + | Scope changed | \`proposal.md\` | + | New work identified | \`tasks.md\` | + | Assumption invalidated | Relevant artifact | Example offers: - "That's a design decision. Capture it in design.md?" @@ -228,7 +228,7 @@ User: A CLI tool that tracks local dev environments You: That changes everything. ┌─────────────────────────────────────────────────┐ - │ CLI TOOL DATA STORAGE │ + │ CLI TOOL DATA STORAGE │ └─────────────────────────────────────────────────┘ Key constraints: @@ -353,10 +353,10 @@ Depending on what the user brings, you might: │ Use ASCII diagrams liberally │ ├─────────────────────────────────────────┤ │ │ -│ ┌────────┐ ┌────────┐ │ -│ │ State │────────▶│ State │ │ -│ │ A │ │ B │ │ -│ └────────┘ └────────┘ │ +│ ┌────────┐ ┌────────┐ │ +│ │ State │────────▶│ State │ │ +│ │ A │ │ B │ │ +│ └────────┘ └────────┘ │ │ │ │ System diagrams, state machines, │ │ data flows, architecture sketches, │ @@ -413,14 +413,14 @@ If the user mentions a change or you detect one is relevant: 3. **Offer to capture when decisions are made** - | Insight Type | Where to Capture | - |--------------|------------------| - | New requirement discovered | \`specs//spec.md\` | - | Requirement changed | \`specs//spec.md\` | - | Design decision made | \`design.md\` | - | Scope changed | \`proposal.md\` | - | New work identified | \`tasks.md\` | - | Assumption invalidated | Relevant artifact | + | Insight Type | Where to Capture | + |----------------------------|--------------------------------| + | New requirement discovered | \`specs//spec.md\` | + | Requirement changed | \`specs//spec.md\` | + | Design decision made | \`design.md\` | + | Scope changed | \`proposal.md\` | + | New work identified | \`tasks.md\` | + | Assumption invalidated | Relevant artifact | Example offers: - "That's a design decision. Capture it in design.md?" diff --git a/src/core/templates/workflows/onboard.ts b/src/core/templates/workflows/onboard.ts index f9280fa07..65218e165 100644 --- a/src/core/templates/workflows/onboard.ts +++ b/src/core/templates/workflows/onboard.ts @@ -477,21 +477,21 @@ This same rhythm works for any size change—a small fix or a major feature. **Core workflow:** -| Command | What it does | -|---------|--------------| -| \`/opsx:propose\` | Create a change and generate all artifacts | -| \`/opsx:explore\` | Think through problems before/during work | -| \`/opsx:apply\` | Implement tasks from a change | -| \`/opsx:archive\` | Archive a completed change | + | Command | What it does | + |-------------------|--------------------------------------------| + | \`/opsx:propose\` | Create a change and generate all artifacts | + | \`/opsx:explore\` | Think through problems before/during work | + | \`/opsx:apply\` | Implement tasks from a change | + | \`/opsx:archive\` | Archive a completed change | **Additional commands:** -| Command | What it does | -|---------|--------------| -| \`/opsx:new\` | Start a new change, step through artifacts one at a time | -| \`/opsx:continue\` | Continue working on an existing change | -| \`/opsx:ff\` | Fast-forward: create all artifacts at once | -| \`/opsx:verify\` | Verify implementation matches artifacts | + | Command | What it does | + |--------------------|----------------------------------------------------------| + | \`/opsx:new\` | Start a new change, step through artifacts one at a time | + | \`/opsx:continue\` | Continue working on an existing change | + | \`/opsx:ff\` | Fast-forward: create all artifacts at once | + | \`/opsx:verify\` | Verify implementation matches artifacts | --- @@ -529,21 +529,21 @@ If the user says they just want to see the commands or skip the tutorial: **Core workflow:** -| Command | What it does | -|---------|--------------| -| \`/opsx:propose \` | Create a change and generate all artifacts | -| \`/opsx:explore\` | Think through problems (no code changes) | -| \`/opsx:apply \` | Implement tasks | -| \`/opsx:archive \` | Archive when done | + | Command | What it does | + |--------------------------|--------------------------------------------| + | \`/opsx:propose \` | Create a change and generate all artifacts | + | \`/opsx:explore\` | Think through problems (no code changes) | + | \`/opsx:apply \` | Implement tasks | + | \`/opsx:archive \` | Archive when done | **Additional commands:** -| Command | What it does | -|---------|--------------| -| \`/opsx:new \` | Start a new change, step by step | -| \`/opsx:continue \` | Continue an existing change | -| \`/opsx:ff \` | Fast-forward: all artifacts at once | -| \`/opsx:verify \` | Verify implementation | + | Command | What it does | + |---------------------------|-------------------------------------| + | \`/opsx:new \` | Start a new change, step by step | + | \`/opsx:continue \` | Continue an existing change | + | \`/opsx:ff \` | Fast-forward: all artifacts at once | + | \`/opsx:verify \` | Verify implementation | Try \`/opsx:propose\` to start your first change. \`\`\` diff --git a/test/core/templates/skill-templates-parity.test.ts b/test/core/templates/skill-templates-parity.test.ts index f8fb1307b..48415fca7 100644 --- a/test/core/templates/skill-templates-parity.test.ts +++ b/test/core/templates/skill-templates-parity.test.ts @@ -30,25 +30,25 @@ import { import { generateSkillContent } from '../../../src/core/shared/skill-generation.js'; const EXPECTED_FUNCTION_HASHES: Record = { - getExploreSkillTemplate: '55a2a1afcba0af88c638e77e4e3870f65ed82c030b4a2056d39812ae13a616be', + getExploreSkillTemplate: '3f73b4d7ab189ef6367fccc9d99308bee35c6a89dae4c8044582a01cb01b335b', getNewChangeSkillTemplate: '5989672758eccf54e3bb554ab97f2c129a192b12bbb7688cc1ffcf6bccb1ae9d', getContinueChangeSkillTemplate: 'f2e413f0333dfd6641cc2bd1a189273fdea5c399eecdde98ef528b5216f097b3', getApplyChangeSkillTemplate: '26e52e67693e93fbcdd40dcd3e20949c07ce019183d55a8149d0260c791cd7f4', getFfChangeSkillTemplate: 'a7332fb14c8dc3f9dec71f5d332790b4a8488191e7db4ab6132ccbefecf9ded9', getSyncSpecsSkillTemplate: 'bded184e4c345619148de2c0ad80a5b527d4ffe45c87cc785889b9329e0f465b', - getOnboardSkillTemplate: '819a2d117ad1386187975686839cb0584b41484013d0ca6a6691f7a439a11a4a', - getOpsxExploreCommandTemplate: '91353d9e8633a3a9ce7339e796f1283478fca279153f3807c92f4f8ece246b19', + getOnboardSkillTemplate: 'c9e719a02d2ae7f74a0e978f9ad4e767c1921248a9e3724c3321c58a15c38ba9', + getOpsxExploreCommandTemplate: 'b421b88c7a532385f7b1404736d7893eb35a05573b4a04a96f72379ac1bbf148', getOpsxNewCommandTemplate: '62eee32d6d81a376e7be845d0891e28e6262ad07482f9bfe6af12a9f0366c364', getOpsxContinueCommandTemplate: '8bbaedcc95287f9e822572608137df4f49ad54cedfb08d3342d0d1c4e9716caa', getOpsxApplyCommandTemplate: 'a9d631a07fcd832b67d263ff3800b98604ab8d378baf1b0d545907ef3affa3b5', getOpsxFfCommandTemplate: 'cdebe872cc8e0fcc25c8864b98ffd66a93484c0657db94bd1285b8113092702a', getArchiveChangeSkillTemplate: '6f8ca383fdb5a4eb9872aca81e07bf0ba7f25e4de8617d7a047ca914ca7f14b9', - getBulkArchiveChangeSkillTemplate: 'b40fc44ea4e420bdc9c803985b10e5c091fc472cdfc69153b962be6be303bddd', + getBulkArchiveChangeSkillTemplate: '8049897ce1ddb2ff6c0d4b72e22636f9ecfd083b5f2c2a30cf3bb1cb828a2f93', getOpsxSyncCommandTemplate: '378d035fe7cc30be3e027b66dcc4b8afc78ef1c8369c39479c9b05a582fb5ccf', getVerifyChangeSkillTemplate: '63a213ba3b42af54a1cd56f5072234a03b265c3fe4a1da12cd6fbbef5ee46c4b', getOpsxArchiveCommandTemplate: 'b44cc9748109f61687f9f596604b037bc3ea803abc143b22f09a76aebd98b493', - getOpsxOnboardCommandTemplate: '10052d05a4e2cdade7fdfa549b3444f7a92f55a39bf81ddd6af7e0e9e83a7302', - getOpsxBulkArchiveCommandTemplate: 'eaaba253a950b9e681d8427a5cbc6b50c4e91137fb37fd2360859e08f63a0c14', + getOpsxOnboardCommandTemplate: 'fce531f952e939ee85a41848fc21e4cc720b0f3eb62737adc3a51ee6ad2dfc57', + getOpsxBulkArchiveCommandTemplate: '0d77c82de43840a28c74f5181cb21e33b9a9d00454adf4bc92bdc9e69817d6f5', getOpsxVerifyCommandTemplate: '9b4d3ca422553b7534764eb3a009da87a051612c5238e9baab294c7b1233e9a2', getOpsxProposeSkillTemplate: 'd67f937d44650e9c61d2158c865309fbab23cb3f50a3d4868a640a97776e3999', getOpsxProposeCommandTemplate: '41ad59b37eafd7a161bab5c6e41997a37368f9c90b194451295ede5cd42e4d46', @@ -56,16 +56,16 @@ const EXPECTED_FUNCTION_HASHES: Record = { }; const EXPECTED_GENERATED_SKILL_CONTENT_HASHES: Record = { - 'openspec-explore': '90463d00761417dfbca5cb09361adcf8bbdbbb24000b86dd03647869a4104479', + 'openspec-explore': '08e1ec9958eb04653707dd3e198c3fd69cf1b3acd3cf95a1022693cca83c60fc', 'openspec-new-change': 'c324a7ace1f244aa3f534ac8e3370a2c11190d6d1b85a315f26a211398310f0f', 'openspec-continue-change': '463cf0b980ec9c3c24774414ef2a3e48e9faa8577bc8748990f45ab3d5efe960', 'openspec-apply-change': 'a0084442b59be9d7e22a0382a279d470501e1ecf74bdd5347e169951c9be191c', 'openspec-ff-change': '672c3a5b8df152d959b15bd7ae2be7a75ab7b8eaa2ec1e0daa15c02479b27937', 'openspec-sync-specs': 'b8859cf454379a19ca35dbf59eedca67306607f44a355327f9dc851114e50bde', 'openspec-archive-change': 'f83c85452bd47de0dee6b8efbcea6a62534f8a175480e9044f3043f887cebf0f', - 'openspec-bulk-archive-change': 'a235a539f7729ab7669e45256905808789240ecd02820e044f4d0eef67b0c2ab', + 'openspec-bulk-archive-change': '10477399bb07c7ba67f78e315bd68fb1901af8866720545baf4c62a6a679493b', 'openspec-verify-change': '30d07c6f7051965f624f5964db51844ec17c7dfd05f0da95281fe0ca73616326', - 'openspec-onboard': 'dbce376cf895f3fe4f63b4bce66d258c35b7b8884ac746670e5e35fabcefd255', + 'openspec-onboard': 'c1444e026028210efd699110f7e9079bcb486d85ccf27f743213a81cb1084303', 'openspec-propose': '20e36dabefb90e232bad0667292bd5007ec280f8fc4fc995dbc4282bf45a22e7', };