specrails-desktop 2.8.0 → 2.9.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 +23 -19
- package/client/dist/assets/{ActivityFeedPage-LKqd18-G.js → ActivityFeedPage-DNqnf1fZ.js} +1 -1
- package/client/dist/assets/{AgentsPage-Cb-b-6Ot.js → AgentsPage-vmNIEbGM.js} +1 -1
- package/client/dist/assets/{AnalyticsPage-HVxQQ1wy.js → AnalyticsPage-CdfN0ofZ.js} +1 -1
- package/client/dist/assets/{BarChart-BOyHB0dw.js → BarChart-CIkopHjl.js} +1 -1
- package/client/dist/assets/{CodePage-DnOnwKGB.js → CodePage-DDRNU5FN.js} +1 -1
- package/client/dist/assets/{DesktopAnalyticsPage-D2auU39x.js → DesktopAnalyticsPage-Cl3sKKSG.js} +1 -1
- package/client/dist/assets/{DocsDialog-CTuDX3GK.js → DocsDialog-BGrBOfUr.js} +2 -2
- package/client/dist/assets/{DocsPage-DRyMmu0Z.js → DocsPage-CY-2SSzw.js} +2 -2
- package/client/dist/assets/{ExportDropdown-DO-GGiMh.js → ExportDropdown-BRHcvP0r.js} +1 -1
- package/client/dist/assets/{IntegrationsPage-BhbO4jFT.js → IntegrationsPage-nKdLB4Ub.js} +1 -1
- package/client/dist/assets/{JobDetailPage-DJooEg1s.js → JobDetailPage-Bf0A6WWQ.js} +1 -1
- package/client/dist/assets/{JobsPage-BbaC-YOg.js → JobsPage-Vg4nXPdL.js} +1 -1
- package/client/dist/assets/{dist-js-CiIVMsx3.js → dist-js-0i_klubI.js} +1 -1
- package/client/dist/assets/{dist-js-Xc2lRKp2.js → dist-js-CUs5GjwA.js} +1 -1
- package/client/dist/assets/{index-DK214dak.js → index-BXoHFtfG.js} +8 -8
- package/client/dist/assets/index-D6BaYRRU.css +2 -0
- package/client/dist/assets/{integrations-2C7MkGT0.js → integrations-7YyTBuU9.js} +1 -1
- package/client/dist/assets/{integrations-CX4p_bij.js → integrations-B9CEpNF0.js} +1 -1
- package/client/dist/assets/{integrations-C2jQtv-s.js → integrations-BlvAdewo.js} +1 -1
- package/client/dist/assets/{integrations-eQPHAYsE.js → integrations-Bw8UM9Xd.js} +1 -1
- package/client/dist/assets/{integrations-BDC670cg.js → integrations-C5SxNKnG.js} +1 -1
- package/client/dist/assets/{integrations-BqUmRUef.js → integrations-CJQKMmdW.js} +1 -1
- package/client/dist/assets/{integrations-CB98NeH5.js → integrations-DWz1eU_K.js} +1 -1
- package/client/dist/assets/{integrations-_SuVeQIG.js → integrations-DiPR8Fzp.js} +1 -1
- package/client/dist/assets/{lib-Bo5s6xpe.js → lib-D6M_MvoC.js} +1 -1
- package/client/dist/assets/setup-B6egeeTM.js +1 -0
- package/client/dist/assets/setup-BHroXlke.js +1 -0
- package/client/dist/assets/setup-BIXsWUp1.js +1 -0
- package/client/dist/assets/setup-BJRdg1iE.js +1 -0
- package/client/dist/assets/setup-C0rVGnCy.js +1 -0
- package/client/dist/assets/setup-Cpu17hJv.js +1 -0
- package/client/dist/assets/setup-D-1r0uSx.js +1 -0
- package/client/dist/assets/setup-Dn2-veYO.js +1 -0
- package/client/dist/assets/{useProjectCache-DVNypkmR.js → useProjectCache-BeyBSNpD.js} +1 -1
- package/client/dist/index.html +4 -4
- package/docs/README.md +5 -2
- package/docs/agy-cli-provider-study.md +78 -0
- package/docs/cli.md +23 -4
- package/docs/codex.md +116 -58
- package/docs/creating-specs.md +19 -5
- package/docs/customizing.md +27 -6
- package/docs/gemini.md +225 -73
- package/docs/getting-started.md +18 -9
- package/docs/guide/de/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/de/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/de/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/de/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/de/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/de/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/de/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/de/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/de/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/de/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/de/insights/3-code-explorer.md +50 -0
- package/docs/guide/de/integrations/1-ai-providers.md +64 -0
- package/docs/guide/de/integrations/2-plugins.md +44 -0
- package/docs/guide/de/integrations/3-jira-integration.md +71 -0
- package/docs/guide/de/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/de/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/de/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/de/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/de/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/de/settings/1-themes.md +37 -0
- package/docs/guide/de/settings/2-language.md +39 -0
- package/docs/guide/de/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/de/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/de/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/de/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/de/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/de/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/en/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/en/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/en/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/en/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/en/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/en/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/en/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/en/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/en/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/en/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/en/insights/3-code-explorer.md +50 -0
- package/docs/guide/en/integrations/1-ai-providers.md +64 -0
- package/docs/guide/en/integrations/2-plugins.md +44 -0
- package/docs/guide/en/integrations/3-jira-integration.md +71 -0
- package/docs/guide/en/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/en/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/en/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/en/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/en/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/en/settings/1-themes.md +37 -0
- package/docs/guide/en/settings/2-language.md +39 -0
- package/docs/guide/en/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/en/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/en/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/en/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/en/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/en/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/es/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/es/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/es/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/es/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/es/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/es/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/es/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/es/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/es/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/es/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/es/insights/3-code-explorer.md +50 -0
- package/docs/guide/es/integrations/1-ai-providers.md +64 -0
- package/docs/guide/es/integrations/2-plugins.md +44 -0
- package/docs/guide/es/integrations/3-jira-integration.md +71 -0
- package/docs/guide/es/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/es/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/es/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/es/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/es/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/es/settings/1-themes.md +37 -0
- package/docs/guide/es/settings/2-language.md +39 -0
- package/docs/guide/es/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/es/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/es/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/es/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/es/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/es/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/fr/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/fr/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/fr/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/fr/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/fr/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/fr/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/fr/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/fr/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/fr/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/fr/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/fr/insights/3-code-explorer.md +50 -0
- package/docs/guide/fr/integrations/1-ai-providers.md +64 -0
- package/docs/guide/fr/integrations/2-plugins.md +44 -0
- package/docs/guide/fr/integrations/3-jira-integration.md +71 -0
- package/docs/guide/fr/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/fr/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/fr/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/fr/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/fr/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/fr/settings/1-themes.md +37 -0
- package/docs/guide/fr/settings/2-language.md +39 -0
- package/docs/guide/fr/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/fr/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/fr/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/fr/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/fr/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/fr/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/it/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/it/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/it/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/it/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/it/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/it/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/it/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/it/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/it/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/it/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/it/insights/3-code-explorer.md +50 -0
- package/docs/guide/it/integrations/1-ai-providers.md +64 -0
- package/docs/guide/it/integrations/2-plugins.md +44 -0
- package/docs/guide/it/integrations/3-jira-integration.md +71 -0
- package/docs/guide/it/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/it/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/it/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/it/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/it/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/it/settings/1-themes.md +37 -0
- package/docs/guide/it/settings/2-language.md +39 -0
- package/docs/guide/it/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/it/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/it/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/it/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/it/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/it/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/ja/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/ja/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/ja/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/ja/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/ja/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/ja/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/ja/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/ja/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/ja/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/ja/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/ja/insights/3-code-explorer.md +50 -0
- package/docs/guide/ja/integrations/1-ai-providers.md +64 -0
- package/docs/guide/ja/integrations/2-plugins.md +44 -0
- package/docs/guide/ja/integrations/3-jira-integration.md +71 -0
- package/docs/guide/ja/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/ja/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/ja/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/ja/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/ja/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/ja/settings/1-themes.md +37 -0
- package/docs/guide/ja/settings/2-language.md +39 -0
- package/docs/guide/ja/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/ja/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/ja/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/ja/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/ja/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/ja/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/pt/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/pt/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/pt/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/pt/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/pt/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/pt/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/pt/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/pt/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/pt/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/pt/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/pt/insights/3-code-explorer.md +50 -0
- package/docs/guide/pt/integrations/1-ai-providers.md +64 -0
- package/docs/guide/pt/integrations/2-plugins.md +44 -0
- package/docs/guide/pt/integrations/3-jira-integration.md +71 -0
- package/docs/guide/pt/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/pt/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/pt/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/pt/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/pt/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/pt/settings/1-themes.md +37 -0
- package/docs/guide/pt/settings/2-language.md +39 -0
- package/docs/guide/pt/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/pt/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/pt/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/pt/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/pt/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/pt/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/guide/zh/agents/1-meet-the-agents.md +38 -0
- package/docs/guide/zh/agents/2-profiles-and-the-balanced-default.md +45 -0
- package/docs/guide/zh/agents/3-customizing-models-per-agent.md +60 -0
- package/docs/guide/zh/agents/4-custom-agents-catalog.md +43 -0
- package/docs/guide/zh/getting-started/1-what-is-specrails.md +49 -0
- package/docs/guide/zh/getting-started/2-installing-and-first-run.md +42 -0
- package/docs/guide/zh/getting-started/3-adding-your-first-project.md +58 -0
- package/docs/guide/zh/getting-started/4-the-dashboard-tour.md +53 -0
- package/docs/guide/zh/insights/1-analytics-and-cost-tracking.md +78 -0
- package/docs/guide/zh/insights/2-the-integrated-terminal.md +46 -0
- package/docs/guide/zh/insights/3-code-explorer.md +50 -0
- package/docs/guide/zh/integrations/1-ai-providers.md +64 -0
- package/docs/guide/zh/integrations/2-plugins.md +44 -0
- package/docs/guide/zh/integrations/3-jira-integration.md +71 -0
- package/docs/guide/zh/integrations/4-mobile-companion.md +38 -0
- package/docs/guide/zh/pipeline/1-rails-and-jobs.md +94 -0
- package/docs/guide/zh/pipeline/2-the-job-detail-view.md +90 -0
- package/docs/guide/zh/pipeline/3-batch-implement-and-multi-feature.md +78 -0
- package/docs/guide/zh/pipeline/4-picking-an-engine-per-rail.md +60 -0
- package/docs/guide/zh/settings/1-themes.md +37 -0
- package/docs/guide/zh/settings/2-language.md +39 -0
- package/docs/guide/zh/settings/3-pipeline-telemetry-and-diagnostics.md +46 -0
- package/docs/guide/zh/settings/4-where-your-data-lives.md +48 -0
- package/docs/guide/zh/specs/1-specs-and-the-backlog.md +52 -0
- package/docs/guide/zh/specs/2-add-spec-quick-mode.md +45 -0
- package/docs/guide/zh/specs/3-add-spec-explore-mode.md +68 -0
- package/docs/guide/zh/specs/4-drafts-and-contract-layer.md +81 -0
- package/docs/internals/README.md +1 -1
- package/docs/internals/adding-a-provider.md +192 -59
- package/docs/internals/api-reference.md +130 -21
- package/docs/internals/architecture.md +22 -9
- package/docs/internals/bundled-framework-build-plan.md +264 -0
- package/docs/internals/configuration.md +33 -8
- package/docs/internals/global-artifacts-alignment-contract.md +486 -0
- package/docs/internals/global-artifacts-relocation-evaluation.md +294 -0
- package/docs/internals/operations-runbook.md +16 -5
- package/docs/internals/profiles.md +42 -14
- package/docs/platforms/macos.md +27 -8
- package/docs/platforms/windows.md +20 -6
- package/docs/running-pipelines.md +17 -9
- package/docs/terminal.md +9 -3
- package/docs/tracking-cost.md +17 -11
- package/package.json +1 -1
- package/server/dist/agent-refine-manager.js +20 -5
- package/server/dist/artifact-registry.js +468 -0
- package/server/dist/attachment-manager.js +5 -8
- package/server/dist/browser-capture-manager.js +4 -4
- package/server/dist/bundled-core.js +72 -0
- package/server/dist/bundled-openspec.js +58 -0
- package/server/dist/chat-manager.js +42 -5
- package/server/dist/code-explorer-router.js +10 -7
- package/server/dist/config.js +7 -2
- package/server/dist/context-budget.js +17 -6
- package/server/dist/context-scope.js +6 -2
- package/server/dist/contract-refine-runner.js +31 -9
- package/server/dist/desktop-router.js +24 -1
- package/server/dist/docs-router.js +210 -132
- package/server/dist/file-summary-manager.js +41 -16
- package/server/dist/framework-manager.js +248 -0
- package/server/dist/framework-migration.js +308 -0
- package/server/dist/index.js +30 -0
- package/server/dist/install-config-path.js +73 -0
- package/server/dist/jira/jira-sync-manager.js +23 -11
- package/server/dist/openspec-shim.js +153 -0
- package/server/dist/plugins-router.js +19 -8
- package/server/dist/profiles-router.js +38 -16
- package/server/dist/project-registry.js +101 -3
- package/server/dist/project-router-chat.js +1 -1
- package/server/dist/project-router-helpers.js +25 -12
- package/server/dist/project-router-jobs.js +3 -3
- package/server/dist/project-router-settings.js +8 -6
- package/server/dist/project-router-setup.js +27 -10
- package/server/dist/project-router-spending.js +6 -1
- package/server/dist/project-router-tickets.js +30 -10
- package/server/dist/project-router.js +16 -1
- package/server/dist/queue-manager.js +149 -18
- package/server/dist/setup-manager.js +131 -29
- package/server/dist/smash-runner.js +21 -6
- package/server/dist/ticket-store.js +6 -2
- package/server/dist/ticket-watcher.js +5 -1
- package/server/dist/vitest-setup.js +25 -0
- package/server/dist/workspace-manager.js +199 -0
- package/server/dist/workspace-resolution.js +147 -0
- package/client/dist/assets/index-DgKfQFcf.css +0 -2
- package/client/dist/assets/setup-BIIkb-_K.js +0 -1
- package/client/dist/assets/setup-BeQxu9kD.js +0 -1
- package/client/dist/assets/setup-CPa6GnlI.js +0 -1
- package/client/dist/assets/setup-CZl4OEJx.js +0 -1
- package/client/dist/assets/setup-ChpodNfn.js +0 -1
- package/client/dist/assets/setup-D_fjJH6u.js +0 -1
- package/client/dist/assets/setup-YzD8DX4O.js +0 -1
- package/client/dist/assets/setup-fRpDozmq.js +0 -1
- package/docs/adding-a-provider.md +0 -107
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# レールとジョブ
|
|
2
|
+
|
|
3
|
+
ボードにスペックがそろいました。ここからが、それを実際のコードに変えていく場所です。**レール**は、スペックをパイプライン全体(Architect → Developer → Reviewer → Ship)に通していくためのレーンで、本物の AI エージェントをあなたのプロジェクトディレクトリの中で動かします。このページでは、レールの起動、ジョブのキュー、そして作業がライブで進んでいく様子の見方を紹介します。
|
|
4
|
+
|
|
5
|
+
## レールとは
|
|
6
|
+
|
|
7
|
+
画面が左右に分かれているところを思い浮かべてください。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
SpecsBoard(左) レール(右)
|
|
11
|
+
───────────────── ─────────────────
|
|
12
|
+
#1 Login flow ─┐
|
|
13
|
+
#2 Webhook retry │ ドラッグして
|
|
14
|
+
#3 Cost limits │ ────────────► レール 1 ▶ Play
|
|
15
|
+
#4 Audit log │
|
|
16
|
+
└────────────► レール 2 ▶ Play
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
レールは**実行レーン**です。SpecsBoard からスペックカードをレールにドラッグし、**▶ Play** を押します。するとレールがパイプラインを起動し、あなたのプロジェクトの作業ディレクトリの中で、ファイルの編集やテストの実行まで含めて、スペックを最初から最後までやり遂げます。
|
|
20
|
+
|
|
21
|
+
レールは複数持てるので、名前付きのレーンとして作業を整理できます(いま集中している機能用のレールと、その後ろに控えさせておくレールといった具合に)。複数レールやバッチ処理については [バッチ実装とマルチフィーチャー](batch-implement-and-multi-feature) で詳しく説明します。
|
|
22
|
+
|
|
23
|
+
## スペックでレールを起動する
|
|
24
|
+
|
|
25
|
+
1. **スペックカードをドラッグ**して、SpecsBoard からレールへ移します。スペックの ID がそのレールのスペック一覧に表示されます。(ドラッグが苦手ですか? スペックカードの **レールに移動** ポップオーバーを使えば、レールごとにステータスのドットが表示されるので、ふさがっているレーンに作業を落としてしまう心配がありません。)
|
|
26
|
+
2. デフォルト以外にしたいときは、**モードを選びます** — レールヘッダーのセグメントコントロールで `Implement`、`Batch`、そして(Claude レール限定で)`Ultra` を選べます。
|
|
27
|
+
3. **▶ Play を押します。**
|
|
28
|
+
|
|
29
|
+
これだけです。レールがあなたのプロジェクト内で AI CLI プロセスを立ち上げ、パイプラインを開始します。
|
|
30
|
+
|
|
31
|
+
### レールヘッダーにあるもの
|
|
32
|
+
|
|
33
|
+
| コントロール | 役割 |
|
|
34
|
+
|---------|--------------|
|
|
35
|
+
| **ステータスピル** | `idle`、`running`、`failed` のいずれか。「completed」という別ステータスはありません — ジョブがきれいに完了すると、レールは `idle` に戻ります。 |
|
|
36
|
+
| **スペック一覧** | このレールに割り当てられた ID。さらにドラッグして追加したり、ドラッグして外したりできます。 |
|
|
37
|
+
| **モードコントロール** | `Implement` / `Batch` / `Ultra` — 下の表を参照してください。レールごとに保持されます。 |
|
|
38
|
+
| **プロファイルピッカー** | どのエージェントプロファイルを実行するか(Claude レール限定)。プロジェクトにプロファイルが 1 つ以上あるときだけ表示されます。 |
|
|
39
|
+
| **エンジンセレクター** | このレールをどのインストール済みプロバイダーで実行するか — Claude、Codex、Gemini。プロジェクトに複数のプロバイダーがある場合だけ表示されます。[レールごとのエンジン選択](picking-an-engine-per-rail) を参照してください。 |
|
|
40
|
+
| **▶ Play / ■ Stop** | 開始またはキャンセル。 |
|
|
41
|
+
|
|
42
|
+
### 3 つのレールモード
|
|
43
|
+
|
|
44
|
+
| モード | コマンド | 役割 |
|
|
45
|
+
|------|---------|--------------|
|
|
46
|
+
| **Implement** | `/specrails:implement` | レール上のすべてのスペックをまとめた 1 つのジョブ。Architect → Developer → Reviewer → Ship のフルパイプラインを実行します。日常的に使うデフォルトです。 |
|
|
47
|
+
| **Batch** | `/specrails:batch-implement` | レール上のスペックを、依存関係を考慮したウェーブで順番に処理する 1 つのジョブ。関連する複数のスペックに最適です。 |
|
|
48
|
+
| **Ultra** | Ultracode | Claude が各スペックをパイプラインを**バイパス**して自律的に実装します。スペックごとに独立したジョブが 1 つずつ作られます。Claude 専用。 |
|
|
49
|
+
|
|
50
|
+
Ultra は少し毛色が違います。エージェントチェーンを飛ばし、生のスペックを Claude に渡してネイティブツールで作業させます。自由度が高いぶん、Play を押すとまず確認ダイアログが開き、レールごとのモデルピッカーで Haiku / Sonnet / Opus を選べます。Ultra はレールのエンジンが Claude のときだけ表示されます。
|
|
51
|
+
|
|
52
|
+
## ジョブのキュー
|
|
53
|
+
|
|
54
|
+
Play を押すたびに、そのレールの実行は **ジョブ** になります。ぜひ頭に入れておいてほしい一番大事なルールがこれです。
|
|
55
|
+
|
|
56
|
+
> **1 プロジェクトにつき、同時に動くジョブは 1 つだけ。** 各プロジェクトはキューを 1 つ持っています。1 つのプロジェクト内では、レールのジョブは一度に 1 つしか実行されません — 残りはその後ろで待機し、スロットが空くと自動的に開始されます。
|
|
57
|
+
|
|
58
|
+
レールを 3 つ追加すれば並列で動くと思っていた人は、たいてい驚きます。同じプロジェクト内では並列にはなりません。レールを追加するのは作業をレーンに**整理する**ためで、それらのレーンを同時に走らせるためのものではありません。
|
|
59
|
+
|
|
60
|
+
**本当の並列処理はプロジェクトをまたいで行われます。** 各プロジェクトは独立したキューを持つので、プロジェクト A のレールとプロジェクト B のレールは、互いに競合することなく同時に動きます。もっとスループットがほしいですか? プロジェクトをもっと開きましょう。
|
|
61
|
+
|
|
62
|
+
調整できるグローバルな同時実行のつまみはありません。唯一の自動スロットルは予算ベースのものです。1 日の予算(プロジェクト単位またはアプリ全体)を設定していれば、その日の支出が上限に達した時点でキューが自動的に一時停止します。
|
|
63
|
+
|
|
64
|
+
## 実行を見守る
|
|
65
|
+
|
|
66
|
+
すべてのジョブは、プロジェクトの右サイドバーの **ジョブ** から確認できます — 新しいものが上に来るカードのリストです。各カードには、ステータスバッジ、プロファイルバッジ、優先度バッジ、所要時間、コスト、起動したコマンドが表示されます。リストの上部には次のものがあります。
|
|
67
|
+
|
|
68
|
+
- **ステータスフィルターチップ** — 指定したステータスのジョブだけを表示します。
|
|
69
|
+
- **日付範囲フィルター** — 期間で絞り込みます。
|
|
70
|
+
- **比較** — 2 つのジョブを選んで並べて表示します。
|
|
71
|
+
|
|
72
|
+
どれかのカードをクリックすると **ジョブ詳細ビュー** が開きます。ここにライブのストリーミングログとライブのメトリクスがあります。それが次のページ、[ジョブ詳細ビュー](the-job-detail-view) です。
|
|
73
|
+
|
|
74
|
+
## ジョブをキャンセルする
|
|
75
|
+
|
|
76
|
+
レールヘッダーの **■ Stop** をクリックします。アプリはサブプロセスに `SIGTERM` を送り、**5 秒間** クリーンな終了を待ってから `SIGKILL` します。中途半端に生成されたものが残ることはありません。
|
|
77
|
+
|
|
78
|
+
## レールが起動しないとき
|
|
79
|
+
|
|
80
|
+
CLI がマシンにインストールされていないエンジンを選ぶと、起動は壊れたジョブを始めるのではなく **即座に失敗** します — 何も生成されません。足りないプロバイダー CLI をインストールして([Codex を使う](../integrations/using-codex)、[Gemini を使う](../integrations/using-gemini))、もう一度起動してください。Claude や Codex が見つからない場合は「*<provider> CLI not found*」という正確なメッセージが出ます。Gemini が見つからない場合は現時点では一般的な起動エラーが表示されますが、結果は同じです。
|
|
81
|
+
|
|
82
|
+
## すべてを止める
|
|
83
|
+
|
|
84
|
+
何かおかしいと感じたら、
|
|
85
|
+
|
|
86
|
+
- **1 つのレール** — そのヘッダーの **■ Stop** をクリック。
|
|
87
|
+
- **予算による自動一時停止** — 1 日の予算を設定しておけば、その日の支出が上限に達した時点でキューが自動で一時停止します。
|
|
88
|
+
- **すべて** — デスクトップアプリを終了するか、`specrails-desktop stop` を実行します。
|
|
89
|
+
|
|
90
|
+
## 次に読むもの
|
|
91
|
+
|
|
92
|
+
- [ジョブ詳細ビュー](the-job-detail-view) — フェーズ、ライブメトリクス、チケットカード。
|
|
93
|
+
- [バッチ実装とマルチフィーチャー](batch-implement-and-multi-feature) — 複数のスペックをまとめて実行する。
|
|
94
|
+
- [レールごとのエンジン選択](picking-an-engine-per-rail) — Claude / Codex / Gemini の使い分け。
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# ジョブ詳細ビュー
|
|
2
|
+
|
|
3
|
+
**ジョブ** ページでどれかのジョブカードをクリックすると、ここにたどり着きます。1 回のレール実行のためのコックピットです。このビューはたった 1 つの約束を軸に作られています — **あなたが目にするライブの数値は本物であり、決して推測ではありません。** このページでは、フェーズ、ライブメトリクス、チケットカードをひととおり見ていきます。
|
|
4
|
+
|
|
5
|
+
## レイアウト
|
|
6
|
+
|
|
7
|
+
ストリーミングログ全体の上に、2 つのパネルが並びます。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
┌─────────────────────────────────────────────┐
|
|
11
|
+
│ ステータスヘッダー (アイコン · ライブ所要時間 · …) │
|
|
12
|
+
├─────────────────────────────────────────────┤
|
|
13
|
+
│ チケットヘッダー ( #12 #14 #15 ) │
|
|
14
|
+
├─────────────────────────────────────────────┤
|
|
15
|
+
│ │
|
|
16
|
+
│ ストリーミングログ (自動スクロール · 検索 · …) │
|
|
17
|
+
│ │
|
|
18
|
+
└─────────────────────────────────────────────┘
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## パイプラインのフェーズ
|
|
22
|
+
|
|
23
|
+
`Implement` と `Batch` のジョブでは、スラッシュコマンドが定義するフェーズに沿って実行が進みます — デフォルトでは次のとおりです。
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Architect ──► Developer ──► Reviewer ──► Ship
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
各フェーズは、レールのエンジンがあなたのプロジェクトディレクトリ内で呼び出す専用エージェントです。
|
|
30
|
+
|
|
31
|
+
| フェーズ | エージェント | 役割 |
|
|
32
|
+
|-------|-------|--------------|
|
|
33
|
+
| **Architect** | `sr-architect` | 実装を設計します。 |
|
|
34
|
+
| **Developer** | `sr-developer` | コードを書きます。 |
|
|
35
|
+
| **Reviewer** | `sr-reviewer` | 出力をレビューします。 |
|
|
36
|
+
| **Ship** | (状況による) | 最終仕上げ: テスト、コミット、PR ドラフト。 |
|
|
37
|
+
|
|
38
|
+
どのフェーズをどのエージェントが担当するかは、プロジェクトの **エージェントプロファイル** で決まります。基本の 3 つ(`sr-architect`、`sr-developer`、`sr-reviewer`)は常に存在し、プロファイル内のルーティングルールでエージェントを追加したり、あるフェーズを担当するエージェントを差し替えたりできます。フェーズの進捗バーは、コマンドが実際にフェーズを定義しているときだけ表示されます — パイプラインをバイパスする Ultracode ジョブでは表示されません。
|
|
39
|
+
|
|
40
|
+
## ライブメトリクス — 設計からして誠実
|
|
41
|
+
|
|
42
|
+
ステータスヘッダーが主役です。ステータスアイコン、ジョブが*いままさに*何をしているかを表すアクティビティ行、踏んだステップ数、そしてメトリクスの一行が表示されます。
|
|
43
|
+
|
|
44
|
+
| メトリクス | 本物の値が見えるタイミング |
|
|
45
|
+
|--------|------------------------------|
|
|
46
|
+
| **所要時間** | **ライブ。** ジョブの実行中、1 秒ごとのティッカーがカウントアップします — これが唯一、純粋にライブな数値です。 |
|
|
47
|
+
| **ターン数** | 届いたストリーミングのアシスタントイベントから逐次的に算出されます。 |
|
|
48
|
+
| **トークン** | 同じストリームから逐次的に集計されます(usage フィールドが欠けているイベントにも耐えます)。 |
|
|
49
|
+
| **コスト** | ジョブが終了するまで `—` と表示され、終了時に信頼できる `total_cost_usd` として明かされます。 |
|
|
50
|
+
|
|
51
|
+
設計思想はこうです — **実行中に概算値や推定値を出さない。** 所要時間が本物なのは、それがただの時計だからです。ターン数とトークンは、実際にストリーミングされたアクティビティから積み上げられます。コストは実行中はあえて推定しません — 保留として表示し、ジョブ終了時にプロバイダーが報告して初めて、最終的で信頼できる数値に確定します。数値が待機しているように見えるなら、それは意図したものです — あなたに見せているのは予測ではなく真実なのです。
|
|
52
|
+
|
|
53
|
+
ヘッダーのラベルとアイコンはジョブのステータスに対応し、このパネルは `running`、`completed`、`failed` のいずれのジョブでも描画されます — つまり、終わったジョブの詳細ビューでも、最終値で固定された同じメトリクスが見られます。
|
|
54
|
+
|
|
55
|
+
## チケットカード
|
|
56
|
+
|
|
57
|
+
**チケットヘッダー** は、ステータスヘッダーとログの間にあります。これはプレミアムな識別カードで、ジョブが触れたすべてのスペックのチップを表示します — 起動したコマンドから照合されるので、この実行がどのチケットに関するものだったかを正確に反映します。
|
|
58
|
+
|
|
59
|
+
- **2〜3 件のチケット** — チップのリストとして表示されます。
|
|
60
|
+
- **4 件以上** — コンパクトな `+ N more` 表示に折りたたまれ、展開用のシェブロンが付くので、ヘッダーがすっきりと保たれます。
|
|
61
|
+
|
|
62
|
+
チップをクリックすると、そのスペックの詳細が **ジョブページの上に重ねて** 開きます — 自分の居場所を見失うことも、ルートが変わることもありません。ジョブが何を届けるはずなのかを、作業を見守りながらサッと読み返すのに便利です。(タブレット幅の画面では、チケットモーダルを横にドラッグして 2 つのスペックを並べて比較することもできます。)
|
|
63
|
+
|
|
64
|
+
## ストリーミングログ
|
|
65
|
+
|
|
66
|
+
パネルの下には、WebSocket 越しにリアルタイムでストリーミングされる実行の全ログがあります。
|
|
67
|
+
|
|
68
|
+
- **自動スクロール** で最新の出力を視界に保ちます(上にスクロールすると一時停止するので、じっくり読めます)。
|
|
69
|
+
- **検索** でフレーズへジャンプできます。
|
|
70
|
+
- **コピー** でログ全体をつかめます。
|
|
71
|
+
|
|
72
|
+
これは AI が何をしているかの生の真実です — すべてのツール呼び出し、すべてのファイル編集、すべてのテスト実行が映ります。
|
|
73
|
+
|
|
74
|
+
## 診断のエクスポート
|
|
75
|
+
|
|
76
|
+
そのジョブで [テレメトリ](../settings/customizing) が有効になっていた場合、ヘッダーに **診断をエクスポート** ボタンが表示されます。クリックすると次のものを含む ZIP がダウンロードされます。
|
|
77
|
+
|
|
78
|
+
- `job-metadata.json` — コマンド、ステータス、プロファイル、プラグイン。
|
|
79
|
+
- `telemetry.ndjson` — 非圧縮の OTLP/JSON シグナル。
|
|
80
|
+
- `logs.txt` — ストリーミングログの全文。
|
|
81
|
+
- `summary.md` — 人が読みやすいハイライト。
|
|
82
|
+
- `profile.json`、`plugins.json` — 実際に動いたものの正確なスナップショット(存在する場合)。
|
|
83
|
+
|
|
84
|
+
実行内容を仲間と共有したり、正確なバグレポートを提出したりするのに便利です。
|
|
85
|
+
|
|
86
|
+
## 次に読むもの
|
|
87
|
+
|
|
88
|
+
- [レールとジョブ](rails-and-jobs) — 起動とキューイング。
|
|
89
|
+
- [バッチ実装とマルチフィーチャー](batch-implement-and-multi-feature) — 多数のスペックと依存ウェーブ。
|
|
90
|
+
- [コストの追跡](../analytics/tracking-cost) — ジョブごとのコストをプロジェクト分析へ。
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
# バッチ実装とマルチフィーチャー
|
|
2
|
+
|
|
3
|
+
1 つずつスペックを進めるのも悪くありませんが、実際の作業はまとまってやってくることが多いものです — ある機能とそのテストとマイグレーション、あるいは一気に片づけてしまいたいバックログ、といった具合に。このページでは、複数のスペックをまとめて実行する方法を扱います — バッチモード、依存ウェーブ、そして同時並行の作業が衝突しないようパイプラインがどう守っているか、です。
|
|
4
|
+
|
|
5
|
+
## 複数のスペックを一度に実行する
|
|
6
|
+
|
|
7
|
+
1 つのレールから大量のスペックを実行する一番シンプルな方法が **バッチ** モードです。
|
|
8
|
+
|
|
9
|
+
1. 実行したいスペックを**すべて 1 つのレールにドラッグ**します。そのレールのスペック一覧に積み上がっていきます。
|
|
10
|
+
2. **レールのモードを Batch に切り替えます**(レールヘッダーのセグメントコントロール)。
|
|
11
|
+
3. **▶ Play を押します。**
|
|
12
|
+
|
|
13
|
+
レールは **1 つ** の `/specrails:batch-implement` ジョブを起動し、割り当てられたすべてのスペックを順に処理します。他のジョブと同じようにジョブページで監視できます — スペックごとに別ジョブが立つのではなく、セット全体をカバーする 1 つのジョブです。
|
|
14
|
+
|
|
15
|
+
これが効いてくるのは、**1 プロジェクトにつきジョブは 1 つ** というキューがあるからです。プロジェクトは一度に 1 つのレールジョブしか実行しないので、バッチモードは複数のレールを抱え込んで一つひとつ空くのを待たずに、スペックのリストを*連鎖的に*処理する一番すっきりした方法でもあります。
|
|
16
|
+
|
|
17
|
+
### Implement と Batch — どちらのモード?
|
|
18
|
+
|
|
19
|
+
| | **Implement** | **Batch** |
|
|
20
|
+
|---|---|---|
|
|
21
|
+
| コマンド | `/specrails:implement` | `/specrails:batch-implement` |
|
|
22
|
+
| ジョブあたりのスペック | レール上のすべてを 1 つの作業単位として扱う | レール上のすべてを**順番に**処理 |
|
|
23
|
+
| 向いている場面 | 密に結合した 1 つの変更 | 順番に片づけたい複数の独立した機能 |
|
|
24
|
+
| 順序 | 該当なし | 依存関係を考慮したウェーブ(下記参照) |
|
|
25
|
+
|
|
26
|
+
スペックが本当に 1 つの変更なら **Implement** を使ってください。別々の機能のリストなら **Batch** を使って、順序づけは任せてしまいましょう。
|
|
27
|
+
|
|
28
|
+
## 依存ウェーブ
|
|
29
|
+
|
|
30
|
+
バッチモードはスペックを上から下へ流すだけではありません — **依存関係を考慮した実行順序** を計算し、スペックを*ウェーブ*にまとめます。オーケストレーター(`/specrails:batch-implement`)がどのスペックがどのスペックに依存するかを見極め、土台となる作業より先に何も走らないようにスケジュールします。
|
|
31
|
+
|
|
32
|
+
イメージとしては、
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
ウェーブ 1: #2 (データモデル) ← 依存なし、最初に実行
|
|
36
|
+
ウェーブ 2: #4 (モデル上の API) ← #2 を待つ
|
|
37
|
+
#5 (モデル上の CLI) ← #2 を待つ
|
|
38
|
+
ウェーブ 3: #7 (全体のドキュメント) ← #4 と #5 を待つ
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
ジョブ内では、各ウェーブのスペックが実装されてから次のウェーブが始まります。これを手で設定する必要はありません — オーケストレーターがスペックそのものからウェーブを導き出します。その様子は [ジョブ詳細ビュー](the-job-detail-view) で見られます。ストリーミングログがバッチがいまどのスペックに取り組んでいるかを語り、チケットヘッダーがジョブの触れたすべてのスペックを表示します。
|
|
42
|
+
|
|
43
|
+
## ワークツリーの隔離
|
|
44
|
+
|
|
45
|
+
複数のスペックが 1 回の実行で実装されるとき、パイプラインは各作業単位を隔離し、同時または逐次の変更が互いのファイルを踏み荒らさないようにします。バッチオーケストレーターは各スペックの実装を、それ専用のクリーンな作業コンテキストで走らせ、その結果を統合します — だから、途中までしかできていないスペックが、次のスペックから見える壊れた中間状態をツリーに残すことはありません。
|
|
46
|
+
|
|
47
|
+
実際のところ、これは次を意味します。
|
|
48
|
+
|
|
49
|
+
- 各スペックは、前のスペックの進行中の編集を途中から引き継ぐのではなく、まっさらな状態から実装に取りかかれます。
|
|
50
|
+
- レビューと ship ステップは、動く標的ではなく、一貫したスナップショットに対して動作します。
|
|
51
|
+
- あるウェーブでの失敗は封じ込められます — すでに ship 済みのスペックを密かに壊すことはありません。
|
|
52
|
+
|
|
53
|
+
アプリはジョブごとに、どのファイルが触れられ、どのチケットがそれに触れたかを正確に記録します(これは **コード** セクションでは provenance チップとして、各スペックの詳細モーダルでは「このチケットが触れたファイル」リストとして表面化します)。この帰属づけこそが、複数スペックの実行を信頼できるものにしています — ファイルの変更を、それを引き起こしたスペックまでいつでもたどれるのです。
|
|
54
|
+
|
|
55
|
+
## プロジェクトをまたいだマルチフィーチャー
|
|
56
|
+
|
|
57
|
+
本物の並列処理がほしいなら — 大きな機能を 2 つ同時にビルドしたいなら — 1 つのプロジェクト内のレールにまたがせるのではなく、**プロジェクトをまたいで** 分けてください。各プロジェクトは独立したキューを持つので、
|
|
58
|
+
|
|
59
|
+
```
|
|
60
|
+
プロジェクト A ▶ 機能 X を実行中のレール ┐
|
|
61
|
+
├─ 同時に実行
|
|
62
|
+
プロジェクト B ▶ 機能 Y を実行中のレール ┘
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
グローバルな同時実行の上限はなく、プロジェクト間の競合もありません。両方を開き、それぞれでレールを起動すれば、いっしょに進みます。共有されるスロットルは予算上限だけで、その日の支出が上限に達するとプロジェクト単位またはアプリ全体でキューを一時停止します。
|
|
66
|
+
|
|
67
|
+
## 大きなバッチのためのヒント
|
|
68
|
+
|
|
69
|
+
- **関連するスペックを 1 つのレールにまとめてから** Batch に切り替えてください — 依存ウェーブはそのレール上にあるものしか見ません。
|
|
70
|
+
- 大きなバッチの前に **1 日の予算を設定** しておけば、思いがけず高くついた実行が暴走せず自動で一時停止します。[予算](../settings/customizing) から設定できます。
|
|
71
|
+
- 実行後にジョブページの **比較ボタン** を使えば、2 つのバッチ実行を並べて差分を確認できます。
|
|
72
|
+
- (テレメトリが有効だった場合は)**診断をエクスポート** すれば、バッチ全体の正確なプロファイル + プラグインのスナップショットが手に入ります。
|
|
73
|
+
|
|
74
|
+
## 次に読むもの
|
|
75
|
+
|
|
76
|
+
- [レールとジョブ](rails-and-jobs) — キューモデルを掘り下げて。
|
|
77
|
+
- [ジョブ詳細ビュー](the-job-detail-view) — バッチ実行をライブで見守る。
|
|
78
|
+
- [レールごとのエンジン選択](picking-an-engine-per-rail) — Batch はどのプロバイダーでも動きますが、Ultra は Claude 専用である点に注意。
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# レールごとのエンジン選択
|
|
2
|
+
|
|
3
|
+
Specrails desktop は **Claude Code**、**Codex CLI**、**Gemini CLI** をいずれも一級のエンジンとして扱います。プロジェクトには 1 つ、2 つ、あるいは 3 つすべてをインストールできます — そして複数がある場合は、各レールをどのエンジンで実行するかをあなたが選びます。このページでは、レールごとのエンジンセレクターと、それぞれをどんなときに選ぶべきかを扱います。
|
|
4
|
+
|
|
5
|
+
## セレクターが現れるとき
|
|
6
|
+
|
|
7
|
+
**エンジンセレクター** はレールヘッダーの、モードコントロールのすぐ隣にあります。プロジェクトに **複数の** プロバイダーがインストールされているときだけ表示されます。
|
|
8
|
+
|
|
9
|
+
> **単一プロバイダーのプロジェクトはバイト単位で同じ挙動になります。** プロジェクトにエンジンが 1 つしかなければ、セレクターは表示されず、プロバイダー選択まわりは何も変わりません — そのエンジンで実行されるだけです。セレクターはあくまで複数プロバイダーのプロジェクトのためのものです。
|
|
10
|
+
|
|
11
|
+
セレクターが表示される場合、あなたの選択は **レールごと、起動ごと** です — レールごとに別のエンジンを動かせますし、選んだエンジンはプロジェクト単位で記憶されます(既定はプロジェクトの主エンジン)。
|
|
12
|
+
|
|
13
|
+
## エンジンの選び方
|
|
14
|
+
|
|
15
|
+
1. レールのエンジンセレクターが表示されていることを確認します(プロジェクトにプロバイダーが 2 つ以上)。
|
|
16
|
+
2. クリックして **Claude**、**Codex**、**Gemini** のいずれかを選びます。
|
|
17
|
+
3. **▶ Play** でレールを起動します。
|
|
18
|
+
|
|
19
|
+
選んだエンジンが、そのレールのパイプラインの全フェーズを実行します。選んだエンジンの CLI がインストールされていない場合、起動は即座に失敗します — 何も生成されません。足りない CLI をインストールして、もう一度試してください。
|
|
20
|
+
|
|
21
|
+
## それぞれのエンジンが得意なこと
|
|
22
|
+
|
|
23
|
+
3 つすべてが、標準の **Implement** と **Batch** のパイプラインを実行します。選び方の実用的なガイドはこちらです。
|
|
24
|
+
|
|
25
|
+
| エンジン | こんなときに | 補足 |
|
|
26
|
+
|--------|--------------------|-------|
|
|
27
|
+
| **Claude** | フルの機能セットがほしいとき: エージェントプロファイル、Ultracode、ネイティブのコスト報告、最も充実したツールサポート。たいていの作業のデフォルト。 | **エージェントプロファイル**、**Ultracode**、いくつかの Claude 専用スペック機能(Contract Layer、SMASH)をサポートする唯一のエンジン。 |
|
|
28
|
+
| **Codex** | OpenAI Codex CLI を好むとき、あるいはプロバイダー間で実装を比べたいとき。 | `codex` ≥ 0.128.0。ネイティブのコスト報告なし — アプリが料金表からコストを補います。プロファイルは適用されません。 |
|
|
29
|
+
| **Gemini** | Google の Gemini CLI を使いたいとき、ネイティブのテレメトリがほしいとき、あるいは日常的なスペックを安く実行したいとき。 | `gemini` ≥ 0.11.0(`GEMINI_API_KEY` を設定)。ネイティブの OTLP テレメトリ。プロファイルは適用されません。 |
|
|
30
|
+
|
|
31
|
+
### Claude 専用の機能
|
|
32
|
+
|
|
33
|
+
いくつかの機能は Claude レールでしか動きません — 必要なら Claude を選んでください。
|
|
34
|
+
|
|
35
|
+
- **エージェントプロファイル** — エージェントごとのモデルルーティング。Codex や Gemini のレールでは、実行は常にレガシーモードになり、選んだプロファイルは **無視されます**。プロファイルピッカーは Claude 以外のエンジンでは非表示になります。
|
|
36
|
+
- **Ultracode(`Ultra` モード)** — 自律的でパイプラインをバイパスするモード。`Ultra` セグメントと、その Haiku/Sonnet/Opus のモデルピッカーは、レールのエンジンが Claude のときだけ表示されます。
|
|
37
|
+
- **Contract Layer と SMASH** — Claude 専用のスペック改良機能(これらはレールのオプションではなく Add-Spec のオプションですが、同じ制約が当てはまります)。
|
|
38
|
+
|
|
39
|
+
プロジェクトが複数のエンジンを混在させると、右サイドバーにはインストール済みの **すべての** プロバイダーがサポートするセクションだけが表示されます — つまり、Claude 以外のプロバイダーを含むプロジェクトでは **エージェント** セクションがまるごと消えます。プロファイルは Claude 固有のものだからです。
|
|
40
|
+
|
|
41
|
+
## 実用的なワークフロー
|
|
42
|
+
|
|
43
|
+
複数プロバイダーのプロジェクトは、**比較** や **コスト調整** をしたいときに真価を発揮します。
|
|
44
|
+
|
|
45
|
+
- **実装を比較する。** 同じスペックを 2 つのレールに乗せ、一方を Claude、もう一方を Codex に設定して両方を起動し(プロジェクトをまたいで、あるいは同じプロジェクトのキューで一つずつ)、ジョブページの **比較** ボタンで結果を差分表示します。
|
|
46
|
+
- **スペック単位でコスト調整する。** 重要なスペックは `max` プロファイルの Claude で、日常的なクリーンアップ系のスペックは Gemini で実行して支出を抑えます。`/analytics` をエンジンで絞り込めば、内訳が見られます。
|
|
47
|
+
- **賢くデフォルトを決める。** 一番よく使うエンジンをプロジェクトの主エンジンに設定してレールがそれを既定にするようにし、特定のスペックが別のエンジンを必要とするときだけレールごとに切り替えます。
|
|
48
|
+
|
|
49
|
+
## 覚えておきたいこと
|
|
50
|
+
|
|
51
|
+
- **プロバイダーの選択はプロジェクト作成後は変更できません**(v1)。インストールするプロバイダーはプロジェクトを追加するときに選びます。あとから追加・削除する設定トグルはありません。
|
|
52
|
+
- **コストは常に追跡されます。** ネイティブのコスト報告を持たないエンジンでも、アプリが料金表にフォールバックするので、Codex や Gemini の実行も [分析](../analytics/tracking-cost) に表示されます。
|
|
53
|
+
- **ターミナルの「Open AI CLI」ボタン** も、複数プロバイダーのプロジェクトではプロバイダーピッカーを表示します。自分の手で CLI を動かしたいときにどうぞ。
|
|
54
|
+
|
|
55
|
+
## 次に読むもの
|
|
56
|
+
|
|
57
|
+
- [Codex を使う](../integrations/using-codex) — インストールとサインイン。
|
|
58
|
+
- [Gemini を使う](../integrations/using-gemini) — インストール、`GEMINI_API_KEY`、テレメトリ。
|
|
59
|
+
- [レールとジョブ](rails-and-jobs) — キューと起動の流れ。
|
|
60
|
+
- [コストの追跡](../analytics/tracking-cost) — エンジンごとのコスト内訳。
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# テーマ
|
|
2
|
+
|
|
3
|
+
Specrails を、あなた好みの見た目に。アプリには丁寧に調整された 5 つのテーマが標準で用意されていて、いつでも一瞬で切り替えられます。再起動も、リビルドも、面倒な設定もいりません。
|
|
4
|
+
|
|
5
|
+
## 5 つの組み込みテーマ
|
|
6
|
+
|
|
7
|
+
| テーマ | 雰囲気 |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| **Specrails** | デフォルト。バランスが取れていて落ち着いた、ブランドに沿ったトーン。 |
|
|
10
|
+
| **Dracula** | 定番のダークパープル。夜でも目にやさしい配色です。 |
|
|
11
|
+
| **Aurora Light** | 明るく軽やかなライトテーマ。日中の作業にぴったり。 |
|
|
12
|
+
| **Obsidian Dark** | 深く、コントラストの高いダークモード。 |
|
|
13
|
+
| **Matrix** | 黒地に緑の文字。メインフレームに入り込んだような気分を味わいたいときに。 |
|
|
14
|
+
|
|
15
|
+
## 切り替え方
|
|
16
|
+
|
|
17
|
+
1. **Settings**(アプリ全体の設定モーダル)を開きます。
|
|
18
|
+
2. **外観** セクションに移動します。
|
|
19
|
+
3. テーマを選びます。アプリ全体に即座に適用されます。
|
|
20
|
+
|
|
21
|
+
これだけです。クリックしたその瞬間に変更が反映され、インターフェースがその場で新しい見た目に切り替わります。
|
|
22
|
+
|
|
23
|
+
## どこに適用されるか
|
|
24
|
+
|
|
25
|
+
テーマの選択は **アプリ全体** に適用され、プロジェクトごとの設定ではありません。どのプロジェクトも、どのページも、どのパネルも、同じテーマに従います。さらに、思いがけない場所にも反映されます。
|
|
26
|
+
|
|
27
|
+
- **ターミナルパネル** はその場で色が変わります。スクロールバックや実行中のシェルセッションはそのまま保たれます。
|
|
28
|
+
- 分析ページの **チャート** も合わせて色味が調整されます。
|
|
29
|
+
- Code ビューアの **コードのシンタックスハイライト** もテーマに従います。
|
|
30
|
+
|
|
31
|
+
## 選択は記憶されます
|
|
32
|
+
|
|
33
|
+
選んだテーマはアプリに保存されるので、再起動しても引き継がれます。アプリの起動直後に一瞬だけ違う色がちらつくことのないよう、Specrails はインターフェースの読み込みが終わる前に保存済みのテーマを適用します。だから最初の 1 フレーム目から、正しい見た目で表示されます。
|
|
34
|
+
|
|
35
|
+
## 気になる方へ
|
|
36
|
+
|
|
37
|
+
テーマは、固定の色を直接埋め込むのではなく、ごく少数の意味づけされた色の役割(「アクセント」色や「サーフェス」色など)の上に作られています。次のテーマを簡単に追加できるのも、どのテーマも内部的に一貫しているのも、このおかげです。それぞれのテーマは、これらの役割を別の色に割り当て直しているだけなのです。使ううえでこうした仕組みを意識する必要はまったくありません。テーマ切り替えがこれほど滑らかに感じられる、その理由というだけの話です。
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 言語
|
|
2
|
+
|
|
3
|
+
Specrails は、あなたの言語で話します。インターフェースは 8 つの言語に完全対応していて、初期状態ではお使いのコンピューターの言語設定にそのまま合わせます。だからほとんどの方は、初回起動の時点で正しい言語で表示されます。
|
|
4
|
+
|
|
5
|
+
## 対応言語
|
|
6
|
+
|
|
7
|
+
- English
|
|
8
|
+
- Español (Spanish)
|
|
9
|
+
- Français (French)
|
|
10
|
+
- Deutsch (German)
|
|
11
|
+
- Português (Portuguese)
|
|
12
|
+
- Italiano (Italian)
|
|
13
|
+
- 中文 (Chinese)
|
|
14
|
+
- 日本語 (Japanese)
|
|
15
|
+
|
|
16
|
+
## まずは OS の言語で始まります
|
|
17
|
+
|
|
18
|
+
Specrails を初めて開くと、OS の言語設定を確認して、対応している言語の中から最も近いものに合わせます。Mac や PC がスペイン語に設定されていればスペイン語で表示されますし、地域バリアント(`es-ES` や `zh-Hans-CN` など)が設定されている場合も、Specrails が自動的に適切な基本言語に対応づけます。
|
|
19
|
+
|
|
20
|
+
何も操作する必要はありません。言語設定にいっさい手を触れなければ、Specrails は OS の言語に従い続けます。あとからコンピューターの言語を変更すれば、Specrails もそれに追従します。
|
|
21
|
+
|
|
22
|
+
## 自分で言語を選ぶ
|
|
23
|
+
|
|
24
|
+
OS のデフォルトとは違う言語にしたいですか? 明示的に選択できます。
|
|
25
|
+
|
|
26
|
+
1. **Settings** を開きます。
|
|
27
|
+
2. **言語** セクションに移動します。
|
|
28
|
+
3. 言語を選びます。
|
|
29
|
+
|
|
30
|
+
切り替えは **即座** に行われます。再起動なしで、インターフェース全体が新しい言語で再描画されます。一度明示的に選択すると、Specrails はその選択を記憶して OS への追従をやめるので、アプリを開くたびにあなたの選んだ言語が尊重されます。
|
|
31
|
+
|
|
32
|
+
## 翻訳される範囲
|
|
33
|
+
|
|
34
|
+
インターフェースで目にするものすべて — ボタン、ラベル、ステータスメッセージ、ページタイトル、ダイアログ。日付も選んだ言語に合わせて整形されるので、その言語の流儀に沿った表示になります。
|
|
35
|
+
|
|
36
|
+
## 知っておくとよいこと
|
|
37
|
+
|
|
38
|
+
- **英語が元になる言語です。** 真新しい機能が翻訳の完了前にリリースされた場合、ところどころで一時的に英語のラベルが見えることがあります。続くアップデートで翻訳されます。
|
|
39
|
+
- 言語の選択は **アプリ全体** に適用され、すべてのプロジェクトで共通です。
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# パイプラインテレメトリと診断
|
|
2
|
+
|
|
3
|
+
パイプラインのジョブが思いどおりに進まなかったとき、テレメトリは AI CLI が実際に何をしたのかを、舞台裏まで詳しく記録して見せてくれます。**デフォルトはオフ** で、プロジェクトごとに完全に任意です。必要なときだけオンにしてください。
|
|
4
|
+
|
|
5
|
+
## テレメトリとは
|
|
6
|
+
|
|
7
|
+
テレメトリは、AI CLI がパイプラインのジョブを実行している間に発する構造化された診断シグナル(トレース、メトリクス、ログ)を記録します。パイプライン実行のフライトレコーダーのようなものだと考えてください。タイミング、トークン使用量、ステップごとの活動がローカルに記録されるので、ジョブを後から振り返って調べられます。
|
|
8
|
+
|
|
9
|
+
これは **OpenTelemetry** というオープンな標準フォーマットの上に作られています。だからデータが独自の閉じた仕組みに囲い込まれることはありません。
|
|
10
|
+
|
|
11
|
+
## オンにする
|
|
12
|
+
|
|
13
|
+
テレメトリは **プロジェクトごと** に設定します。
|
|
14
|
+
|
|
15
|
+
1. プロジェクトの **Settings** ページ(プロジェクト別の設定ルート)を開きます。
|
|
16
|
+
2. **パイプラインテレメトリ** のトグルを見つけます。
|
|
17
|
+
3. オンに切り替えます。
|
|
18
|
+
|
|
19
|
+
これ以降、そのプロジェクトのパイプラインジョブはテレメトリを記録します。ほかのプロジェクトには影響しません。プロジェクトごとに自分で決められます。
|
|
20
|
+
|
|
21
|
+
### 対象となるもの
|
|
22
|
+
|
|
23
|
+
テレメトリの対象は **パイプラインジョブ**(キューに入った Architect → Developer → Reviewer → Ship のレール実行)です。チャットやセットアップウィザードのような対話的なセッションは、あえて対象外にしています。テレメトリは、繰り返し実行できて検証できるパイプライン実行のためのもので、一度きりの会話のためのものではないからです。
|
|
24
|
+
|
|
25
|
+
## データの保存先
|
|
26
|
+
|
|
27
|
+
すべてはあなたのマシン上、ホームディレクトリ配下(`~/.specrails/`)にとどまり、リポジトリに入ることはありません。生の記録はそれぞれのジョブとともに圧縮して保存され、古い記録は 1 週間後に自動でコンパクトな要約にまとめられて、すっきりした状態が保たれます。これらを手作業で管理する必要は一切ありません。
|
|
28
|
+
|
|
29
|
+
## 診断バンドルのエクスポート
|
|
30
|
+
|
|
31
|
+
テレメトリで使える機能の中でいちばん役立つのが **診断のエクスポート** です。ジョブに関するあらゆる情報を 1 つの ZIP にまとめ、トラブルシューティングや共有に使えるようにします。
|
|
32
|
+
|
|
33
|
+
ジョブにテレメトリが記録されていると、そのジョブカードに **エクスポートボタン** が表示されます。クリックすると、次の内容を含む ZIP がダウンロードされます。
|
|
34
|
+
|
|
35
|
+
- **`job-metadata.json`** — ジョブの識別情報とパラメータ
|
|
36
|
+
- **`telemetry.ndjson`** — 記録された生のシグナル
|
|
37
|
+
- **`logs.txt`** — 取得されたログ出力
|
|
38
|
+
- **`summary.md`** — 人が読める実行サマリー
|
|
39
|
+
|
|
40
|
+
プロジェクトがプラグインを使用している場合は、そのジョブで有効だったプラグインのスナップショットもバンドルに含まれます。
|
|
41
|
+
|
|
42
|
+
このバンドルは、扱いにくい実行内容を理解したいとき、記録を残しておきたいとき、デバッグを手伝ってくれる人に詳細を渡したいときに取得するものです。
|
|
43
|
+
|
|
44
|
+
## オフにする
|
|
45
|
+
|
|
46
|
+
トグルはいつでもオフに戻せます。新しいジョブは直ちに記録をやめます。すでに記録済みのものは、コンパクト化されるか、プロジェクトを削除するまでディスク上に残ります。どこかに送信されることも、知らないうちに失われることもありません。
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# データの保存場所
|
|
2
|
+
|
|
3
|
+
手短に言うと、**Specrails はあなたのリポジトリをきれいなまま保ちます。** アプリをいずれかのプロジェクトに向けても、そこに住み着いたり、設定ファイルをあちこちに散らかしたり、頼んでいないものを勝手に書き換えたりはしません。あなたのコードはあなたのもののまま、きれいに保たれます。
|
|
4
|
+
|
|
5
|
+
## リポジトリはきれいなまま
|
|
6
|
+
|
|
7
|
+
Specrails 自身のファイル — データベース、プロジェクト別の状態、エージェント定義、設定、テレメトリ、要約、その他動作に必要なすべて — は、ホームディレクトリ配下の、すっきりまとまった 1 か所に置かれます。
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
~/.specrails/
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
このフォルダがアプリのプライベートなワークスペースです。プロジェクトレジストリ、プロジェクト別のデータベース、同梱ツール、運用に関わる細々したものはすべてここに置かれます。あなたの実際のコードリポジトリが、これらの置き場として使われることは決してありません。
|
|
14
|
+
|
|
15
|
+
つまり、こういうことです。
|
|
16
|
+
|
|
17
|
+
- リポジトリの `.gitignore` がアプリによって書き換えられることは **ありません**。
|
|
18
|
+
- リポジトリがツールの設定ファイルや隠しの状態ディレクトリで散らかることはありません。
|
|
19
|
+
- Specrails からプロジェクトを削除しても、コードの中に散らかったものが残ることはありません。
|
|
20
|
+
|
|
21
|
+
これまで、プロジェクトのあちこちにフォルダやファイルをこっそり追加するツールを使ってきた方にとって、これは意図的な方針転換です。Specrails は、リポジトリに向けて使い始めても、そのリポジトリの git 履歴にとっては **何も起きていないのと同じ** になるように作られています。
|
|
22
|
+
|
|
23
|
+
## 唯一コミットされるもの — それも意図的に
|
|
24
|
+
|
|
25
|
+
意図的な例外がちょうど 1 つだけあります。そしてそれこそがこのツールの核心です。**あなたの OpenSpec スペック** です。
|
|
26
|
+
|
|
27
|
+
スペックはあなたのリポジトリの中、次の場所に置かれます。
|
|
28
|
+
|
|
29
|
+
```
|
|
30
|
+
openspec/
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
これは意図的なものです。スペックは **成果物** です。何を作ると決めたのか、なぜそう決めたのかを、バージョン管理され、レビュー可能な形で記録したものです。スペックはコードの隣にあるべきもので、git で追跡され、プルリクエストで見え、チームで共有されます。それこそが価値です。スペックは使い捨ての一時的な状態ではなく、プロジェクトの歴史の一部なのです。
|
|
34
|
+
|
|
35
|
+
ですからルールはシンプルで、正直です。
|
|
36
|
+
|
|
37
|
+
- **`openspec/`** → リポジトリに置かれ、コミットされます。意図的にそうしています。
|
|
38
|
+
- **Specrails が必要とするその他すべて** → `~/.specrails/` 配下に置かれ、あなたの邪魔をしません。
|
|
39
|
+
|
|
40
|
+
## なぜこの仕組みなのか
|
|
41
|
+
|
|
42
|
+
Specrails は AI ツール群を自身のプライベートなワークスペース(`~/.specrails/` 配下)から実行し、本当に触れる必要があるもの — あなたのコードを読むこと、そして頼まれたスペックを書くこと — のためにだけ、あなたの実際のリポジトリに手を伸ばします。ツール群、フレームワーク定義、各種の記録は、すべてアプリのホームフォルダにとどまります。
|
|
43
|
+
|
|
44
|
+
あなたにとっての結論はこうです。プロジェクトを追加し、パイプラインを実行し、スペックを探求し、いろいろ試してみても、リポジトリの作業ツリーと git 履歴が変わるのは、あなたが予想できる範囲だけ — つまりコミットしたスペックと、パイプラインが書いたコードだけ、という安心感を持てます。それ以外のものが紛れ込むことはありません。
|
|
45
|
+
|
|
46
|
+
## プロジェクトを削除する
|
|
47
|
+
|
|
48
|
+
Specrails からプロジェクトを削除すると、アプリは `~/.specrails/` 配下にある自身のプロジェクト別の状態を片付けます。すでにリポジトリにコミットされたスペックは、本来あるべき場所 — あなたのリポジトリの中 — にそのまま残ります。それらはあなたのものだからです。
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# スペックとバックログ
|
|
2
|
+
|
|
3
|
+
**スペック**は、AI パイプラインが実装する作業の単位です。チケットのようなものだと考えてください。タイトル、やってほしいことの説明、優先度、そして任意のラベルで構成されます。パイプラインを起動すると、AI エージェントたちがこのスペックを読んでそれに沿って動きます。つまり、わかりやすいスペックこそが、よい結果を生むための一番大切な入力なのです。
|
|
4
|
+
|
|
5
|
+
アプリ内ではスペックを**チケット**と呼ぶこともありますが、どちらも同じものを指しています。
|
|
6
|
+
|
|
7
|
+
## ボード
|
|
8
|
+
|
|
9
|
+
どのプロジェクトも、開くとまず**ダッシュボード**が表示され、そこに**SpecsBoard**(プロジェクトのすべてのスペックの一覧)が並びます。これがあなたのバックログです。ここから新しいスペックを作成したり、優先度を設定したり、スペックをレールにドラッグして実装したり、作業が進むにつれて変わっていくステータスを眺めたりできます。
|
|
10
|
+
|
|
11
|
+
ボードには 2 つの表示モードがあり、ツールバーのトグルで切り替えられます。設定はプロジェクトごとに記憶されます。
|
|
12
|
+
|
|
13
|
+
- **付箋表示**(デフォルト)— 短い概要が添えられたカード形式のタイル。
|
|
14
|
+
- **リスト表示** — 1 行ずつのコンパクトな表示。
|
|
15
|
+
|
|
16
|
+
さらに**ステータス**(すべて / ToDo / 完了)や**ラベル**で絞り込んだり、**デフォルト**・**チケット #**・**優先度**で並べ替えたり(それぞれ昇順/降順を切り替え可能)できます。
|
|
17
|
+
|
|
18
|
+
## ステータス
|
|
19
|
+
|
|
20
|
+
スペックは、いくつかのステータスの間を移っていきます。ボードはそれぞれに一貫した視覚的な目印を付けてくれるので、バックログの状態をひと目で把握できます。
|
|
21
|
+
|
|
22
|
+
| ステータス | 意味 |
|
|
23
|
+
|--------|---------------|
|
|
24
|
+
| **下書き** | Explore の会話から保存した、作りかけのアイデア。まだ実装の準備はできていません。あとから戻ってきて、引き続き形にしていけます。`Draft` のピルが表示されます。 |
|
|
25
|
+
| **Todo** | これから着手できる状態。スペックを作り終えると、ここに着地します。 |
|
|
26
|
+
| **進行中** | パイプラインが現在作業中です(青い点が点滅します)。 |
|
|
27
|
+
| **完了** | パイプラインによって完了しました(緑のチェックマーク)。 |
|
|
28
|
+
| **キャンセル** | 取りやめになりました(赤い X)。 |
|
|
29
|
+
|
|
30
|
+
下書きは Todo のスペックと同じアクティブな枠に並びます(専用の列はありません)が、ほんのり色づいたボーダーと `Draft` ピルが付いているので、すぐに見分けられます。下書きについての詳しい話は[下書きと Contract Layer](drafts-and-contract-layer.md)をご覧ください。
|
|
31
|
+
|
|
32
|
+
## 優先度
|
|
33
|
+
|
|
34
|
+
下書き以外のすべてのスペックには、**クリティカル**・**高**・**中**・**低**のいずれかの優先度が付きます。優先度はあくまで整理のための道具で、次に何を実装するか決めたり、ボードを並べ替えたりするのに役立ちます。スペックを作成するときに設定でき、あとからでもスペックカードを右クリックして**優先度を設定**を選べばいつでも変更できます。
|
|
35
|
+
|
|
36
|
+
下書きだけは例外で、優先度をまったく持たないことができます。まだ作りかけのアイデアだからです。優先度は、下書きを本物のスペックとしてコミットしたときに確定します。
|
|
37
|
+
|
|
38
|
+
## スペックを作成する
|
|
39
|
+
|
|
40
|
+
スペックを作成するには、**追加**(SpecsBoard ツールバーのプラスボタン)をクリックします。**スペックを追加**ダイアログが開き、いくつかの方法から選べます。
|
|
41
|
+
|
|
42
|
+
- **クイックモード** — やりたいことを記述すると、AI が一発でスペック全文を書き上げます。[スペックを追加 — クイックモード](add-spec-quick-mode.md)を参照。
|
|
43
|
+
- **Explore モード** — AI と対話しながら、ターンを重ねてスペックを形にしていきます。[スペックを追加 — Explore モード](add-spec-explore-mode.md)を参照。
|
|
44
|
+
- **Raw モード** — 入力した内容がそのままスペックとして保存されます。AI は一切関与しません。すでにスペックの文章が手元にあるときに使ってください。
|
|
45
|
+
|
|
46
|
+
どれを選ぶかは、アイデアがどれだけ固まっているかによります。やりたいことがはっきり見えているならクイック、まだ考えをまとめている途中なら Explore、すでに文章があるなら Raw です。
|
|
47
|
+
|
|
48
|
+
## 次はこちら
|
|
49
|
+
|
|
50
|
+
- [スペックを追加 — クイックモード](add-spec-quick-mode.md) — アイデアを最速でスペックにする方法。
|
|
51
|
+
- [スペックを追加 — Explore モード](add-spec-explore-mode.md) — 対話しながらスペックを形にする。
|
|
52
|
+
- [下書きと Contract Layer](drafts-and-contract-layer.md) — 作りかけの作業を保存し、パイプライン向けにスペックを充実させる。
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# スペックを追加 — クイックモード
|
|
2
|
+
|
|
3
|
+
クイックモードは、やりたいことがすでにわかっているときのためのモードです。アイデアを入力すれば AI がスペック全文を書き上げ、**Todo** としてボードに着地します。やり取りは不要。記述したら、あとは進むだけです。
|
|
4
|
+
|
|
5
|
+
## クイックモードでスペックを作成する
|
|
6
|
+
|
|
7
|
+
すばやくスペックを作成するには、次の手順で進めます。
|
|
8
|
+
|
|
9
|
+
1. ダッシュボードで**追加**(SpecsBoard ツールバーのプラスボタン)をクリックします。
|
|
10
|
+
2. **クイック**モードを選びます。
|
|
11
|
+
3. テキスト欄にアイデアを入力します。一文でも一段落でも、伝わればかまいません。
|
|
12
|
+
4. クリックして生成します。
|
|
13
|
+
|
|
14
|
+
スペックの生成中は、画面の隅に小さなトーストが現れ、プロジェクト名・アイデアの抜粋・**経過時間**(「生成中… 0:12」)を表示します。完了すると、トーストは「<時間> で生成しました」に切り替わり、できたばかりのスペックへ直接ジャンプできる**表示**アクションが添えられます。
|
|
15
|
+
|
|
16
|
+
これがフロー全体です。ここから先はすべて、任意の微調整です。
|
|
17
|
+
|
|
18
|
+
## 調整できること
|
|
19
|
+
|
|
20
|
+
**モデル** — デフォルトでは AI が手頃なモデルを選びます。より速いモデルやより高性能なモデルを使いたい場合は、モデルピッカーからスペックごとに上書きできます。
|
|
21
|
+
|
|
22
|
+
**エンジン** — プロジェクトに複数の AI プロバイダー(Claude・Codex・Gemini のいずれかの組み合わせ)がインストールされている場合、ダイアログ上部にエンジンセレクターが現れ、このスペックをどのエンジンで生成するか選べます。選んだ内容はプロジェクトごとに記憶されます。プロバイダーが 1 つだけのプロジェクトでは、選ぶ余地がないため表示されません。
|
|
23
|
+
|
|
24
|
+
**コンテキスト** — クイックモードは通常 1 ターンで動きます。あなたの説明からスペックを書くだけなら、コードベースを読む必要がないからです。ただし、コンテキストスライダーを使えば、AI が参照できる材料を増やせます。
|
|
25
|
+
|
|
26
|
+
- 一番低い設定では、あなたの説明だけを読みます。
|
|
27
|
+
- 設定を上げていくと、既存のスペック、プロジェクトの OpenSpec スペック、さらにはコードベース全体まで読んでから書けるようになります。
|
|
28
|
+
|
|
29
|
+
与えるコンテキストが多いほど生成には時間がかかります(読み込みのためにマルチターンに切り替わります)が、その分スペックは実際のプロジェクトに根ざしたものになって返ってきます。実際のコードやファイル名、既存の挙動を参照する必要があるスペックでは、コンテキストを高めに設定するとよいでしょう。
|
|
30
|
+
|
|
31
|
+
**添付ファイル** — モックアップ・ブリーフ・データファイルをアイデア欄にドロップします。AI はそれらをスペック執筆の一部として読み取ります。(添付ファイルがあると、生成もマルチターンに切り替わります。)
|
|
32
|
+
|
|
33
|
+
**Contract Layer で強化** — 生成されるスペックに構造化されたブロックを追記するトグルです。これにより、下流のパイプラインが名前やデータの形を推測せずに済みます。任意の機能で、デフォルトはオフです。直前の選択はプロジェクトごとに記憶されます。何が追加されるのか、どんなときに価値があるのかは[下書きと Contract Layer](drafts-and-contract-layer.md)をご覧ください。
|
|
34
|
+
|
|
35
|
+
## クイックモードと Explore モードの使い分け
|
|
36
|
+
|
|
37
|
+
頭の中でアイデアがすでにはっきりしているとき(自分でスペックを書けるけれど、AI に任せたいだけのとき)は**クイック**を使いましょう。まだ考えをまとめている途中で、一緒に形にしてくれる相棒がほしいときは [**Explore**](add-spec-explore-mode.md) を使いましょう。
|
|
38
|
+
|
|
39
|
+
クイックモードで作成したスペックは、ごく普通のスペックです。あとから開いて、もう少し練りたくなったら Explore セッションで**編集を続ける**ことができます。
|
|
40
|
+
|
|
41
|
+
## 次はこちら
|
|
42
|
+
|
|
43
|
+
- [スペックを追加 — Explore モード](add-spec-explore-mode.md) — 形を整える必要があるスペック向け。
|
|
44
|
+
- [下書きと Contract Layer](drafts-and-contract-layer.md) — Contract Layer による強化の解説。
|
|
45
|
+
- [パイプラインを実行する](running-pipelines.md) — できたばかりのスペックをレールにドラッグして実装する。
|