@exaudeus/workrail 3.27.0 → 3.29.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/dist/console/assets/{index-FtTaDku8.js → index-BZ6HkxGf.js} +1 -1
- package/dist/console/index.html +1 -1
- package/dist/manifest.json +3 -3
- package/docs/README.md +57 -0
- package/docs/adrs/001-hybrid-storage-backend.md +38 -0
- package/docs/adrs/002-four-layer-context-classification.md +38 -0
- package/docs/adrs/003-checkpoint-trigger-strategy.md +35 -0
- package/docs/adrs/004-opt-in-encryption-strategy.md +36 -0
- package/docs/adrs/005-agent-first-workflow-execution-tokens.md +105 -0
- package/docs/adrs/006-append-only-session-run-event-log.md +76 -0
- package/docs/adrs/007-resume-and-checkpoint-only-sessions.md +51 -0
- package/docs/adrs/008-blocked-nodes-architectural-upgrade.md +178 -0
- package/docs/adrs/009-bridge-mode-single-instance-mcp.md +195 -0
- package/docs/adrs/010-release-pipeline.md +89 -0
- package/docs/architecture/README.md +7 -0
- package/docs/architecture/refactor-audit.md +364 -0
- package/docs/authoring-v2.md +527 -0
- package/docs/authoring.md +873 -0
- package/docs/changelog-recent.md +201 -0
- package/docs/configuration.md +505 -0
- package/docs/ctc-mcp-proposal.md +518 -0
- package/docs/design/README.md +22 -0
- package/docs/design/agent-cascade-protocol.md +96 -0
- package/docs/design/autonomous-console-design-candidates.md +253 -0
- package/docs/design/autonomous-console-design-review.md +111 -0
- package/docs/design/autonomous-platform-mvp-discovery.md +525 -0
- package/docs/design/claude-code-source-deep-dive.md +713 -0
- package/docs/design/console-cyberpunk-ui-discovery.md +504 -0
- package/docs/design/console-execution-trace-candidates-final.md +160 -0
- package/docs/design/console-execution-trace-candidates.md +211 -0
- package/docs/design/console-execution-trace-design-candidates-v2.md +113 -0
- package/docs/design/console-execution-trace-design-review.md +74 -0
- package/docs/design/console-execution-trace-discovery.md +394 -0
- package/docs/design/console-execution-trace-final-review.md +77 -0
- package/docs/design/console-execution-trace-review.md +92 -0
- package/docs/design/console-performance-discovery.md +415 -0
- package/docs/design/console-ui-backlog.md +280 -0
- package/docs/design/daemon-architecture-discovery.md +853 -0
- package/docs/design/daemon-design-candidates.md +318 -0
- package/docs/design/daemon-design-review-findings.md +119 -0
- package/docs/design/daemon-engine-design-candidates.md +210 -0
- package/docs/design/daemon-engine-design-review.md +131 -0
- package/docs/design/daemon-execution-engine-discovery.md +280 -0
- package/docs/design/daemon-gap-analysis.md +554 -0
- package/docs/design/daemon-owns-console-plan.md +168 -0
- package/docs/design/daemon-owns-console-review.md +91 -0
- package/docs/design/daemon-owns-console.md +195 -0
- package/docs/design/data-model-erd.md +11 -0
- package/docs/design/design-candidates-consolidate-dev-staleness.md +98 -0
- package/docs/design/design-candidates-walk-cache-depth-limit.md +80 -0
- package/docs/design/design-review-consolidate-dev-staleness.md +54 -0
- package/docs/design/design-review-walk-cache-depth-limit.md +48 -0
- package/docs/design/implementation-plan-consolidate-dev-staleness.md +142 -0
- package/docs/design/implementation-plan-walk-cache-depth-limit.md +141 -0
- package/docs/design/layer3b-ghost-nodes-design-candidates.md +229 -0
- package/docs/design/layer3b-ghost-nodes-design-review.md +93 -0
- package/docs/design/layer3b-ghost-nodes-implementation-plan.md +219 -0
- package/docs/design/list-workflows-latency-fix-plan.md +128 -0
- package/docs/design/list-workflows-latency-fix-review.md +55 -0
- package/docs/design/list-workflows-latency-fix.md +109 -0
- package/docs/design/native-context-management-api.md +11 -0
- package/docs/design/performance-sweep-2026-04.md +96 -0
- package/docs/design/routines-guide.md +219 -0
- package/docs/design/sequence-diagrams.md +11 -0
- package/docs/design/subagent-design-principles.md +220 -0
- package/docs/design/temporal-patterns-design-candidates.md +312 -0
- package/docs/design/temporal-patterns-design-review-findings.md +163 -0
- package/docs/design/test-isolation-from-config-file.md +335 -0
- package/docs/design/v2-core-design-locks.md +2746 -0
- package/docs/design/v2-lock-registry.json +734 -0
- package/docs/design/workflow-authoring-v2.md +1044 -0
- package/docs/design/workflow-docs-spec.md +218 -0
- package/docs/design/workflow-extension-points.md +687 -0
- package/docs/design/workrail-auto-trigger-system.md +359 -0
- package/docs/design/workrail-config-file-discovery.md +513 -0
- package/docs/docker.md +110 -0
- package/docs/generated/v2-lock-closure-plan.md +26 -0
- package/docs/generated/v2-lock-coverage.json +797 -0
- package/docs/generated/v2-lock-coverage.md +177 -0
- package/docs/ideas/backlog.md +3927 -0
- package/docs/ideas/design-candidates-mcp-resilience.md +208 -0
- package/docs/ideas/design-review-findings-mcp-resilience.md +119 -0
- package/docs/ideas/implementation_plan.md +249 -0
- package/docs/ideas/third-party-workflow-setup-design-thinking.md +1948 -0
- package/docs/implementation/02-architecture.md +316 -0
- package/docs/implementation/04-testing-strategy.md +124 -0
- package/docs/implementation/09-simple-workflow-guide.md +835 -0
- package/docs/implementation/13-advanced-validation-guide.md +874 -0
- package/docs/implementation/README.md +21 -0
- package/docs/integrations/claude-code.md +300 -0
- package/docs/integrations/firebender.md +315 -0
- package/docs/migration/v0.1.0.md +147 -0
- package/docs/naming-conventions.md +45 -0
- package/docs/planning/README.md +104 -0
- package/docs/planning/github-ticketing-playbook.md +195 -0
- package/docs/plans/README.md +24 -0
- package/docs/plans/agent-managed-ticketing-design.md +605 -0
- package/docs/plans/agentic-orchestration-roadmap.md +112 -0
- package/docs/plans/assessment-gates-engine-handoff.md +536 -0
- package/docs/plans/content-coherence-and-references.md +151 -0
- package/docs/plans/library-extraction-plan.md +340 -0
- package/docs/plans/mr-review-workflow-redesign.md +1451 -0
- package/docs/plans/native-context-management-epic.md +11 -0
- package/docs/plans/perf-fixes-design-candidates.md +225 -0
- package/docs/plans/perf-fixes-design-review-findings.md +61 -0
- package/docs/plans/perf-fixes-new-issues-candidates.md +264 -0
- package/docs/plans/perf-fixes-new-issues-review.md +110 -0
- package/docs/plans/prompt-fragments.md +53 -0
- package/docs/plans/ui-ux-workflow-design-candidates.md +120 -0
- package/docs/plans/ui-ux-workflow-discovery.md +100 -0
- package/docs/plans/ui-ux-workflow-review.md +48 -0
- package/docs/plans/v2-followup-enhancements.md +587 -0
- package/docs/plans/workflow-categories-candidates.md +105 -0
- package/docs/plans/workflow-categories-discovery.md +110 -0
- package/docs/plans/workflow-categories-review.md +51 -0
- package/docs/plans/workflow-discovery-model-candidates.md +94 -0
- package/docs/plans/workflow-discovery-model-discovery.md +74 -0
- package/docs/plans/workflow-discovery-model-review.md +48 -0
- package/docs/plans/workflow-source-setup-phase-1.md +245 -0
- package/docs/plans/workflow-source-setup-phase-2.md +361 -0
- package/docs/plans/workflow-staleness-detection-candidates.md +104 -0
- package/docs/plans/workflow-staleness-detection-review.md +58 -0
- package/docs/plans/workflow-staleness-detection.md +80 -0
- package/docs/plans/workflow-v2-design.md +69 -0
- package/docs/plans/workflow-v2-roadmap.md +74 -0
- package/docs/plans/workflow-validation-design.md +98 -0
- package/docs/plans/workflow-validation-roadmap.md +108 -0
- package/docs/plans/workrail-platform-vision.md +420 -0
- package/docs/reference/agent-context-cleaner-snippet.md +94 -0
- package/docs/reference/agent-context-guidance.md +140 -0
- package/docs/reference/context-optimization.md +284 -0
- package/docs/reference/example-workflow-repository-template/.github/workflows/validate.yml +125 -0
- package/docs/reference/example-workflow-repository-template/README.md +268 -0
- package/docs/reference/example-workflow-repository-template/workflows/example-workflow.json +80 -0
- package/docs/reference/external-workflow-repositories.md +916 -0
- package/docs/reference/feature-flags-architecture.md +472 -0
- package/docs/reference/feature-flags.md +349 -0
- package/docs/reference/god-tier-workflow-validation.md +272 -0
- package/docs/reference/loop-optimization.md +209 -0
- package/docs/reference/loop-validation.md +176 -0
- package/docs/reference/loops.md +465 -0
- package/docs/reference/mcp-platform-constraints.md +59 -0
- package/docs/reference/recovery.md +88 -0
- package/docs/reference/releases.md +177 -0
- package/docs/reference/troubleshooting.md +105 -0
- package/docs/reference/workflow-execution-contract.md +998 -0
- package/docs/roadmap/README.md +22 -0
- package/docs/roadmap/legacy-planning-status.md +103 -0
- package/docs/roadmap/now-next-later.md +70 -0
- package/docs/roadmap/open-work-inventory.md +389 -0
- package/docs/tickets/README.md +39 -0
- package/docs/tickets/next-up.md +76 -0
- package/docs/workflow-management.md +317 -0
- package/docs/workflow-templates.md +423 -0
- package/docs/workflow-validation.md +184 -0
- package/docs/workflows.md +254 -0
- package/package.json +3 -1
- package/spec/authoring-spec.json +61 -16
- package/workflows/workflow-for-workflows.json +252 -93
- package/workflows/workflow-for-workflows.v2.json +188 -77
|
@@ -0,0 +1,1948 @@
|
|
|
1
|
+
# Third-Party Workflow Setup Design Thinking
|
|
2
|
+
|
|
3
|
+
> This is the **design-thinking / exploration doc** for this topic.
|
|
4
|
+
>
|
|
5
|
+
> For the **canonical near-term plan/design**, prefer `docs/plans/workflow-source-setup-phase-1.md`.
|
|
6
|
+
|
|
7
|
+
## Context / Problem
|
|
8
|
+
|
|
9
|
+
### Current state
|
|
10
|
+
|
|
11
|
+
- WorkRail can load workflows from multiple source kinds:
|
|
12
|
+
- bundled workflows
|
|
13
|
+
- user workflows in `~/.workrail/workflows/`
|
|
14
|
+
- project workflows in `./workflows/`
|
|
15
|
+
- custom directories via `WORKFLOW_STORAGE_PATH`
|
|
16
|
+
- Git repositories via `WORKFLOW_GIT_REPOS` / `WORKFLOW_GIT_REPO_URL`
|
|
17
|
+
- remote registries via `WORKFLOW_REGISTRY_URL`
|
|
18
|
+
- plugin paths through plugin storage configuration
|
|
19
|
+
- The current user-facing setup experience is still fragmented and env-first.
|
|
20
|
+
- The current source model is stronger than the UX:
|
|
21
|
+
- `EnhancedMultiSourceWorkflowStorage` already unifies multiple source kinds internally
|
|
22
|
+
- graceful degradation and source precedence already exist
|
|
23
|
+
- auth resolution for Git hosts already exists
|
|
24
|
+
- Current v2 MCP workflow tools already accept `workspacePath`, but `list_workflows` and `inspect_workflow` do not currently require it.
|
|
25
|
+
- Current workspace resolution still falls back through:
|
|
26
|
+
- explicit `workspacePath`
|
|
27
|
+
- then MCP roots
|
|
28
|
+
- then server process cwd
|
|
29
|
+
- There is a mismatch between the current shipped setup UX and the future direction already described in `docs/plans/workrail-platform-vision.md`, which proposes:
|
|
30
|
+
- `.workrail/config.json`
|
|
31
|
+
- configured workspace roots
|
|
32
|
+
- auto-discovery of `.workrail/workflows/`
|
|
33
|
+
- setup prompts instead of manual env authoring
|
|
34
|
+
- The exact ownership of `.workrail/config.json` is still under-specified:
|
|
35
|
+
- planning docs use it as the likely home for remembered roots / source setup
|
|
36
|
+
- other repo artifacts already use it as a local environment / capability cache
|
|
37
|
+
- phase-1 design should avoid turning it into an overloaded catch-all without a clearer file-ownership model
|
|
38
|
+
|
|
39
|
+
### User problem
|
|
40
|
+
|
|
41
|
+
- Hooking up third-party workflows currently feels like infrastructure wiring rather than product setup.
|
|
42
|
+
- The user has to understand multiple env vars, source kinds, auth conventions, and source precedence.
|
|
43
|
+
- Some current names are misleading:
|
|
44
|
+
- `WORKFLOW_GIT_REPOS` also accepts local paths and `file://` URLs
|
|
45
|
+
- source configuration is split across multiple variables that all conceptually mean "where should WorkRail find workflows?"
|
|
46
|
+
- The CLI helps only partially:
|
|
47
|
+
- `workrail init` initializes `~/.workrail/workflows/`
|
|
48
|
+
- `sources` only surfaces bundled, user, project, and custom path sources
|
|
49
|
+
- Git, remote registry, and plugin sources are not surfaced coherently in the current CLI UX
|
|
50
|
+
- MCP roots are not trustworthy enough to be the primary source of workspace identity for workflow discovery decisions.
|
|
51
|
+
|
|
52
|
+
### Opportunity
|
|
53
|
+
|
|
54
|
+
- Make third-party workflow hookup feel like:
|
|
55
|
+
- installing a package
|
|
56
|
+
- adding a repo once
|
|
57
|
+
- importing a workflow from a URL or path
|
|
58
|
+
- or doing nothing because the right workflows are auto-discovered
|
|
59
|
+
- Let WorkRail help users set this up instead of forcing them to hand-edit MCP env config in their IDE.
|
|
60
|
+
- Let WorkRail silently remember relevant repos in user-level config so cross-repo workflows improve over time without requiring repo changes.
|
|
61
|
+
|
|
62
|
+
## Persona
|
|
63
|
+
|
|
64
|
+
- **Primary persona**: developer or team lead who found a useful workflow collection and wants WorkRail to use it with minimal setup friction
|
|
65
|
+
- **Job-to-be-done**: "I found workflows I want. Make them available in WorkRail quickly, safely, and in a way that will keep working."
|
|
66
|
+
- **Secondary persona**: team maintaining shared workflows across repos or modules who wants teammates to get the workflows with near-zero manual setup
|
|
67
|
+
|
|
68
|
+
## Persona card (primary)
|
|
69
|
+
|
|
70
|
+
- **Name**: Alex, the workflow adopter
|
|
71
|
+
- **Context**: Alex is using WorkRail through an MCP client / agentic IDE and has found a useful workflow repo, directory, or package that they want to make available quickly.
|
|
72
|
+
- **Goals**:
|
|
73
|
+
- get third-party workflows working with minimal setup
|
|
74
|
+
- avoid learning multiple configuration surfaces
|
|
75
|
+
- understand whether the setup is personal, team-shared, or repo-local
|
|
76
|
+
- trust that the resulting setup will keep working across sessions and teammates
|
|
77
|
+
- **Pains**:
|
|
78
|
+
- setup is fragmented across multiple env vars and concepts
|
|
79
|
+
- source kinds are exposed as implementation details
|
|
80
|
+
- some field names do not match actual behavior
|
|
81
|
+
- current tooling does not fully explain active sources or failures
|
|
82
|
+
- **Constraints**:
|
|
83
|
+
- may be using a hosted or local IDE with limited willingness to edit MCP config by hand
|
|
84
|
+
- may need to connect to private or self-hosted Git
|
|
85
|
+
- may need a setup that is either personal-only or team-shareable
|
|
86
|
+
- **Quotes/observations (from evidence we have)**:
|
|
87
|
+
- Observation: current source configuration is split across `WORKFLOW_STORAGE_PATH`, `WORKFLOW_GIT_REPOS`, `WORKFLOW_GIT_REPO_URL`, `WORKFLOW_REGISTRY_URL`, include flags, and auth env vars.
|
|
88
|
+
- Observation: `WORKFLOW_GIT_REPOS` accepts local paths and `file://` URLs in addition to true Git remotes.
|
|
89
|
+
- Observation: `workrail init` only initializes `~/.workrail/workflows/` with a sample workflow and does not help attach third-party sources.
|
|
90
|
+
- Observation: `sources.ts` only reports bundled, user, project, and custom sources, even though runtime storage supports git, remote, and plugin sources.
|
|
91
|
+
- Observation: `docs/plans/workrail-platform-vision.md` already proposes `.workrail/config.json`, configured workspace roots, recursive `.workrail/workflows/` discovery, and a setup prompt.
|
|
92
|
+
|
|
93
|
+
## POV + HMW
|
|
94
|
+
|
|
95
|
+
### Point of view
|
|
96
|
+
|
|
97
|
+
- Users want WorkRail to feel like it understands workflow sources as a product concern, not as a low-level server configuration problem.
|
|
98
|
+
- WorkRail already has enough storage architecture to support a much better experience, but the configuration surface and setup path lag behind that capability.
|
|
99
|
+
|
|
100
|
+
### How might we
|
|
101
|
+
|
|
102
|
+
- How might we make connecting third-party workflows feel nearly automatic?
|
|
103
|
+
- How might we let WorkRail own the setup journey instead of outsourcing it to manual `firebender.json` edits?
|
|
104
|
+
- How might we support local folders, repos, self-hosted Git, registries, and shared team workflows without making users learn each source type separately?
|
|
105
|
+
- How might we preserve explicitness, safety, and debuggability while making the common path dramatically simpler?
|
|
106
|
+
|
|
107
|
+
## POV (Point of View)
|
|
108
|
+
|
|
109
|
+
- **Alex, the workflow adopter** needs a way to share and connect workflows through a simple, guided, and inspectable setup flow because the current env-first model exposes storage and auth details too early and does not make the resulting source provenance easy enough to verify.
|
|
110
|
+
|
|
111
|
+
## Problem statement (2–4 lines)
|
|
112
|
+
|
|
113
|
+
- WorkRail already supports multiple workflow source kinds, but the setup experience is fragmented, implementation-shaped, and too dependent on manual MCP/env configuration.
|
|
114
|
+
- This makes connecting third-party workflows feel like server wiring instead of a product capability.
|
|
115
|
+
- The result is unnecessary cognitive load for individuals and a weak sharing story for teams.
|
|
116
|
+
|
|
117
|
+
## Alternative framings (2)
|
|
118
|
+
|
|
119
|
+
- **Alternative framing 1**: The real problem may be less about configuration shape and more about the absence of a first-class install/setup flow. In that framing, even messy underlying config could be acceptable if WorkRail reliably hides it behind guided setup.
|
|
120
|
+
- **Alternative framing 2**: The real problem may be workflow discovery and provenance, not connection itself. In that framing, users may tolerate setup complexity if WorkRail clearly shows what is available, where it came from, and why it is or is not working.
|
|
121
|
+
|
|
122
|
+
## How might we… (3–7)
|
|
123
|
+
|
|
124
|
+
- How might we make "connect this workflow source" a single user intent regardless of whether the source is a local folder, Git repo, or registry?
|
|
125
|
+
- How might we move canonical workflow-source configuration into `.workrail/` so it feels like WorkRail configuration rather than MCP wiring?
|
|
126
|
+
- How might we let WorkRail guide setup for private and self-hosted Git without forcing users to learn hostname-derived token rules?
|
|
127
|
+
- How might we maximize team sharing through repo-local conventions and root registration rather than per-user MCP edits?
|
|
128
|
+
- How might we preserve explicit source provenance, precedence, and diagnostics while simplifying the common path?
|
|
129
|
+
- How might we make verification of “where these workflows came from” simple enough that users trust the result immediately after setup?
|
|
130
|
+
- How might we keep weaker models and mixed old/new docs on the preferred setup path instead of drifting back to legacy env-first advice?
|
|
131
|
+
|
|
132
|
+
## Success criteria (measurable where possible)
|
|
133
|
+
|
|
134
|
+
- A user can connect a common third-party workflow source in **one primary flow** without reading env-var reference docs.
|
|
135
|
+
- Common cases fit within **1–3 deliberate user actions** after the user has the source URL/path.
|
|
136
|
+
- WorkRail can explain **all active workflow sources** with type, scope, provenance, and health.
|
|
137
|
+
- A repo-local team sharing pattern exists that does **not** require each teammate to hand-author multiple source env vars.
|
|
138
|
+
- When rooted-sharing and legacy env-based sources coexist, WorkRail can explain precedence clearly enough that users understand why a workflow is visible.
|
|
139
|
+
- `workspacePath` is always explicit and required for workflow discovery-sensitive tools, so WorkRail never silently anchors discovery to untrusted MCP roots or server cwd.
|
|
140
|
+
- Cross-repo workflows can surface from user-remembered repo roots without requiring the current repo to vendor or merge shared workflows.
|
|
141
|
+
- Self-hosted Git setup works through either:
|
|
142
|
+
- guided HTTPS auth setup, or
|
|
143
|
+
- SSH setup with no token ceremony
|
|
144
|
+
- Existing env-var configurations continue to work during migration.
|
|
145
|
+
|
|
146
|
+
## Key tensions / tradeoffs
|
|
147
|
+
|
|
148
|
+
- **Convention vs explicit registration**: auto-discovery reduces setup but can make source provenance less obvious if overused.
|
|
149
|
+
- **Install/import vs live mount**: importing into `.workrail/` may simplify runtime behavior, while live sources preserve freshness and reduce duplication.
|
|
150
|
+
- **Project-local vs user-global config**: project config helps sharing; user config helps personal portability.
|
|
151
|
+
- **Automation vs portability**: WorkRail-managed setup can be great, but MCP client config is outside WorkRail’s full control in some environments.
|
|
152
|
+
- **Simplicity vs debuggability**: hiding complexity helps the happy path, but users still need a trustworthy mental model when something breaks.
|
|
153
|
+
|
|
154
|
+
## Assumptions
|
|
155
|
+
|
|
156
|
+
- Users would prefer a WorkRail-owned setup flow over manual MCP env editing.
|
|
157
|
+
- The `.workrail/` namespace is an acceptable home for workflow-source configuration, but the exact split between user-global root memory, repo-local metadata, and other `.workrail/*` files still needs to be designed explicitly.
|
|
158
|
+
- Team-sharing is important enough to prioritize over a purely personal setup model.
|
|
159
|
+
- The existing internal source abstraction is sufficient foundation for a cleaner UX without a major storage rewrite.
|
|
160
|
+
- A guided setup flow can handle self-hosted/private Git well enough to materially reduce user confusion.
|
|
161
|
+
|
|
162
|
+
## Riskiest assumption (pick one)
|
|
163
|
+
|
|
164
|
+
- **Riskiest assumption**: users want WorkRail itself to own setup and configuration of workflow sources, rather than preferring explicit manual control through their MCP client config.
|
|
165
|
+
|
|
166
|
+
## What would change our mind?
|
|
167
|
+
|
|
168
|
+
- Evidence that most users already succeed with the current env-first setup and that their real pain is choosing, finding, or trusting workflows rather than connecting them.
|
|
169
|
+
- Evidence that users or teams strongly prefer explicit MCP-managed configuration and are uncomfortable with WorkRail-managed config under `.workrail/`.
|
|
170
|
+
- Technical constraints showing that WorkRail cannot provide a reliable cross-client guided setup experience without brittle IDE-specific behavior.
|
|
171
|
+
|
|
172
|
+
## Out-of-scope
|
|
173
|
+
|
|
174
|
+
- Redesigning the workflow execution protocol itself
|
|
175
|
+
- Changing durable session/storage architecture unrelated to workflow source setup
|
|
176
|
+
- Solving trust/signing for all third-party workflow distribution in this pass
|
|
177
|
+
- Reworking the full workflow discovery taxonomy beyond what is necessary for setup and source visibility
|
|
178
|
+
|
|
179
|
+
### Definition reflection
|
|
180
|
+
|
|
181
|
+
- **What would change our mind about the problem framing?**
|
|
182
|
+
- strong evidence that the main pain is discovery/trust rather than hookup
|
|
183
|
+
- strong evidence that users prefer explicit MCP-level control over WorkRail-managed setup
|
|
184
|
+
- **What is the riskiest assumption?**
|
|
185
|
+
- that WorkRail-owned setup is more desirable than explicit external configuration
|
|
186
|
+
|
|
187
|
+
## Success criteria
|
|
188
|
+
|
|
189
|
+
- A new user can connect a third-party workflow source without reading detailed env-var documentation.
|
|
190
|
+
- Common setup paths are discoverable from within WorkRail itself.
|
|
191
|
+
- Team-sharing works through conventions and stable project-local config, not only personal IDE config.
|
|
192
|
+
- Self-hosted Git and auth remain possible without forcing users to understand hostname-to-env-var rules up front.
|
|
193
|
+
- The system keeps a clear, inspectable model of where workflows came from and why they are available.
|
|
194
|
+
- Existing env-var based setups remain backward compatible.
|
|
195
|
+
- Failure states are diagnosable and expressed in user language.
|
|
196
|
+
|
|
197
|
+
## Journey map (lightweight)
|
|
198
|
+
|
|
199
|
+
- **Step**: Find a workflow source
|
|
200
|
+
- **Pain**: user has a URL/path/repo but no obvious "install" or "connect" entry point
|
|
201
|
+
- **Opportunity**: support a single user intent such as "install this workflow source"
|
|
202
|
+
- **Step**: Decide where config belongs
|
|
203
|
+
- **Pain**: unclear whether setup should live in IDE MCP config, repo config, user config, or env vars
|
|
204
|
+
- **Opportunity**: establish a canonical `.workrail/` config model with clear personal vs project scopes
|
|
205
|
+
- **Step**: Authenticate if private/self-hosted
|
|
206
|
+
- **Pain**: auth conventions are real but implicit; hostname-derived env var rules are not user-friendly
|
|
207
|
+
- **Opportunity**: let WorkRail infer auth needs and guide the user through the minimum required secret wiring
|
|
208
|
+
- **Step**: Verify discovery
|
|
209
|
+
- **Pain**: current source inspection is incomplete and does not reflect all runtime source kinds
|
|
210
|
+
- **Opportunity**: expose a full source inventory with provenance, health, and precedence
|
|
211
|
+
- **Step**: Share with team
|
|
212
|
+
- **Pain**: current model makes personal MCP config too central for something that often wants repo-level sharing
|
|
213
|
+
- **Opportunity**: favor repo-local `.workrail/` conventions and one-time root registration
|
|
214
|
+
|
|
215
|
+
## Observations (5)
|
|
216
|
+
|
|
217
|
+
- **O1**: `EnhancedMultiSourceWorkflowStorage` already supports local directories, Git repositories, remote registries, and plugin sources behind one internal abstraction.
|
|
218
|
+
- **O2**: The public configuration surface is fragmented across multiple env vars, rather than one canonical source model.
|
|
219
|
+
- **O3**: `WORKFLOW_GIT_REPOS` is semantically overloaded; it accepts remote Git URLs, SSH Git URLs, `file://` URLs, and absolute local paths.
|
|
220
|
+
- **O4**: `workrail init` is currently narrow; it creates `~/.workrail/workflows/` and a sample workflow, but does not help connect external sources.
|
|
221
|
+
- **O5**: The repo’s platform vision already describes a simpler future centered on `.workrail/config.json`, workspace roots, recursive `.workrail/workflows/` discovery, and a setup prompt.
|
|
222
|
+
|
|
223
|
+
## Insights (5)
|
|
224
|
+
|
|
225
|
+
- **I1**: The hardest part of setup is likely not missing storage capability but missing productized setup UX.
|
|
226
|
+
- **Evidence**: O1, O2, O4
|
|
227
|
+
- **I2**: The current configuration vocabulary leaks implementation details and creates unnecessary cognitive load.
|
|
228
|
+
- **Evidence**: O2, O3
|
|
229
|
+
- **I3**: WorkRail already contains the architectural seeds of a better experience, so the right move is probably evolutionary rather than inventing a net-new system.
|
|
230
|
+
- **Evidence**: O1, O5
|
|
231
|
+
- **I4**: Team workflow sharing likely wants repo-local convention and discovery more than personal IDE configuration.
|
|
232
|
+
- **Evidence**: O5, quote/observation about team-sharing desire in the Persona section
|
|
233
|
+
- **I5**: Source visibility and diagnostics are part of the setup experience, not a separate afterthought. If users cannot inspect active sources clearly, setup will still feel fragile even if connection succeeds.
|
|
234
|
+
- **Evidence**: O4, quote/observation about incomplete `sources.ts`, O2
|
|
235
|
+
|
|
236
|
+
## Evidence
|
|
237
|
+
|
|
238
|
+
- **Facts we have**:
|
|
239
|
+
- runtime source kinds are first-class in `src/types/workflow-source.ts`
|
|
240
|
+
- current setup is env-first in `docs/configuration.md`
|
|
241
|
+
- runtime loading is unified in `src/infrastructure/storage/enhanced-multi-source-workflow-storage.ts`
|
|
242
|
+
- self-hosted Git auth resolution already exists in hostname-derived form
|
|
243
|
+
- current CLI setup and source inspection are narrower than runtime capabilities
|
|
244
|
+
- planning docs already point toward `.workrail/config.json` and auto-discovery
|
|
245
|
+
- **Evidence gaps**:
|
|
246
|
+
- we do not yet have direct user research or usage telemetry showing which setup paths are most common
|
|
247
|
+
- we do not yet know whether users prefer "install/import" semantics or "register source" semantics
|
|
248
|
+
- we do not yet know how much MCP client automation is realistically possible across IDEs without becoming brittle
|
|
249
|
+
- we do not yet know which failure modes are most frequent in practice
|
|
250
|
+
|
|
251
|
+
## Constraints (environment/tooling/model)
|
|
252
|
+
|
|
253
|
+
- Must remain backward compatible with existing env-var based configuration.
|
|
254
|
+
- Must preserve current validation, security checks, and source precedence semantics unless intentionally changed.
|
|
255
|
+
- Must support local paths, repo-local sharing, remote Git, and self-hosted Git.
|
|
256
|
+
- Should not trust MCP roots enough to use them as the authoritative workspace identity for workflow discovery.
|
|
257
|
+
- Should not assume WorkRail can safely mutate every MCP client configuration automatically.
|
|
258
|
+
- Should align with existing `.workrail/` concepts already present in the repo, especially `.workrail/bindings.json` and planned `.workrail/config.json`.
|
|
259
|
+
- Should avoid overloading `.workrail/config.json` with unrelated responsibilities if user-level remembered roots and environment/capability state both need durable storage.
|
|
260
|
+
- The WorkRail process is not inherently tied to one repo, so repo context must come from explicit caller input and user-level remembered roots.
|
|
261
|
+
|
|
262
|
+
## Observed pain themes (5–10)
|
|
263
|
+
|
|
264
|
+
- fragmented configuration surface
|
|
265
|
+
- source-type leakage into user setup
|
|
266
|
+
- misleading names for overloaded fields
|
|
267
|
+
- incomplete source inspection UX
|
|
268
|
+
- setup is personal-config centric instead of team-sharing centric
|
|
269
|
+
- auth rules are technically sound but ergonomically hidden
|
|
270
|
+
- current install/setup flow is too manual
|
|
271
|
+
- current UX makes users reason about storage internals too early
|
|
272
|
+
|
|
273
|
+
## Unknowns (explicit list)
|
|
274
|
+
|
|
275
|
+
- Should the canonical user action be "install this workflow" or "add this workflow source"?
|
|
276
|
+
- Should remote Git remain a live runtime source, or should it primarily be an import/install mechanism into `.workrail/`?
|
|
277
|
+
- Should `.workrail/config.json` be user-global, project-local, or layered?
|
|
278
|
+
- Should user-level remembered roots and repo-local metadata live in the same config file or in separate `.workrail/*` files?
|
|
279
|
+
- How much auto-discovery is desirable before source provenance becomes confusing?
|
|
280
|
+
- Should public/community workflows be installed into user storage, mounted as sources, or both?
|
|
281
|
+
- What should the trust model be for auto-installing or auto-discovering third-party sources?
|
|
282
|
+
- What is the smallest migration bridge that keeps current `./workflows`, `~/.workrail/workflows/`, and env-based sources understandable while the preferred rooted-sharing path is introduced?
|
|
283
|
+
|
|
284
|
+
## Interpretation risks (3)
|
|
285
|
+
|
|
286
|
+
- We may be over-reading env-var complexity as the main pain when the deeper pain could actually be lack of an install/setup flow.
|
|
287
|
+
- We may be over-generalizing from the platform vision docs, which could reflect desired future direction rather than validated user need.
|
|
288
|
+
- Some of what appears to be poor UX may be deliberate separation of concerns between MCP client config and WorkRail runtime config.
|
|
289
|
+
|
|
290
|
+
### Reflection
|
|
291
|
+
|
|
292
|
+
- **Which pain themes are likely symptoms vs root causes?**
|
|
293
|
+
- likely symptoms:
|
|
294
|
+
- fragmented env vars
|
|
295
|
+
- incomplete source inspection
|
|
296
|
+
- hidden auth conventions
|
|
297
|
+
- likely root causes:
|
|
298
|
+
- no canonical setup model
|
|
299
|
+
- no productized install/setup flow
|
|
300
|
+
- config ownership split awkwardly between MCP client config and WorkRail runtime concerns
|
|
301
|
+
- **What would we need to observe to disprove our top 1–2 interpretations?**
|
|
302
|
+
- If users mostly succeed once they have docs and rarely ask for setup help, then setup complexity may be acceptable and the real issue may be discovery, not configuration.
|
|
303
|
+
- If teams strongly prefer explicit MCP env control and distrust WorkRail-managed config, then a `.workrail/config.json`-first solution may be less desirable than it appears.
|
|
304
|
+
|
|
305
|
+
## Idea Backlog (append-only)
|
|
306
|
+
|
|
307
|
+
- DT-001: Replace fragmented env vars with a single canonical source model in `.workrail/config.json`.
|
|
308
|
+
- DT-002: Add setup/install flows so users can say "install this workflow source" and WorkRail handles the config.
|
|
309
|
+
- DT-003: Prefer convention and auto-discovery over explicit registration where possible.
|
|
310
|
+
- DT-004: Separate "install/import" from "runtime source resolution" if that reduces complexity.
|
|
311
|
+
- DT-005: Improve source introspection UX so users can see all active sources, their type, health, and precedence.
|
|
312
|
+
|
|
313
|
+
### Idea Backlog (Round 1)
|
|
314
|
+
|
|
315
|
+
- **DT-001 — Canonical `.workrail/config.json`**
|
|
316
|
+
- **Category**: configuration model
|
|
317
|
+
- **Sketch**: Introduce a canonical layered config model under `.workrail/`, with user-level remembered roots / source state and any repo-local metadata split deliberately enough that env vars can become legacy overrides without `.workrail/config.json` turning into an overloaded catch-all.
|
|
318
|
+
- **Why it might help**: moves workflow-source configuration into WorkRail’s own domain and out of ad hoc MCP env wiring while leaving room for clearer file ownership.
|
|
319
|
+
- **Open question**: which data belongs in `~/.workrail/config.json`, which belongs in repo-local `.workrail/*`, and which should remain separate from environment / capability state?
|
|
320
|
+
|
|
321
|
+
- **DT-002 — `workrail install <url-or-path>`**
|
|
322
|
+
- **Category**: installation UX
|
|
323
|
+
- **Sketch**: Add a CLI / MCP-facing install action that accepts a URL or path and chooses the right setup path automatically.
|
|
324
|
+
- **Why it might help**: turns many source types into one user intent.
|
|
325
|
+
- **Open question**: should install create a live source or import files into a managed location?
|
|
326
|
+
|
|
327
|
+
- **DT-003 — Setup workflow for source hookup**
|
|
328
|
+
- **Category**: installation UX
|
|
329
|
+
- **Sketch**: Ship a dedicated WorkRail workflow that interviews the user, detects source type, explains scope options, and configures the source.
|
|
330
|
+
- **Why it might help**: WorkRail would demonstrate its own product philosophy while hiding setup complexity.
|
|
331
|
+
- **Open question**: how much can it automate across different MCP clients vs only guiding the user?
|
|
332
|
+
|
|
333
|
+
- **DT-004 — Auto-detect repo-local `.workrail/workflows/`**
|
|
334
|
+
- **Category**: discovery / convention
|
|
335
|
+
- **Sketch**: Auto-discover `.workrail/workflows/` inside configured workspace roots and ancestor repos.
|
|
336
|
+
- **Why it might help**: makes team sharing convention-based and almost zero-config after root registration.
|
|
337
|
+
- **Open question**: how aggressive should recursive scanning be?
|
|
338
|
+
|
|
339
|
+
- **DT-005 — One-time root registration**
|
|
340
|
+
- **Category**: sharing model
|
|
341
|
+
- **Sketch**: Let users register a repo or monorepo as a workspace root once, then discover `.workrail/workflows/` within it automatically.
|
|
342
|
+
- **Why it might help**: shifts from per-source setup to per-root setup.
|
|
343
|
+
- **Open question**: should WorkRail infer likely roots from the current workspace automatically?
|
|
344
|
+
|
|
345
|
+
- **DT-006 — Source doctor / diagnostics command**
|
|
346
|
+
- **Category**: diagnostics
|
|
347
|
+
- **Sketch**: Add `workrail sources --doctor` or equivalent MCP flow that validates every source, auth path, cache, and discovery decision.
|
|
348
|
+
- **Why it might help**: setup only feels simple if failures are easy to understand.
|
|
349
|
+
- **Open question**: what should the output contract be for agentic consumption?
|
|
350
|
+
|
|
351
|
+
- **DT-007 — Guided self-hosted Git auth helper**
|
|
352
|
+
- **Category**: auth UX
|
|
353
|
+
- **Sketch**: Ask for a self-hosted Git URL, derive the expected token env var name, and guide the user through HTTPS token or SSH setup.
|
|
354
|
+
- **Why it might help**: removes the need to memorize hostname-to-env-var rules.
|
|
355
|
+
- **Open question**: should WorkRail ever write secrets, or only tell the user exactly where to put them?
|
|
356
|
+
|
|
357
|
+
- **DT-008 — Live source vs imported copy mode**
|
|
358
|
+
- **Category**: installation model
|
|
359
|
+
- **Sketch**: Every install flow offers two modes:
|
|
360
|
+
- `mount`: keep a live external source
|
|
361
|
+
- `import`: copy or clone into managed `.workrail/` storage
|
|
362
|
+
- **Why it might help**: makes the tradeoff explicit and matches different trust/freshness needs.
|
|
363
|
+
- **Open question**: which mode should be default for which source types?
|
|
364
|
+
|
|
365
|
+
- **DT-009 — Source manifest per installed source**
|
|
366
|
+
- **Category**: provenance
|
|
367
|
+
- **Sketch**: Represent each connected source as a manifest file in `.workrail/sources/` with type, scope, origin, health, and install metadata.
|
|
368
|
+
- **Why it might help**: gives inspectable durable truth and avoids a single opaque mega-config.
|
|
369
|
+
- **Open question**: is one file per source better than a single aggregated config?
|
|
370
|
+
|
|
371
|
+
- **DT-010 — Human-friendly source names**
|
|
372
|
+
- **Category**: UX polish
|
|
373
|
+
- **Sketch**: Allow source aliases like `team-workflows`, `payments-module`, or `alex-private-library`.
|
|
374
|
+
- **Why it might help**: reduces raw URL/path exposure in day-to-day usage.
|
|
375
|
+
- **Open question**: how should aliases interact with source precedence and ambiguity?
|
|
376
|
+
|
|
377
|
+
- **DT-011 — Install from repository URL with smart defaults**
|
|
378
|
+
- **Category**: installation UX
|
|
379
|
+
- **Sketch**: If the user gives a Git URL, WorkRail infers branch `main`, chooses cache location, validates structure, and proposes the right scope.
|
|
380
|
+
- **Why it might help**: removes most Git-specific setup ceremony.
|
|
381
|
+
- **Open question**: how should fallback behavior work when `main` is missing?
|
|
382
|
+
|
|
383
|
+
- **DT-012 — Install from a workflow directory artifact**
|
|
384
|
+
- **Category**: packaging / distribution
|
|
385
|
+
- **Sketch**: Treat a workflow directory with co-located refs as a first-class install unit, not just single `.json` files.
|
|
386
|
+
- **Why it might help**: aligns with the platform vision’s portability story.
|
|
387
|
+
- **Open question**: how should references be validated and preserved on install?
|
|
388
|
+
|
|
389
|
+
- **DT-013 — Recommend likely sources in current workspace**
|
|
390
|
+
- **Category**: auto-detection
|
|
391
|
+
- **Sketch**: On first run or on demand, WorkRail scans the workspace for likely workflow folders or repos and offers to attach them.
|
|
392
|
+
- **Why it might help**: makes setup proactive instead of doc-driven.
|
|
393
|
+
- **Open question**: how do we avoid noisy or creepy-feeling suggestions?
|
|
394
|
+
|
|
395
|
+
- **DT-014 — Source visibility inside `list_workflows`**
|
|
396
|
+
- **Category**: discovery UX
|
|
397
|
+
- **Sketch**: Present workflows grouped by source and scope, with clear labels for built-in, user, repo-local, installed, imported, and external.
|
|
398
|
+
- **Why it might help**: users understand the outcome of setup immediately.
|
|
399
|
+
- **Open question**: how much source detail should be exposed without overwhelming agents?
|
|
400
|
+
|
|
401
|
+
- **DT-015 — Health states for sources**
|
|
402
|
+
- **Category**: diagnostics
|
|
403
|
+
- **Sketch**: Assign explicit states like `active`, `stale`, `auth-needed`, `missing`, `invalid`, `shadowed`.
|
|
404
|
+
- **Why it might help**: makes source issues explainable and scriptable.
|
|
405
|
+
- **Open question**: which states should block discovery vs degrade gracefully?
|
|
406
|
+
|
|
407
|
+
- **DT-016 — Project-scoped shareable config + user overrides**
|
|
408
|
+
- **Category**: config layering
|
|
409
|
+
- **Sketch**: Put team-default sources in repo `.workrail/config.json`, with user-private overrides in `~/.workrail/config.json`.
|
|
410
|
+
- **Why it might help**: balances team sharing and personal customization cleanly.
|
|
411
|
+
- **Open question**: what should the merge / precedence rules be?
|
|
412
|
+
|
|
413
|
+
- **DT-017 — “Make this repo a workflow library” helper**
|
|
414
|
+
- **Category**: sharing / authoring
|
|
415
|
+
- **Sketch**: Add a setup helper that prepares a repo for sharing workflows by creating `.workrail/workflows/`, optional refs layout, and config stubs.
|
|
416
|
+
- **Why it might help**: simplifies the producer side as well as the consumer side.
|
|
417
|
+
- **Open question**: should this be CLI-only, workflow-driven, or both?
|
|
418
|
+
|
|
419
|
+
- **DT-018 — Explicit trust / review gate for third-party installs**
|
|
420
|
+
- **Category**: trust model
|
|
421
|
+
- **Sketch**: Before enabling a third-party source, show its origin, files, permissions implications, and whether it is being mounted or imported.
|
|
422
|
+
- **Why it might help**: keeps simplification from becoming opaque or unsafe.
|
|
423
|
+
- **Open question**: how lightweight can the trust review be without becoming annoying?
|
|
424
|
+
|
|
425
|
+
- **DT-019 — Source lockfile / snapshot pinning**
|
|
426
|
+
- **Category**: reproducibility
|
|
427
|
+
- **Sketch**: Allow users or teams to pin external workflow sources to a commit, tag, or snapshot.
|
|
428
|
+
- **Why it might help**: makes team behavior stable and debuggable even when using external Git.
|
|
429
|
+
- **Open question**: should this be source-level or workflow-level?
|
|
430
|
+
|
|
431
|
+
- **DT-020 — “Just use this folder” ultra-simple mode**
|
|
432
|
+
- **Category**: simplest path
|
|
433
|
+
- **Sketch**: Support a dead-simple path where the user points WorkRail at a folder once and everything there is treated as a local workflow library.
|
|
434
|
+
- **Why it might help**: covers the most basic case with minimal ceremony.
|
|
435
|
+
- **Open question**: should this live as a shortcut on top of the richer source model or as a separate entry point?
|
|
436
|
+
|
|
437
|
+
### Idea Backlog (Round 2)
|
|
438
|
+
|
|
439
|
+
- **DT-021 — Workflow source inbox**
|
|
440
|
+
- **Category**: analogy / logistics
|
|
441
|
+
- **Sketch**: Treat third-party workflow hookup like an inbox. Users drop URLs, paths, or artifacts into a queue, and WorkRail classifies, validates, and offers installation actions.
|
|
442
|
+
- **Why it might help**: separates “I found something” from “I know exactly how it should be wired.”
|
|
443
|
+
- **Open question**: should the inbox be explicit (`.workrail/inbox/`) or conversational only?
|
|
444
|
+
|
|
445
|
+
- **DT-022 — Package manager style channels**
|
|
446
|
+
- **Category**: analogy / package management
|
|
447
|
+
- **Sketch**: Users subscribe to channels like `built-in`, `team`, `community`, `private`, each with distinct trust and update defaults.
|
|
448
|
+
- **Why it might help**: simplifies mental models by grouping sources around intent rather than storage kind.
|
|
449
|
+
- **Open question**: how much source flexibility is lost if channels become the main UX?
|
|
450
|
+
|
|
451
|
+
- **DT-023 — Compiler-style source graph**
|
|
452
|
+
- **Category**: analogy / compilers
|
|
453
|
+
- **Sketch**: Model workflow sources as a resolved graph with layers, shadowing, diagnostics, and normalized provenance similar to an import/module graph.
|
|
454
|
+
- **Why it might help**: gives a precise, debuggable internal and user-facing model.
|
|
455
|
+
- **Open question**: can that power be exposed simply enough for users?
|
|
456
|
+
|
|
457
|
+
- **DT-024 — Aviation preflight checklist for source enablement**
|
|
458
|
+
- **Category**: analogy / aviation
|
|
459
|
+
- **Sketch**: Every new source goes through a short preflight: reachable, valid structure, auth OK, trust OK, precedence clear, refs resolvable.
|
|
460
|
+
- **Why it might help**: turns hidden failure modes into a consistent verification ritual.
|
|
461
|
+
- **Open question**: how do we keep the preflight lightweight for local/simple cases?
|
|
462
|
+
|
|
463
|
+
- **DT-025 — Healthcare intake form for setup**
|
|
464
|
+
- **Category**: analogy / healthcare
|
|
465
|
+
- **Sketch**: Ask a small number of triage questions first:
|
|
466
|
+
- where is the source?
|
|
467
|
+
- who should see it?
|
|
468
|
+
- how should it update?
|
|
469
|
+
- is it private?
|
|
470
|
+
- **Why it might help**: leads users to the right model without exposing implementation vocabulary.
|
|
471
|
+
- **Open question**: which questions are essential vs annoying?
|
|
472
|
+
|
|
473
|
+
- **DT-026 — Financial portfolio view for sources**
|
|
474
|
+
- **Category**: analogy / finance
|
|
475
|
+
- **Sketch**: Show a portfolio of workflow sources with risk/trust, freshness, scope, and contribution to the available workflow catalog.
|
|
476
|
+
- **Why it might help**: encourages an inspectable, managed relationship with sources rather than invisible background state.
|
|
477
|
+
- **Open question**: is this overkill for most users?
|
|
478
|
+
|
|
479
|
+
- **DT-027 — Root-only world (constraint: assume only files)**
|
|
480
|
+
- **Category**: constraint inversion
|
|
481
|
+
- **Sketch**: Assume there are no remote live sources at runtime. Everything must be files in discovered `.workrail/workflows/` directories under known roots.
|
|
482
|
+
- **How the constraint changes the solution**: pushes WorkRail to focus on import/install and root registration instead of runtime source heterogeneity.
|
|
483
|
+
- **Why it might help**: radically simplifies runtime behavior and provenance.
|
|
484
|
+
- **Open question**: does giving up live remote sources hurt freshness too much?
|
|
485
|
+
|
|
486
|
+
- **DT-028 — No JSON config (constraint: assume no JSON)**
|
|
487
|
+
- **Category**: constraint inversion
|
|
488
|
+
- **Sketch**: Assume there is no `.workrail/config.json`. Setup must be represented only by directory conventions, source manifests, or simple single-purpose files.
|
|
489
|
+
- **How the constraint changes the solution**: favors convention and per-source artifacts over centralized configuration.
|
|
490
|
+
- **Why it might help**: reduces config syntax burden and merge-conflict pain.
|
|
491
|
+
- **Open question**: when does convention become too implicit?
|
|
492
|
+
|
|
493
|
+
- **DT-029 — Stateless setup assistant (constraint: assume no state)**
|
|
494
|
+
- **Category**: constraint inversion
|
|
495
|
+
- **Sketch**: Assume WorkRail cannot retain setup wizard state between turns. The setup flow must be idempotent and infer everything from current files, roots, and user input each time.
|
|
496
|
+
- **How the constraint changes the solution**: favors deterministic re-scans and explicit manifests over hidden session state.
|
|
497
|
+
- **Why it might help**: improves resilience and debuggability.
|
|
498
|
+
- **Open question**: how much user convenience is lost without remembered partial setup state?
|
|
499
|
+
|
|
500
|
+
- **DT-030 — Event-only source setup (constraint: assume only events)**
|
|
501
|
+
- **Category**: constraint inversion
|
|
502
|
+
- **Sketch**: Treat source configuration changes as append-only setup events that project into the current effective source set.
|
|
503
|
+
- **How the constraint changes the solution**: creates a history of why a source was added, changed, disabled, or removed.
|
|
504
|
+
- **Why it might help**: setup becomes auditable and reversible.
|
|
505
|
+
- **Open question**: is this too heavy for user-facing configuration?
|
|
506
|
+
|
|
507
|
+
- **DT-031 — File-only setup terminal (constraint: assume only files)**
|
|
508
|
+
- **Category**: constraint inversion
|
|
509
|
+
- **Sketch**: Assume the only durable interface is file drops. Users connect sources by creating files in `.workrail/sources/` such as `team.repo`, `community.link`, `payments.local`.
|
|
510
|
+
- **How the constraint changes the solution**: each source becomes a tangible artifact instead of a field inside a config blob.
|
|
511
|
+
- **Why it might help**: makes source lifecycle inspectable and composable.
|
|
512
|
+
- **Open question**: what file format keeps this simple without inventing mini-languages?
|
|
513
|
+
|
|
514
|
+
- **DT-032 — Opposite of auto-detect: explicit attach only**
|
|
515
|
+
- **Category**: inversion
|
|
516
|
+
- **Sketch**: Assume auto-discovery is harmful. Users must explicitly attach every source, but WorkRail makes attachment highly guided and safe.
|
|
517
|
+
- **Why it might help**: maximum clarity and provenance.
|
|
518
|
+
- **Open question**: could very strong guided attach UX outperform noisier discovery-heavy systems?
|
|
519
|
+
|
|
520
|
+
- **DT-033 — Opposite of live sources: install snapshots only**
|
|
521
|
+
- **Category**: inversion
|
|
522
|
+
- **Sketch**: Never mount live external sources at runtime. Every install resolves to a local snapshot with explicit update actions.
|
|
523
|
+
- **Why it might help**: source behavior becomes reproducible and trust review becomes clearer.
|
|
524
|
+
- **Open question**: can manual updates stay light enough for users?
|
|
525
|
+
|
|
526
|
+
- **DT-034 — Game-style unlock progression**
|
|
527
|
+
- **Category**: analogy / game design
|
|
528
|
+
- **Sketch**: Expose setup in progressive layers:
|
|
529
|
+
- basic local folder
|
|
530
|
+
- repo sharing
|
|
531
|
+
- remote Git
|
|
532
|
+
- private/self-hosted
|
|
533
|
+
- advanced registries/plugins
|
|
534
|
+
- **Why it might help**: beginners aren’t overwhelmed by the full capability surface.
|
|
535
|
+
- **Open question**: how do we avoid making advanced users feel patronized?
|
|
536
|
+
|
|
537
|
+
- **DT-035 — Source recipes**
|
|
538
|
+
- **Category**: abstraction
|
|
539
|
+
- **Sketch**: Define a small set of user-facing recipes such as:
|
|
540
|
+
- `use this folder`
|
|
541
|
+
- `use this repo`
|
|
542
|
+
- `share workflows in this repo`
|
|
543
|
+
- `install this workflow pack`
|
|
544
|
+
- **Why it might help**: recipes may be the right user abstraction above raw source types.
|
|
545
|
+
- **Open question**: can recipes cover edge cases without re-exposing the underlying complexity?
|
|
546
|
+
|
|
547
|
+
- **DT-036 — Repo badge / self-describing workflow library**
|
|
548
|
+
- **Category**: producer UX
|
|
549
|
+
- **Sketch**: A repo declares itself as a workflow library with a tiny `.workrail/library.json` or marker file so consumers get better install hints.
|
|
550
|
+
- **Why it might help**: allows smarter detection and clearer trust/provenance.
|
|
551
|
+
- **Open question**: what is the minimum metadata needed?
|
|
552
|
+
|
|
553
|
+
- **DT-037 — Source compatibility report**
|
|
554
|
+
- **Category**: diagnostics / trust
|
|
555
|
+
- **Sketch**: Before or after install, WorkRail generates a compatibility report covering:
|
|
556
|
+
- schema validity
|
|
557
|
+
- references portability
|
|
558
|
+
- source freshness strategy
|
|
559
|
+
- likely client limitations
|
|
560
|
+
- **Why it might help**: avoids half-working setups.
|
|
561
|
+
- **Open question**: should this be a blocking gate or advisory?
|
|
562
|
+
|
|
563
|
+
- **DT-038 — Multi-root as the primary abstraction**
|
|
564
|
+
- **Category**: config model
|
|
565
|
+
- **Sketch**: Make workspace roots the main thing users configure; most other source paths become consequences of root membership and conventions.
|
|
566
|
+
- **Why it might help**: reduces the number of concepts users need to understand.
|
|
567
|
+
- **Open question**: how should purely personal, non-workspace sources fit into a root-first model?
|
|
568
|
+
|
|
569
|
+
- **DT-039 — Source sandbox tiers**
|
|
570
|
+
- **Category**: trust / safety
|
|
571
|
+
- **Sketch**: Assign tiers such as `trusted-team`, `personal`, `external-reviewed`, `external-unreviewed`, and vary defaults for update behavior and visibility.
|
|
572
|
+
- **Why it might help**: trust becomes first-class without requiring deep security knowledge.
|
|
573
|
+
- **Open question**: how much policy should WorkRail impose vs expose?
|
|
574
|
+
|
|
575
|
+
- **DT-040 — Setup as generated patch proposal**
|
|
576
|
+
- **Category**: agent collaboration
|
|
577
|
+
- **Sketch**: Rather than mutating config directly, WorkRail proposes concrete changes to `.workrail/` files and optionally MCP config, then asks the user to approve.
|
|
578
|
+
- **Why it might help**: balances automation with explicit user control.
|
|
579
|
+
- **Open question**: which files should WorkRail be allowed to patch automatically vs propose only?
|
|
580
|
+
|
|
581
|
+
### Derived ideas (Round 3)
|
|
582
|
+
|
|
583
|
+
- **DT-041 — Source catalog primitive**
|
|
584
|
+
- **Category**: product primitive
|
|
585
|
+
- **Built from**: DT-009, DT-014, DT-015, DT-023
|
|
586
|
+
- **Sketch**: Introduce a canonical source catalog abstraction that normalizes every effective source into one inspectable record with provenance, scope, precedence, health, and effective workflows.
|
|
587
|
+
- **Why it might help**: many of the best ideas need a shared primitive that separates raw config from the effective runtime model.
|
|
588
|
+
- **Open question**: should the catalog be derived on demand or persisted?
|
|
589
|
+
|
|
590
|
+
- **DT-042 — Setup intent router**
|
|
591
|
+
- **Category**: product primitive
|
|
592
|
+
- **Built from**: DT-002, DT-003, DT-025, DT-035
|
|
593
|
+
- **Sketch**: Create a router that maps a small set of user intents (`use folder`, `use repo`, `share repo workflows`, `install pack`) into concrete setup plans.
|
|
594
|
+
- **Why it might help**: provides a stable user-facing language above heterogeneous source types.
|
|
595
|
+
- **Open question**: is the router a CLI command, MCP workflow, library primitive, or all three?
|
|
596
|
+
|
|
597
|
+
- **DT-043 — Root-first + repo-convention package**
|
|
598
|
+
- **Category**: combined concept
|
|
599
|
+
- **Built from**: DT-004, DT-005, DT-016, DT-038
|
|
600
|
+
- **Sketch**: Make root registration the main action and `.workrail/workflows/` the main convention for team sharing, with layered user overrides.
|
|
601
|
+
- **Why it might help**: could eliminate a large fraction of explicit source setup for real teams.
|
|
602
|
+
- **Open question**: what should happen when a repo contains multiple workflow subdomains?
|
|
603
|
+
|
|
604
|
+
- **DT-044 — Install flow with mode selection**
|
|
605
|
+
- **Category**: combined concept
|
|
606
|
+
- **Built from**: DT-002, DT-008, DT-011, DT-033
|
|
607
|
+
- **Sketch**: `install` becomes a first-class flow that resolves a source, preflights it, then asks the user to choose between `live source` and `local snapshot` when applicable.
|
|
608
|
+
- **Why it might help**: reduces ambiguity while preserving flexibility.
|
|
609
|
+
- **Open question**: when should WorkRail skip asking and choose a default confidently?
|
|
610
|
+
|
|
611
|
+
- **DT-045 — Guided trust-and-auth handshake**
|
|
612
|
+
- **Category**: missing enabling piece
|
|
613
|
+
- **Built from**: DT-007, DT-018, DT-024, DT-039
|
|
614
|
+
- **Sketch**: Add a reusable handshake primitive for any private or external source:
|
|
615
|
+
- identify trust tier
|
|
616
|
+
- select auth path
|
|
617
|
+
- verify access
|
|
618
|
+
- summarize implications
|
|
619
|
+
- **Why it might help**: several promising setup ideas fail without a good trust/auth moment.
|
|
620
|
+
- **Open question**: can this remain generic across Git, registries, and future source types?
|
|
621
|
+
|
|
622
|
+
- **DT-046 — Source change plan**
|
|
623
|
+
- **Category**: missing enabling piece
|
|
624
|
+
- **Built from**: DT-019, DT-030, DT-040
|
|
625
|
+
- **Sketch**: Represent source add/update/remove actions as explicit change plans before applying them.
|
|
626
|
+
- **Why it might help**: makes setup safer, reviewable, and potentially auditable.
|
|
627
|
+
- **Open question**: do users need history, or just preview + apply?
|
|
628
|
+
|
|
629
|
+
- **DT-047 — Install receipts**
|
|
630
|
+
- **Category**: missing enabling piece
|
|
631
|
+
- **Built from**: DT-009, DT-018, DT-033
|
|
632
|
+
- **Sketch**: After any install, create a durable receipt describing what was installed, from where, in what mode, at what revision, under what trust tier.
|
|
633
|
+
- **Why it might help**: bridges setup UX, provenance, diagnostics, and reproducibility.
|
|
634
|
+
- **Open question**: should receipts live with source manifests or separately?
|
|
635
|
+
|
|
636
|
+
- **DT-048 — Source capability descriptors**
|
|
637
|
+
- **Category**: product primitive
|
|
638
|
+
- **Built from**: DT-012, DT-036, DT-037
|
|
639
|
+
- **Sketch**: Let a source declare or derive a capability descriptor such as:
|
|
640
|
+
- portable refs
|
|
641
|
+
- requires auth
|
|
642
|
+
- supports live refresh
|
|
643
|
+
- trusted producer metadata
|
|
644
|
+
- **Why it might help**: setup decisions become data-driven instead of hard-coded by source kind.
|
|
645
|
+
- **Open question**: how much should be declared vs inferred?
|
|
646
|
+
|
|
647
|
+
- **DT-049 — Source package format**
|
|
648
|
+
- **Category**: combined concept
|
|
649
|
+
- **Built from**: DT-012, DT-021, DT-036
|
|
650
|
+
- **Sketch**: Define a loose “workflow pack” concept as a portable directory or archive with workflows, refs, and optional metadata markers.
|
|
651
|
+
- **Why it might help**: simplifies public/community distribution and install flows.
|
|
652
|
+
- **Open question**: does WorkRail need a formal package spec now, or just conventions?
|
|
653
|
+
|
|
654
|
+
- **DT-050 — Full-spectrum source inspector**
|
|
655
|
+
- **Category**: combined concept
|
|
656
|
+
- **Built from**: DT-006, DT-014, DT-015, DT-026, DT-041
|
|
657
|
+
- **Sketch**: Replace the current partial `sources` view with a complete inspector driven by the source catalog primitive.
|
|
658
|
+
- **Why it might help**: setup and debugging become one coherent experience.
|
|
659
|
+
- **Open question**: should inspection be read-only or offer repair actions inline?
|
|
660
|
+
|
|
661
|
+
- **DT-051 — Attach by proposal**
|
|
662
|
+
- **Category**: combined concept
|
|
663
|
+
- **Built from**: DT-003, DT-013, DT-040, DT-042
|
|
664
|
+
- **Sketch**: WorkRail detects likely sources or accepts user-provided ones, then generates a setup proposal the user can approve.
|
|
665
|
+
- **Why it might help**: gives proactive assistance without surprising mutation.
|
|
666
|
+
- **Open question**: how often should WorkRail initiate proposals vs wait for explicit user intent?
|
|
667
|
+
|
|
668
|
+
- **DT-052 — Minimal path: repo markers only**
|
|
669
|
+
- **Category**: simplicity shortcut
|
|
670
|
+
- **Built from**: DT-004, DT-017, DT-036
|
|
671
|
+
- **Sketch**: The simplest team-sharing path is just:
|
|
672
|
+
- add `.workrail/workflows/`
|
|
673
|
+
- optionally add repo marker metadata
|
|
674
|
+
- register the root once
|
|
675
|
+
- **Why it might help**: this may cover a very large percentage of team use cases with almost no product complexity.
|
|
676
|
+
- **Open question**: is this enough without an install command for cross-repo cases?
|
|
677
|
+
|
|
678
|
+
- **DT-053 — Source policy profiles**
|
|
679
|
+
- **Category**: missing enabling piece
|
|
680
|
+
- **Built from**: DT-019, DT-039, DT-045
|
|
681
|
+
- **Sketch**: Bundle trust, refresh, and reproducibility defaults into named profiles like `team-shared`, `personal-experimental`, `external-reviewed`, `snapshot-only`.
|
|
682
|
+
- **Why it might help**: reduces the number of knobs users must set.
|
|
683
|
+
- **Open question**: how many profiles are enough without becoming a second complexity layer?
|
|
684
|
+
|
|
685
|
+
- **DT-054 — Runtime-local resolution boundary**
|
|
686
|
+
- **Category**: architectural simplification
|
|
687
|
+
- **Built from**: DT-027, DT-033, DT-041
|
|
688
|
+
- **Sketch**: Introduce a clearer boundary where WorkRail runtime only resolves local effective sources; remote fetching becomes an install/sync concern.
|
|
689
|
+
- **Why it might help**: could simplify core discovery, validation, and provenance.
|
|
690
|
+
- **Open question**: what existing capabilities or expectations would this regress?
|
|
691
|
+
|
|
692
|
+
- **DT-055 — Setup readiness score**
|
|
693
|
+
- **Category**: diagnostics
|
|
694
|
+
- **Built from**: DT-024, DT-037, DT-050
|
|
695
|
+
- **Sketch**: Give candidate sources a readiness summary such as `ready`, `needs auth`, `needs import`, `not portable`, `conflicting IDs`.
|
|
696
|
+
- **Why it might help**: helps the user pick the right next action quickly.
|
|
697
|
+
- **Open question**: does scoring aid decisions or oversimplify nuanced conditions?
|
|
698
|
+
|
|
699
|
+
### Additional ideas (Round 4)
|
|
700
|
+
|
|
701
|
+
- **DT-056 — Capability negotiation for source handlers**
|
|
702
|
+
- **Category**: capability negotiation
|
|
703
|
+
- **Sketch**: Each source handler exposes capabilities such as `supports-live-refresh`, `supports-auth-discovery`, `supports-portable-refs`, `supports-snapshot-pin`, and setup flows adapt accordingly.
|
|
704
|
+
- **Why it might help**: avoids hard-coding UX assumptions by source kind and creates a future-proof extension seam.
|
|
705
|
+
- **Open question**: how much capability complexity is worth exposing publicly?
|
|
706
|
+
|
|
707
|
+
- **DT-057 — Setup resumability**
|
|
708
|
+
- **Category**: resumption
|
|
709
|
+
- **Sketch**: Long or interrupted setup flows can be resumed safely with an explicit setup draft / pending proposal record.
|
|
710
|
+
- **Why it might help**: private/self-hosted setup often spans multiple steps and may need user-side secret work before completion.
|
|
711
|
+
- **Open question**: should resumability be session-scoped only, or durable across chats?
|
|
712
|
+
|
|
713
|
+
- **DT-058 — Authoring-side export for sharing**
|
|
714
|
+
- **Category**: authoring UX
|
|
715
|
+
- **Sketch**: Add a producer-oriented command/workflow that packages current workflows and refs into a shareable “workflow pack” or repo-ready structure.
|
|
716
|
+
- **Why it might help**: easier producer UX often improves consumer setup indirectly.
|
|
717
|
+
- **Open question**: should this target repo layouts, archives, or both?
|
|
718
|
+
|
|
719
|
+
- **DT-059 — Install-time validation tiers**
|
|
720
|
+
- **Category**: validation
|
|
721
|
+
- **Sketch**: Split validation into `structural`, `portability`, `compatibility`, and `policy` checks during setup.
|
|
722
|
+
- **Why it might help**: helps users understand whether a source is merely valid JSON vs truly usable in their environment.
|
|
723
|
+
- **Open question**: which tiers should block install vs warn only?
|
|
724
|
+
|
|
725
|
+
- **DT-060 — Dashboard/source observability panel**
|
|
726
|
+
- **Category**: dashboard / observability
|
|
727
|
+
- **Sketch**: Surface source inventory, health, last sync, trust tier, conflicts, and recent setup actions in the console/dashboard.
|
|
728
|
+
- **Why it might help**: gives WorkRail a durable home for source visibility beyond CLI or chat replies.
|
|
729
|
+
- **Open question**: should dashboard observability be phase 1 or follow once the source catalog exists?
|
|
730
|
+
|
|
731
|
+
- **DT-061 — Model-adaptive setup UX**
|
|
732
|
+
- **Category**: model variability
|
|
733
|
+
- **Sketch**: Tune setup prompts and defaults based on model capability / context budget so weaker models rely more on structured recipes and stronger models can handle richer diagnosis.
|
|
734
|
+
- **Why it might help**: keeps setup reliable across model variability instead of assuming all agents can improvise equally well.
|
|
735
|
+
- **Open question**: how do we keep the behavior predictable across clients?
|
|
736
|
+
|
|
737
|
+
- **DT-062 — Compatibility and migration assistant**
|
|
738
|
+
- **Category**: migration / compatibility
|
|
739
|
+
- **Sketch**: Detect current env-var configuration and propose migration into canonical `.workrail/` config or source manifests without breaking existing behavior.
|
|
740
|
+
- **Why it might help**: adoption will be much easier if current users can migrate incrementally.
|
|
741
|
+
- **Open question**: what migration format preserves comments, intent, and trust settings best?
|
|
742
|
+
|
|
743
|
+
- **DT-063 — Source testing harness**
|
|
744
|
+
- **Category**: testing strategy
|
|
745
|
+
- **Sketch**: Add a test harness for setup flows and source handlers using scenario fixtures (GitHub, self-hosted GitLab, broken auth, local folders, shadow conflicts, portable/non-portable refs).
|
|
746
|
+
- **Why it might help**: setup UX will be brittle without a strong scenario-driven test matrix.
|
|
747
|
+
- **Open question**: what should be unit-tested vs end-to-end?
|
|
748
|
+
|
|
749
|
+
- **DT-064 — Policy packs**
|
|
750
|
+
- **Category**: security / policy
|
|
751
|
+
- **Sketch**: Allow organizations to define allowed source origins, trust defaults, and install policies through shareable policy packs.
|
|
752
|
+
- **Why it might help**: teams may want simplicity without giving up governance.
|
|
753
|
+
- **Open question**: how much policy surface is needed before it becomes enterprise-only complexity?
|
|
754
|
+
|
|
755
|
+
- **DT-065 — Performance-aware source strategy**
|
|
756
|
+
- **Category**: performance
|
|
757
|
+
- **Sketch**: Setup chooses or recommends source modes based on likely scale:
|
|
758
|
+
- many repos → prefer roots + local discovery
|
|
759
|
+
- large remote sources → prefer snapshots or scheduled sync
|
|
760
|
+
- tiny local packs → direct import
|
|
761
|
+
- **Why it might help**: avoids a UX that looks simple but performs poorly at scale.
|
|
762
|
+
- **Open question**: how should WorkRail detect when to shift strategies?
|
|
763
|
+
|
|
764
|
+
- **DT-066 — Conflict rehearsal before attach**
|
|
765
|
+
- **Category**: compatibility / validation
|
|
766
|
+
- **Sketch**: Before enabling a source, simulate how its workflows would merge into the current catalog, including shadowing, ID conflicts, and bundled-protection rules.
|
|
767
|
+
- **Why it might help**: prevents confusing post-install surprises.
|
|
768
|
+
- **Open question**: what level of detail is most useful in the rehearsal output?
|
|
769
|
+
|
|
770
|
+
- **DT-067 — Reference portability contract**
|
|
771
|
+
- **Category**: packaging / validation
|
|
772
|
+
- **Sketch**: Add explicit setup-time analysis of whether workflows depend on `workspace`, `package`, or `workflow`-relative references and recommend fixes or install modes accordingly.
|
|
773
|
+
- **Why it might help**: many third-party workflows are only truly sharable if refs are portable.
|
|
774
|
+
- **Open question**: should non-portable refs block community installs by default?
|
|
775
|
+
|
|
776
|
+
- **DT-068 — Progressive setup fallback ladder**
|
|
777
|
+
- **Category**: resilience
|
|
778
|
+
- **Sketch**: If the ideal setup path fails, WorkRail falls back deliberately:
|
|
779
|
+
- live mount
|
|
780
|
+
- snapshot install
|
|
781
|
+
- local import
|
|
782
|
+
- manual instructions
|
|
783
|
+
- **Why it might help**: turns failure into graceful degradation instead of dead ends.
|
|
784
|
+
- **Open question**: how can fallback stay understandable rather than feeling magical?
|
|
785
|
+
|
|
786
|
+
- **DT-069 — Setup transcript artifact**
|
|
787
|
+
- **Category**: observability / learnability
|
|
788
|
+
- **Sketch**: Persist a structured transcript of setup decisions, evidence, chosen mode, and unresolved warnings so users and agents can revisit why the system is configured the way it is.
|
|
789
|
+
- **Why it might help**: improves learnability, debugging, and handoff across sessions.
|
|
790
|
+
- **Open question**: should this be file-based initially or a dashboard/session artifact?
|
|
791
|
+
|
|
792
|
+
## Coverage map
|
|
793
|
+
|
|
794
|
+
- **Protocol / resumption** | medium | DT-030, DT-046, DT-057
|
|
795
|
+
- **Authoring UX** | medium | DT-017, DT-036, DT-058
|
|
796
|
+
- **Validation** | high | DT-024, DT-037, DT-059, DT-066, DT-067
|
|
797
|
+
- **Dashboard / observability** | medium | DT-026, DT-050, DT-060, DT-069
|
|
798
|
+
- **Model variability** | low | DT-061
|
|
799
|
+
- **External workflow packaging** | medium | DT-012, DT-049, DT-058, DT-067
|
|
800
|
+
- **Loops correctness / workflow semantics safety** | low | DT-059, DT-067 (indirect only)
|
|
801
|
+
- **Capability negotiation** | medium | DT-048, DT-056
|
|
802
|
+
- **Security / policy** | medium | DT-018, DT-039, DT-064
|
|
803
|
+
- **Performance** | low | DT-065
|
|
804
|
+
- **Compatibility / migration** | medium | DT-019, DT-062, DT-066
|
|
805
|
+
- **Testing strategy** | low | DT-063
|
|
806
|
+
- **Persona / journey quality** | high | Persona card, Journey map, Observations, Insights
|
|
807
|
+
- **POV clarity** | high | POV, Problem statement, HMW, Success criteria
|
|
808
|
+
- **Prototype learnability** | medium | Prototype Spec, DT-042, DT-051, DT-069
|
|
809
|
+
- **Falsifiability / testability** | medium | Evidence gaps, What would change our mind, Test Plan, DT-063
|
|
810
|
+
|
|
811
|
+
## Smart signals and leverage points
|
|
812
|
+
|
|
813
|
+
### High-value signals to exploit
|
|
814
|
+
|
|
815
|
+
- **Explicit `workspacePath`**
|
|
816
|
+
- authoritative per-request workspace identity
|
|
817
|
+
- replaces trust in MCP roots for discovery-sensitive decisions
|
|
818
|
+
- **Resolved git repo root from `workspacePath`**
|
|
819
|
+
- gives a stable cross-session unit for silent persistence and cross-repo grouping
|
|
820
|
+
- **Current path locality inside the repo**
|
|
821
|
+
- allows nearest-module / nearest-team discovery and ranking
|
|
822
|
+
- **Remembered repo roots in `~/.workrail/config.json`**
|
|
823
|
+
- enables cross-repo surfacing without requiring repo changes
|
|
824
|
+
- **Workflow usage history**
|
|
825
|
+
- enables “suggested here”, recency, and frequent-use ranking later
|
|
826
|
+
- **Source health / validation state**
|
|
827
|
+
- enables ranking healthy sources higher and making broken sources legible
|
|
828
|
+
- **Portable reference analysis**
|
|
829
|
+
- enables more intelligent guidance for shared vs import/install workflows
|
|
830
|
+
|
|
831
|
+
### Product principle for smart behavior
|
|
832
|
+
|
|
833
|
+
- Use signals to **rank, suggest, explain, and remember**
|
|
834
|
+
- Avoid using signals to create opaque, silent behavior the user cannot later inspect
|
|
835
|
+
|
|
836
|
+
## Remote repository UX direction
|
|
837
|
+
|
|
838
|
+
### Core product stance
|
|
839
|
+
|
|
840
|
+
- For remote repositories, WorkRail should optimize for:
|
|
841
|
+
- one user intent
|
|
842
|
+
- managed local effective state
|
|
843
|
+
- minimal guided auth when needed
|
|
844
|
+
- clear provenance after install
|
|
845
|
+
|
|
846
|
+
### Recommended default
|
|
847
|
+
|
|
848
|
+
- **Managed sync should be the default remote-repo mode**
|
|
849
|
+
- Remote repositories are the **acquisition and update source**
|
|
850
|
+
- WorkRail should still operate over a **local effective copy** for discovery, validation, and execution-time reasoning
|
|
851
|
+
|
|
852
|
+
### Why managed sync by default
|
|
853
|
+
|
|
854
|
+
- keeps remote repos feeling low-friction and continuously useful
|
|
855
|
+
- avoids making users manually refresh every shared workflow repo
|
|
856
|
+
- still preserves a local effective state that is easier to debug than purely live remote resolution
|
|
857
|
+
- fits better with cross-repo remembered sources and future console management
|
|
858
|
+
|
|
859
|
+
### Install / connection modes
|
|
860
|
+
|
|
861
|
+
- **Managed sync (default)**
|
|
862
|
+
- WorkRail clones or materializes a local effective copy
|
|
863
|
+
- WorkRail refreshes it on a managed cadence or on demand
|
|
864
|
+
- user experiences the source as “connected and kept current”
|
|
865
|
+
- **Pinned snapshot**
|
|
866
|
+
- for stronger reproducibility or lower-trust scenarios
|
|
867
|
+
- user updates explicitly
|
|
868
|
+
- **Live remote**
|
|
869
|
+
- not recommended as a default
|
|
870
|
+
- if ever supported, should be advanced-only
|
|
871
|
+
|
|
872
|
+
### Mental model
|
|
873
|
+
|
|
874
|
+
- Users should think:
|
|
875
|
+
- “I’m adding a workflow repo”
|
|
876
|
+
- Not:
|
|
877
|
+
- “I’m choosing among Git storage modes”
|
|
878
|
+
- WorkRail decides the operational details and explains them simply:
|
|
879
|
+
- source repo
|
|
880
|
+
- local effective copy
|
|
881
|
+
- sync status
|
|
882
|
+
- last updated time
|
|
883
|
+
|
|
884
|
+
### Public remote repos
|
|
885
|
+
|
|
886
|
+
- user provides a remote repo URL
|
|
887
|
+
- WorkRail:
|
|
888
|
+
- detects host/type
|
|
889
|
+
- connects it in managed-sync mode by default
|
|
890
|
+
- validates workflows
|
|
891
|
+
- remembers it in user config
|
|
892
|
+
- exposes it in grouped workflow discovery
|
|
893
|
+
|
|
894
|
+
### Private / self-hosted remote repos
|
|
895
|
+
|
|
896
|
+
- user provides a remote repo URL
|
|
897
|
+
- WorkRail:
|
|
898
|
+
- detects likely auth path
|
|
899
|
+
- offers minimal auth guidance:
|
|
900
|
+
- SSH
|
|
901
|
+
- or HTTPS token
|
|
902
|
+
- connects it in managed-sync mode by default
|
|
903
|
+
- remembers it in user config
|
|
904
|
+
- exposes sync/provenance state clearly
|
|
905
|
+
|
|
906
|
+
### Cross-repo behavior
|
|
907
|
+
|
|
908
|
+
- Remembered remote repos should surface alongside local remembered roots
|
|
909
|
+
- `list_workflows(workspacePath=...)` should still rank by relevance:
|
|
910
|
+
- nearby team/module workflows
|
|
911
|
+
- same repo workflows
|
|
912
|
+
- other remembered local roots
|
|
913
|
+
- remembered remote-synced repos
|
|
914
|
+
- built-in workflows
|
|
915
|
+
|
|
916
|
+
### Console implications for remote repos
|
|
917
|
+
|
|
918
|
+
- console should eventually show:
|
|
919
|
+
- remote source URL
|
|
920
|
+
- sync mode
|
|
921
|
+
- last sync time
|
|
922
|
+
- sync health
|
|
923
|
+
- local effective state path / identity
|
|
924
|
+
- refresh / forget actions
|
|
925
|
+
|
|
926
|
+
## Shared artifact / inbox UX direction
|
|
927
|
+
|
|
928
|
+
### Core product stance
|
|
929
|
+
|
|
930
|
+
- Slack, email, chat, copy/paste, and similar channels should be treated as **delivery channels**, not durable source types
|
|
931
|
+
- WorkRail should classify what the user actually received, then route it into the correct setup path
|
|
932
|
+
|
|
933
|
+
### Why this matters
|
|
934
|
+
|
|
935
|
+
- many workflows will be shared as:
|
|
936
|
+
- repo URLs pasted into chat
|
|
937
|
+
- single JSON files
|
|
938
|
+
- zipped workflow packs
|
|
939
|
+
- snippets pasted into Slack or an IDE
|
|
940
|
+
- these delivery paths create extra user pain around provenance, completeness, portability, and updates
|
|
941
|
+
|
|
942
|
+
### Additional user difficulties
|
|
943
|
+
|
|
944
|
+
- **Provenance**
|
|
945
|
+
- users may not know who created the workflow or where it originally came from
|
|
946
|
+
- **Completeness**
|
|
947
|
+
- a shared JSON file may omit referenced prompts, schemas, or supporting assets
|
|
948
|
+
- **Portability**
|
|
949
|
+
- the workflow may assume the sender's repo layout or local files
|
|
950
|
+
- **Compatibility**
|
|
951
|
+
- the workflow may depend on newer WorkRail features or authoring contracts
|
|
952
|
+
- **Update path**
|
|
953
|
+
- file-based sharing often has no obvious refresh/sync story
|
|
954
|
+
- **Trust**
|
|
955
|
+
- users may not know whether the shared artifact is reviewed or safe
|
|
956
|
+
- **Conflict risk**
|
|
957
|
+
- imported workflows may collide with existing workflow IDs or names
|
|
958
|
+
|
|
959
|
+
### Recommended UX
|
|
960
|
+
|
|
961
|
+
- expose a unified user intent such as:
|
|
962
|
+
- `use this workflow`
|
|
963
|
+
- `import this shared workflow`
|
|
964
|
+
- then classify the payload into one of:
|
|
965
|
+
- remote repo URL
|
|
966
|
+
- local repo / directory
|
|
967
|
+
- single workflow file
|
|
968
|
+
- workflow pack / zip
|
|
969
|
+
- pasted JSON snippet
|
|
970
|
+
|
|
971
|
+
### Routing model
|
|
972
|
+
|
|
973
|
+
- **Repo URL shared in Slack/chat**
|
|
974
|
+
- route into the normal remote-repo flow
|
|
975
|
+
- default to managed sync
|
|
976
|
+
- **Single workflow JSON file**
|
|
977
|
+
- import as a personal/local workflow unless the user chooses a broader scope
|
|
978
|
+
- run portability and completeness checks first
|
|
979
|
+
- **Workflow pack / zip**
|
|
980
|
+
- unpack into managed local storage
|
|
981
|
+
- validate contents and refs before enabling
|
|
982
|
+
- **Pasted JSON snippet**
|
|
983
|
+
- validate and classify first
|
|
984
|
+
- if incomplete or malformed, explain what is missing before import
|
|
985
|
+
|
|
986
|
+
### Smart behavior needed
|
|
987
|
+
|
|
988
|
+
- classification of the shared artifact
|
|
989
|
+
- preflight readiness checks:
|
|
990
|
+
- structural validity
|
|
991
|
+
- portability
|
|
992
|
+
- compatibility
|
|
993
|
+
- trust/provenance
|
|
994
|
+
- conflict rehearsal
|
|
995
|
+
- install-mode recommendation
|
|
996
|
+
- receipt/history explaining:
|
|
997
|
+
- where it came from
|
|
998
|
+
- how it was ingested
|
|
999
|
+
- what scope it was installed into
|
|
1000
|
+
|
|
1001
|
+
### Mental model
|
|
1002
|
+
|
|
1003
|
+
- users should not have to think:
|
|
1004
|
+
- “Is Slack a source type?”
|
|
1005
|
+
- users should think:
|
|
1006
|
+
- “I received a workflow or workflow repo”
|
|
1007
|
+
- “WorkRail can figure out how to ingest it”
|
|
1008
|
+
|
|
1009
|
+
### Console implications for shared artifacts
|
|
1010
|
+
|
|
1011
|
+
- console should eventually show:
|
|
1012
|
+
- imported/shared workflows and their origin channel
|
|
1013
|
+
- missing-assets or portability warnings
|
|
1014
|
+
- whether an imported artifact has an update path
|
|
1015
|
+
- receipts/history for imports from chat, Slack, email, or pasted content
|
|
1016
|
+
|
|
1017
|
+
## Phased smart features
|
|
1018
|
+
|
|
1019
|
+
### Phase 1 smarts
|
|
1020
|
+
|
|
1021
|
+
- require explicit `workspacePath`
|
|
1022
|
+
- silently remember repo roots in user-level `~/.workrail/config.json`
|
|
1023
|
+
- recursively discover team/module `.workrail/workflows/` under remembered roots
|
|
1024
|
+
- rank workflows by proximity:
|
|
1025
|
+
- current module/team
|
|
1026
|
+
- same repo
|
|
1027
|
+
- other remembered repos
|
|
1028
|
+
- built-in
|
|
1029
|
+
- show grouped source visibility and simple provenance explanations
|
|
1030
|
+
- explain precedence clearly when rooted-sharing and legacy sources coexist
|
|
1031
|
+
|
|
1032
|
+
### Phase 2 smarts
|
|
1033
|
+
|
|
1034
|
+
- recency/frequency-based ranking
|
|
1035
|
+
- “suggested for this workspace” workflows
|
|
1036
|
+
- root suggestions based on repeated usage
|
|
1037
|
+
- health-aware ranking
|
|
1038
|
+
- conflict rehearsal before attach / enable
|
|
1039
|
+
- migration helper from env-based source setup
|
|
1040
|
+
|
|
1041
|
+
### Phase 3 smarts
|
|
1042
|
+
|
|
1043
|
+
- cross-repo recommendations based on historical usage
|
|
1044
|
+
- trusted source tiers / policy profiles
|
|
1045
|
+
- portable workflow-pack install flows
|
|
1046
|
+
- install receipts / setup transcripts
|
|
1047
|
+
- richer org/team heuristics
|
|
1048
|
+
- more advanced guided install for remote and self-hosted sources
|
|
1049
|
+
|
|
1050
|
+
## Console integration direction
|
|
1051
|
+
|
|
1052
|
+
### Role of the console
|
|
1053
|
+
|
|
1054
|
+
- MCP/tools remain the **runtime entry point**
|
|
1055
|
+
- the console becomes the **control plane** for visibility, management, and trust
|
|
1056
|
+
|
|
1057
|
+
### Why console matters
|
|
1058
|
+
|
|
1059
|
+
- silent persistence is good UX only if users can later inspect and manage what WorkRail remembered
|
|
1060
|
+
- grouped discovery becomes more trustworthy when users can inspect roots, sources, health, and precedence outside of chat/tool output
|
|
1061
|
+
|
|
1062
|
+
### Console phase 1
|
|
1063
|
+
|
|
1064
|
+
- remembered roots view
|
|
1065
|
+
- discovered workflow folders by repo/module/team
|
|
1066
|
+
- grouped visible workflows
|
|
1067
|
+
- simple provenance:
|
|
1068
|
+
- why this workflow is visible
|
|
1069
|
+
- which remembered root or built-in source it came from
|
|
1070
|
+
- basic actions:
|
|
1071
|
+
- forget root
|
|
1072
|
+
- reindex root
|
|
1073
|
+
- inspect source grouping
|
|
1074
|
+
|
|
1075
|
+
### Console phase 2
|
|
1076
|
+
|
|
1077
|
+
- source health dashboard
|
|
1078
|
+
- precedence inspector
|
|
1079
|
+
- cross-repo browser
|
|
1080
|
+
- recent / recommended workflows
|
|
1081
|
+
- migration visibility for old env-based setups vs remembered-root setups
|
|
1082
|
+
|
|
1083
|
+
### Console phase 3
|
|
1084
|
+
|
|
1085
|
+
- install / attach UI
|
|
1086
|
+
- trust and policy management
|
|
1087
|
+
- ownership views by team/module
|
|
1088
|
+
- workflow pack management
|
|
1089
|
+
- usage analytics for discovery tuning
|
|
1090
|
+
|
|
1091
|
+
### Architectural implication
|
|
1092
|
+
|
|
1093
|
+
- backend design should not assume chat-only consumption
|
|
1094
|
+
- phase-1 backend data should already be shaped so the console can later render:
|
|
1095
|
+
- remembered roots
|
|
1096
|
+
- discovered team/module workflow folders
|
|
1097
|
+
- grouped visible workflows
|
|
1098
|
+
- source provenance
|
|
1099
|
+
- precedence / health summaries
|
|
1100
|
+
|
|
1101
|
+
### Ideation reflection (Round 4)
|
|
1102
|
+
|
|
1103
|
+
- **Where would we most likely regret not exploring further?**
|
|
1104
|
+
- migration / compatibility and setup testing strategy, because the best UX ideas could still fail badly in rollout without them
|
|
1105
|
+
- **What category did we avoid because it felt uncomfortable or "too big"?**
|
|
1106
|
+
- deeper policy/governance and cross-client automation boundaries
|
|
1107
|
+
- **What assumption seems to be driving most of our ideas?**
|
|
1108
|
+
- that WorkRail should graduate from a workflow runtime with env-based configuration into a more productized workflow platform with owned setup UX
|
|
1109
|
+
|
|
1110
|
+
## Candidate concept packages (5)
|
|
1111
|
+
|
|
1112
|
+
- **Package name**: Rooted Team Sharing | **member DT-IDs**: DT-004, DT-005, DT-016, DT-043, DT-052 | **what it enables**: a near-zero-config team sharing path centered on repo-local conventions plus one-time root registration
|
|
1113
|
+
- **Package name**: Guided Install | **member DT-IDs**: DT-002, DT-003, DT-011, DT-044, DT-045, DT-051 | **what it enables**: a WorkRail-owned setup journey from URL/path to connected source with approval, auth help, and mode selection
|
|
1114
|
+
- **Package name**: Source Control Tower | **member DT-IDs**: DT-006, DT-014, DT-015, DT-041, DT-050, DT-055 | **what it enables**: full visibility into active and candidate sources, their health, precedence, and next actions
|
|
1115
|
+
- **Package name**: Portable Workflow Packs | **member DT-IDs**: DT-012, DT-021, DT-036, DT-049 | **what it enables**: a more distributable and installable unit for public/community or cross-repo workflow sharing
|
|
1116
|
+
- **Package name**: Local-First Runtime Boundary | **member DT-IDs**: DT-008, DT-033, DT-047, DT-053, DT-054 | **what it enables**: a simpler runtime that reasons over local effective sources while keeping source provenance, trust, and reproducibility explicit
|
|
1117
|
+
|
|
1118
|
+
### Ideation reflection (Round 3)
|
|
1119
|
+
|
|
1120
|
+
- **What critical primitive seems to be missing for the best packages to work?**
|
|
1121
|
+
- a canonical **source catalog** / effective-source model that all setup, inspection, and diagnostics can target
|
|
1122
|
+
- **What is the simplest idea we are dismissing too quickly?**
|
|
1123
|
+
- rooted team sharing via `.workrail/workflows/` plus one-time root registration
|
|
1124
|
+
- **What assumption seems to be driving most of our ideas?**
|
|
1125
|
+
- that the best UX comes from shifting setup into WorkRail-owned flows and `.workrail/` artifacts rather than leaving MCP env config as the primary user-facing surface
|
|
1126
|
+
|
|
1127
|
+
## Interesting analogies (3 bullets)
|
|
1128
|
+
|
|
1129
|
+
- **Compiler/module graph**: source hookup may benefit from being modeled like import resolution with shadowing, provenance, and diagnostics.
|
|
1130
|
+
- **Logistics inbox/intake**: users often know they found “something useful” before they know what kind of source it is or how it should be attached.
|
|
1131
|
+
- **Aviation preflight**: consistent, lightweight verification could turn setup from mysterious trial-and-error into a predictable safety check.
|
|
1132
|
+
|
|
1133
|
+
### Ideation reflection (Round 2)
|
|
1134
|
+
|
|
1135
|
+
- **Which analogy created the most non-obvious leverage?**
|
|
1136
|
+
- the compiler/module graph analogy, because it suggests a strong internal and user-facing model for precedence, shadowing, provenance, and diagnostics
|
|
1137
|
+
- **What is the simplest idea we are dismissing too quickly?**
|
|
1138
|
+
- install snapshots only, because it may dramatically simplify user trust and runtime behavior
|
|
1139
|
+
- **What assumption seems to be driving most of our ideas?**
|
|
1140
|
+
- that the biggest UX win comes from WorkRail becoming the setup orchestrator rather than just documenting lower-level config
|
|
1141
|
+
|
|
1142
|
+
## Emerging patterns (5 bullets)
|
|
1143
|
+
|
|
1144
|
+
- Many ideas converge on **WorkRail-owned setup flows** rather than better env-var docs.
|
|
1145
|
+
- `.workrail/` appears repeatedly as the right place for canonical config, manifests, and shared conventions.
|
|
1146
|
+
- A strong theme is **install/import vs live source** as a first-order design choice, not an implementation detail.
|
|
1147
|
+
- Discovery, provenance, and diagnostics keep showing up as inseparable from setup simplicity.
|
|
1148
|
+
- Team sharing likely benefits more from **root registration + repo-local conventions** than from per-user source registration.
|
|
1149
|
+
|
|
1150
|
+
### Ideation reflection
|
|
1151
|
+
|
|
1152
|
+
- **Which idea categories are underrepresented so far?**
|
|
1153
|
+
- registry/package-specific ideas are lighter than Git and local-folder ideas
|
|
1154
|
+
- migration / backward-compatibility UX could use more attention later
|
|
1155
|
+
- **What is the simplest idea we are dismissing too quickly?**
|
|
1156
|
+
- “just use this folder” may solve a surprisingly large share of real cases
|
|
1157
|
+
- **What assumption seems to be driving most of our ideas?**
|
|
1158
|
+
- that users want WorkRail to own the setup journey instead of MCP client config being the main setup surface
|
|
1159
|
+
|
|
1160
|
+
## Clusters (synthesized)
|
|
1161
|
+
|
|
1162
|
+
- **Cluster 1 — Canonical source model**
|
|
1163
|
+
- **Theme**: Move from fragmented env vars to a single WorkRail-owned source model
|
|
1164
|
+
- **Problem it addresses**: configuration sprawl and implementation-shaped setup
|
|
1165
|
+
- **Representative DT-IDs**: DT-001, DT-009, DT-016, DT-041, DT-048
|
|
1166
|
+
- **Tension**: central config vs per-source manifests
|
|
1167
|
+
|
|
1168
|
+
- **Cluster 2 — Guided setup / install**
|
|
1169
|
+
- **Theme**: Turn hookup into a product flow rather than documentation work
|
|
1170
|
+
- **Problem it addresses**: too many concepts exposed too early
|
|
1171
|
+
- **Representative DT-IDs**: DT-002, DT-003, DT-011, DT-042, DT-044, DT-051
|
|
1172
|
+
- **Tension**: automation vs user control
|
|
1173
|
+
|
|
1174
|
+
- **Cluster 3 — Rooted team sharing**
|
|
1175
|
+
- **Theme**: Use repo-local conventions and root registration as the main team-sharing path
|
|
1176
|
+
- **Problem it addresses**: today’s setup is too personal-config centric
|
|
1177
|
+
- **Representative DT-IDs**: DT-004, DT-005, DT-017, DT-043, DT-052
|
|
1178
|
+
- **Tension**: simplicity for teams vs completeness for public/external distribution
|
|
1179
|
+
|
|
1180
|
+
- **Cluster 4 — Trust, auth, and policy**
|
|
1181
|
+
- **Theme**: Make private/self-hosted/external setup understandable and governable
|
|
1182
|
+
- **Problem it addresses**: hidden auth rules and opaque trust boundaries
|
|
1183
|
+
- **Representative DT-IDs**: DT-007, DT-018, DT-039, DT-045, DT-064
|
|
1184
|
+
- **Tension**: easy onboarding vs explicit trust review
|
|
1185
|
+
|
|
1186
|
+
- **Cluster 5 — Source visibility and diagnostics**
|
|
1187
|
+
- **Theme**: Treat inspection and repair as part of setup, not afterthoughts
|
|
1188
|
+
- **Problem it addresses**: fragile-feeling setup and incomplete source introspection
|
|
1189
|
+
- **Representative DT-IDs**: DT-006, DT-014, DT-015, DT-041, DT-050, DT-055
|
|
1190
|
+
- **Tension**: rich visibility vs information overload
|
|
1191
|
+
|
|
1192
|
+
- **Cluster 6 — Packaging and portability**
|
|
1193
|
+
- **Theme**: Make workflows easier to share as portable units with refs and metadata
|
|
1194
|
+
- **Problem it addresses**: cross-repo/community setup and reference portability
|
|
1195
|
+
- **Representative DT-IDs**: DT-012, DT-036, DT-049, DT-058, DT-067
|
|
1196
|
+
- **Tension**: loose conventions vs formal packaging spec
|
|
1197
|
+
|
|
1198
|
+
- **Cluster 7 — Runtime boundary and sync model**
|
|
1199
|
+
- **Theme**: Decide whether runtime should mount heterogeneous external sources or mostly resolve local effective sources
|
|
1200
|
+
- **Problem it addresses**: complexity, reproducibility, and provenance drift
|
|
1201
|
+
- **Representative DT-IDs**: DT-008, DT-019, DT-033, DT-047, DT-053, DT-054, DT-068
|
|
1202
|
+
- **Tension**: freshness vs runtime simplicity
|
|
1203
|
+
|
|
1204
|
+
- **Cluster 8 — Migration, observability, and rollout safety**
|
|
1205
|
+
- **Theme**: Ensure a cleaner model can actually ship without breaking users
|
|
1206
|
+
- **Problem it addresses**: adoption risk, hidden regressions, and weak validation of setup UX
|
|
1207
|
+
- **Representative DT-IDs**: DT-057, DT-059, DT-060, DT-062, DT-063, DT-066, DT-069
|
|
1208
|
+
- **Tension**: future-first product cleanup vs migration smoothness
|
|
1209
|
+
|
|
1210
|
+
## Candidate directions (top 5)
|
|
1211
|
+
|
|
1212
|
+
- **Direction 1 — Guided Install on top of a canonical source catalog**
|
|
1213
|
+
- **North Star (1–2 sentences)**: A user can say “use this repo/folder/pack” and WorkRail turns that into a guided, inspectable setup flow backed by a canonical effective-source catalog. The user no longer has to think in env vars or source-specific plumbing.
|
|
1214
|
+
- **Summary**: This best addresses the core JTBD now because it directly targets setup friction while preserving explicit provenance, diagnostics, and future extensibility. Main risks are migration complexity and overreaching into cross-client configuration territory. Migration cost is moderate because env vars can remain as compatibility inputs while new `.workrail/` artifacts become canonical.
|
|
1215
|
+
- **Scoring (1–5 with 1-line why)**:
|
|
1216
|
+
- **Impact: 5**: directly improves the common “I found a source, make it work” flow
|
|
1217
|
+
- **Confidence: 4**: strongly supported by current architecture and backlog synthesis, though not by direct user research yet
|
|
1218
|
+
- **Migration cost: 3**: requires new config/catalog/UX layers but can coexist with legacy env vars
|
|
1219
|
+
- **Model-robustness: 4**: recipe/routed setup can be made reliable across models if structured well
|
|
1220
|
+
- **Time-to-value: 4**: can likely deliver incremental wins before the full platform vision lands
|
|
1221
|
+
|
|
1222
|
+
- **Direction 2 — Rooted Team Sharing as the default collaboration model**
|
|
1223
|
+
- **North Star (1–2 sentences)**: Teams share workflows by putting them in team-owned or module-owned `.workrail/workflows/` directories under remembered repo roots, and WorkRail discovers them recursively. Most team workflow hookup disappears into convention, discovery, and grouped visibility rather than per-source configuration.
|
|
1224
|
+
- **Summary**: This is probably the cleanest internal-team story and aligns strongly with the repo’s platform vision, with one important refinement: it should not depend on MCP roots or on placing `.workrail/` at the main repo root. It is lower risk and simpler than solving all third-party installation at once, but it does less for public/community and ad hoc cross-repo adoption. Migration cost is relatively low because it adds a convention-based path rather than replacing everything.
|
|
1225
|
+
- **Scoring (1–5 with 1-line why)**:
|
|
1226
|
+
- **Impact: 4**: high for team/repo use cases, weaker for arbitrary public sources
|
|
1227
|
+
- **Confidence: 4**: strongly aligned with existing docs and current `.workrail/` direction
|
|
1228
|
+
- **Migration cost: 2**: mostly additive with limited disruption
|
|
1229
|
+
- **Model-robustness: 5**: conventions and root registration are simple for weaker models to follow
|
|
1230
|
+
- **Time-to-value: 5**: likely the fastest path to meaningful simplification
|
|
1231
|
+
|
|
1232
|
+
- **Direction 3 — Local-first runtime boundary with install/snapshot flows**
|
|
1233
|
+
- **North Star (1–2 sentences)**: Remote or heterogeneous sources are installed or synced into local effective sources, and runtime discovery operates mostly on local files. Setup becomes an import/sync problem; execution becomes a local resolution problem.
|
|
1234
|
+
- **Summary**: This is the cleanest architectural story for provenance, reproducibility, and debugging. It may reduce surprising runtime behavior and improve trust, but it risks losing the convenience of live sources and may feel heavier unless update flows are excellent. Migration cost is higher if current expectations lean toward live mounting.
|
|
1235
|
+
- **Scoring (1–5 with 1-line why)**:
|
|
1236
|
+
- **Impact: 4**: strong architectural and UX simplification if accepted
|
|
1237
|
+
- **Confidence: 3**: promising but more assumption-heavy and further from current user expectations
|
|
1238
|
+
- **Migration cost: 4**: could force behavioral changes for existing source setups
|
|
1239
|
+
- **Model-robustness: 4**: local-only runtime is easier for agents to reason about
|
|
1240
|
+
- **Time-to-value: 2**: more foundational work before users feel the benefit
|
|
1241
|
+
|
|
1242
|
+
- **Direction 4 — Source Control Tower first**
|
|
1243
|
+
- **North Star (1–2 sentences)**: Before fully reinventing setup, make source visibility, health, conflicts, and provenance crystal clear through a unified source inspector and diagnostics layer. Users and agents can see exactly what is happening today.
|
|
1244
|
+
- **Summary**: This is a safer, lower-regret direction if we believe discovery/provenance may be the real pain rather than hookup. It improves debuggability and can support later setup flows, but by itself it does not fully solve the “make this source work” JTBD. Migration cost is low because it mostly adds inspection capabilities.
|
|
1245
|
+
- **Scoring (1–5 with 1-line why)**:
|
|
1246
|
+
- **Impact: 3**: meaningful but less transformational than setup-first directions
|
|
1247
|
+
- **Confidence: 5**: strongly grounded in current gaps and low-risk to add
|
|
1248
|
+
- **Migration cost: 1**: mostly additive
|
|
1249
|
+
- **Model-robustness: 5**: inspection tools are easier to use reliably than mutating setup tools
|
|
1250
|
+
- **Time-to-value: 5**: likely fast to ship and immediately useful
|
|
1251
|
+
|
|
1252
|
+
- **Direction 5 — Portable Workflow Packs**
|
|
1253
|
+
- **North Star (1–2 sentences)**: Make the portable workflow directory or pack the main sharing unit for public/community and cross-repo distribution. WorkRail installs and validates packs with clear reference portability guarantees.
|
|
1254
|
+
- **Summary**: This direction is attractive for ecosystem growth and cleaner distribution, especially once `resolveFrom: workflow` style portability is mature. It is less directly useful for immediate internal-team simplicity and may require more packaging/formalization than the product needs right now. Migration cost is moderate and value is more medium-term.
|
|
1255
|
+
- **Scoring (1–5 with 1-line why)**:
|
|
1256
|
+
- **Impact: 3**: valuable, but narrower than setup and sharing fundamentals
|
|
1257
|
+
- **Confidence: 3**: conceptually strong, but packaging appetite is still uncertain
|
|
1258
|
+
- **Migration cost: 3**: additive, but could create new conventions/spec work
|
|
1259
|
+
- **Model-robustness: 4**: portable packs are easier to reason about than arbitrary repos
|
|
1260
|
+
- **Time-to-value: 2**: needs groundwork before it feels polished
|
|
1261
|
+
|
|
1262
|
+
## Shortlist (3)
|
|
1263
|
+
|
|
1264
|
+
- **Shortlist 1 — Guided Install + Canonical Source Catalog**
|
|
1265
|
+
- best overall fit for the stated goal of making hookup as simple as possible across source types
|
|
1266
|
+
- **Shortlist 2 — Rooted Team Sharing**
|
|
1267
|
+
- strongest low-risk, high-time-to-value path for same-repo and internal team workflows
|
|
1268
|
+
- **Shortlist 3 — Source Control Tower**
|
|
1269
|
+
- best supporting direction and likely prerequisite for trustable setup UX, even if not the main product story
|
|
1270
|
+
|
|
1271
|
+
### Updated shortlist emphasis after lightweight test
|
|
1272
|
+
|
|
1273
|
+
- **Operational phase-1 favorite — Rooted Team Sharing + minimal Source Control Tower**
|
|
1274
|
+
- refined interpretation: the phase-1 product is not just rooted sharing, but rooted sharing plus enough source visibility to verify and trust the result
|
|
1275
|
+
- iteration-2 refinement: migration clarity, precedence visibility, and weaker-model-safe guidance are part of phase-1, not rollout polish
|
|
1276
|
+
- latest refinement: phase 1 should require explicit `workspacePath`, silently remember repo roots in user config, recursively discover team/module workflow folders under those remembered roots, and make the preferred team path unmistakable while legacy setup paths still exist
|
|
1277
|
+
- **Longer-term north star — Guided Install + Canonical Source Catalog**
|
|
1278
|
+
- unchanged as the broader destination, but deprioritized as immediate phase-1 implementation work
|
|
1279
|
+
|
|
1280
|
+
### Synthesis reflection
|
|
1281
|
+
|
|
1282
|
+
- **What would falsify the top direction?**
|
|
1283
|
+
- strong evidence that users are not blocked by setup itself, but instead by discovery/trust/visibility, in which case Source Control Tower or Rooted Team Sharing may be the higher-leverage first move
|
|
1284
|
+
- **What is the most dangerous second-order effect?**
|
|
1285
|
+
- WorkRail could become responsible for too much cross-client configuration behavior, creating brittle automation and new failure modes that are harder to debug than the current explicit env approach
|
|
1286
|
+
|
|
1287
|
+
### Adversarial challenge
|
|
1288
|
+
|
|
1289
|
+
- **Argue that the top direction is wrong. What would a skeptic say?**
|
|
1290
|
+
- A skeptic would say Guided Install is too ambitious too early. It risks building a fancy setup wizard around unresolved questions about ownership, migration, and trust while obscuring a simple underlying truth: most team use cases could be solved by root registration plus repo-local `.workrail/workflows/` conventions. They would argue the product should first make current behavior visible and conventional before trying to automate everything.
|
|
1291
|
+
- **What is the strongest alternative direction and why might it win?**
|
|
1292
|
+
- **Rooted Team Sharing** is the strongest alternative. It aligns tightly with existing platform vision, is simpler to reason about, avoids deep MCP client automation, and likely delivers the fastest meaningful simplification for real teams with the least migration risk.
|
|
1293
|
+
|
|
1294
|
+
### Decision Gate
|
|
1295
|
+
|
|
1296
|
+
- **Decision needed**: choose which direction to optimize first:
|
|
1297
|
+
- `Guided Install + Canonical Source Catalog`
|
|
1298
|
+
- `Rooted Team Sharing`
|
|
1299
|
+
- `Source Control Tower`
|
|
1300
|
+
- My current recommendation: **start with `Rooted Team Sharing` as phase 1 and design `Guided Install + Canonical Source Catalog` as the broader phase 2 path**. That sequence keeps the architecture honest, delivers value quickly, and avoids overcommitting to automation before the source model and visibility layer are mature.
|
|
1301
|
+
|
|
1302
|
+
### Next Input checklist
|
|
1303
|
+
|
|
1304
|
+
- Confirm which direction you want to take forward.
|
|
1305
|
+
- Optional preference: whether phase 1 should prioritize:
|
|
1306
|
+
- **team/repo sharing**
|
|
1307
|
+
- **personal third-party install**
|
|
1308
|
+
- **observability/diagnostics foundation**
|
|
1309
|
+
|
|
1310
|
+
## Synthesis Quality Gate
|
|
1311
|
+
|
|
1312
|
+
- ✅ **POV statement is present**
|
|
1313
|
+
- ✅ **3–7 HMW questions are present**
|
|
1314
|
+
- ✅ **Success criteria are present (measurable where possible)**
|
|
1315
|
+
- ✅ **Key tensions/tradeoffs are present**
|
|
1316
|
+
- ✅ **Idea Backlog has meaningful breadth (covers protocol/resumption/authoring/observability/reliability/tooling/packaging at least once each, if applicable)**
|
|
1317
|
+
- ✅ **Shortlist (2–3) exists with risks and migration cost noted**
|
|
1318
|
+
- ✅ **The top direction has at least one falsifiable learning question**
|
|
1319
|
+
|
|
1320
|
+
## Pre-mortem & Falsification
|
|
1321
|
+
|
|
1322
|
+
### Pre-mortem (top 5)
|
|
1323
|
+
|
|
1324
|
+
- **Failure mode**: Guided install becomes a thin wizard over the same fragmented config model | **Why it happens**: the UX layer ships before a real canonical source catalog / config boundary exists | **Mitigation**: make the source catalog and canonical `.workrail/` representation first-class before adding too much setup flow polish
|
|
1325
|
+
- **Failure mode**: Cross-client automation becomes brittle and causes confusing partial setup states | **Why it happens**: WorkRail tries to own MCP client configuration it cannot reliably control across environments | **Mitigation**: keep WorkRail-owned config in `.workrail/`, prefer proposal/approval flows, and treat external client mutation as optional guidance rather than a hard dependency
|
|
1326
|
+
- **Failure mode**: The system over-optimizes for generic third-party install while under-serving the highest-frequency team-sharing path | **Why it happens**: the product chases the broadest abstraction first instead of the simplest dominant use case | **Mitigation**: phase the work with `Rooted Team Sharing` first and validate actual demand for broader install flows
|
|
1327
|
+
- **Failure mode**: Users lose trust because setup hides important provenance/trust choices | **Why it happens**: simplification removes too much visibility around source origin, auth, update mode, and conflicts | **Mitigation**: ship the source inspector / control-tower layer alongside or before broad setup automation
|
|
1328
|
+
- **Failure mode**: Migration is painful and existing env-based users feel forced into a new model prematurely | **Why it happens**: canonical `.workrail/` config is introduced without a good migration assistant and compatibility bridge | **Mitigation**: support dual-read migration, generate explicit migration proposals, and keep env vars working throughout transition
|
|
1329
|
+
- **Failure mode**: `.workrail/config.json` becomes an overloaded catch-all and weakens the simplicity story | **Why it happens**: user-level remembered roots, repo-local metadata, and unrelated environment/capability state are all pushed into one file without a crisp ownership model | **Mitigation**: define config-file responsibilities explicitly before implementation planning and be willing to split concerns across multiple `.workrail/*` artifacts
|
|
1330
|
+
|
|
1331
|
+
### Falsification criteria (1–3)
|
|
1332
|
+
|
|
1333
|
+
- **If** dogfood users still need to understand raw source kinds, env vars, or auth naming rules in the common setup path, **we will change direction** toward stronger recipe-based/root-based flows because the guided install layer would not be abstracting the real complexity.
|
|
1334
|
+
- **If** team users continue to prefer or succeed more often with simple repo-local convention plus root registration than with broader guided install flows, **we will pivot sequencing** to prioritize `Rooted Team Sharing` as the mainline path because the broader install story would be over-designed for the near-term problem.
|
|
1335
|
+
- **If** the source inspector and diagnostics layer cannot clearly explain effective sources, conflicts, update mode, and failure reasons after setup, **we will stop expanding automation** because a setup system that cannot explain itself will create more confusion than it removes.
|
|
1336
|
+
|
|
1337
|
+
### Reflection
|
|
1338
|
+
|
|
1339
|
+
- **What is the most dangerous second-order effect?**
|
|
1340
|
+
- WorkRail could become a partially reliable configuration orchestrator that obscures state across `.workrail/`, MCP client config, caches, and external auth, making support and debugging harder than the current explicit approach.
|
|
1341
|
+
- **What would we regret not testing?**
|
|
1342
|
+
- Whether the simplest team-sharing path (`.workrail/workflows/` + root registration) actually solves most real needs before investing heavily in a generalized install platform.
|
|
1343
|
+
|
|
1344
|
+
### Proceed to Prototype
|
|
1345
|
+
|
|
1346
|
+
- **Prototype gate**: ready to proceed, but the recommended sequence remains:
|
|
1347
|
+
1. validate `Rooted Team Sharing` as the fast path
|
|
1348
|
+
2. design/introduce the canonical source catalog
|
|
1349
|
+
3. expand into broader guided install once visibility and migration are credible
|
|
1350
|
+
|
|
1351
|
+
## Decision Log (append-only)
|
|
1352
|
+
|
|
1353
|
+
- DT-DEC-001: Use this document as the canonical design-thinking artifact for the session.
|
|
1354
|
+
- DT-DEC-002: Treat current code and docs as both evidence and design constraints; do not assume the public docs fully reflect runtime behavior.
|
|
1355
|
+
|
|
1356
|
+
## Prototype Spec
|
|
1357
|
+
|
|
1358
|
+
### Prototype goal
|
|
1359
|
+
|
|
1360
|
+
- Define the simplest believable end-to-end user experience for making third-party workflows available in WorkRail.
|
|
1361
|
+
|
|
1362
|
+
### Candidate prototype areas
|
|
1363
|
+
|
|
1364
|
+
- user-level remembered roots under `.workrail/`
|
|
1365
|
+
- repo-local metadata under `.workrail/`
|
|
1366
|
+
- setup/install workflow invoked through WorkRail itself
|
|
1367
|
+
- auto-discovery of `.workrail/workflows/` under configured roots
|
|
1368
|
+
- unified source inspection and diagnostics
|
|
1369
|
+
|
|
1370
|
+
### Prototype focus
|
|
1371
|
+
|
|
1372
|
+
- **Chosen learning question**: Does the simplest `Rooted Team Sharing` flow solve most real team-sharing hookup pain without requiring users to understand env vars or source kinds?
|
|
1373
|
+
- **Chosen prototype artifact**: Concierge script (manual end-to-end flow)
|
|
1374
|
+
- **Why this artifact**: it is the fastest low-fidelity way to test whether the proposed user journey is actually simpler before committing to schema or UI implementation.
|
|
1375
|
+
|
|
1376
|
+
### Prototype scope
|
|
1377
|
+
|
|
1378
|
+
- In scope:
|
|
1379
|
+
- repo-local `.workrail/workflows/` convention
|
|
1380
|
+
- one-time root registration
|
|
1381
|
+
- basic source visibility after setup
|
|
1382
|
+
- explicit distinction between team-shared and personal scope
|
|
1383
|
+
- migration-aware explanation of how this relates to current env-first and `./workflows` behavior
|
|
1384
|
+
- basic explanation of source precedence when rooted-sharing and legacy sources overlap
|
|
1385
|
+
- Out of scope:
|
|
1386
|
+
- broad third-party install from arbitrary remote sources
|
|
1387
|
+
- full source catalog implementation
|
|
1388
|
+
- dashboard implementation
|
|
1389
|
+
- auto-auth for private/self-hosted sources
|
|
1390
|
+
- final decision on the long-term canonical `.workrail/config.json` ownership model
|
|
1391
|
+
|
|
1392
|
+
### Falsification criteria (copied verbatim, then refined)
|
|
1393
|
+
|
|
1394
|
+
- **If** dogfood users still need to understand raw source kinds, env vars, or auth naming rules in the common setup path, **we will change direction** toward stronger recipe-based/root-based flows because the guided install layer would not be abstracting the real complexity.
|
|
1395
|
+
- **If** team users continue to prefer or succeed more often with simple repo-local convention plus root registration than with broader guided install flows, **we will pivot sequencing** to prioritize `Rooted Team Sharing` as the mainline path because the broader install story would be over-designed for the near-term problem.
|
|
1396
|
+
- **If** the source inspector and diagnostics layer cannot clearly explain effective sources, conflicts, update mode, and failure reasons after setup, **we will stop expanding automation** because a setup system that cannot explain itself will create more confusion than it removes.
|
|
1397
|
+
|
|
1398
|
+
### Refined prototype-specific falsification
|
|
1399
|
+
|
|
1400
|
+
- If a user still needs explanation of more than two new concepts beyond “put workflows here” and “register this root,” the prototype is not simple enough.
|
|
1401
|
+
- If the post-setup explanation cannot show where workflows came from in one short source summary, the prototype is not trustable enough.
|
|
1402
|
+
|
|
1403
|
+
### Success signal for this prototype
|
|
1404
|
+
|
|
1405
|
+
- A user can complete the team-sharing setup in 1–3 guided actions.
|
|
1406
|
+
- The user can explain the resulting model in plain language:
|
|
1407
|
+
- “these workflows live in the repo”
|
|
1408
|
+
- “this root is registered”
|
|
1409
|
+
- “WorkRail discovered them from there”
|
|
1410
|
+
- The user can also explain, in one short sentence, how the preferred rooted-sharing path coexists with older setup paths during migration.
|
|
1411
|
+
|
|
1412
|
+
### Prototype artifact
|
|
1413
|
+
|
|
1414
|
+
#### Concierge script — Rooted Team Sharing
|
|
1415
|
+
|
|
1416
|
+
- **Panel 1 — trigger**
|
|
1417
|
+
- User says: “I want my team to share these workflows in this repo.”
|
|
1418
|
+
- WorkRail says: “The simplest path is to store team workflows in `.workrail/workflows/` inside the repo and register the repo as a workflow root once. I can guide that setup.”
|
|
1419
|
+
|
|
1420
|
+
- **Panel 2 — classify the scope**
|
|
1421
|
+
- WorkRail asks:
|
|
1422
|
+
- “Should these workflows be team-shared in the repo, or personal-only for you?”
|
|
1423
|
+
- Expected answer:
|
|
1424
|
+
- “Team-shared in the repo.”
|
|
1425
|
+
- Learning goal:
|
|
1426
|
+
- confirm that scope framing is understandable without mentioning source kinds
|
|
1427
|
+
|
|
1428
|
+
- **Panel 3 — establish the convention**
|
|
1429
|
+
- WorkRail says:
|
|
1430
|
+
- “Great. Team-shared workflows live in `.workrail/workflows/` in the repo.”
|
|
1431
|
+
- “If that folder doesn’t exist, create it. Put the workflow JSON files there.”
|
|
1432
|
+
- “Optional: add repo metadata later, but it isn’t required for the basic path.”
|
|
1433
|
+
- Learning goal:
|
|
1434
|
+
- test whether convention is enough without extra config
|
|
1435
|
+
|
|
1436
|
+
- **Panel 4 — register the root**
|
|
1437
|
+
- WorkRail says:
|
|
1438
|
+
- “Next, register this repo as a workflow root in your WorkRail config so it will scan `.workrail/workflows/` here.”
|
|
1439
|
+
- “This is a one-time action per repo.”
|
|
1440
|
+
- Low-fi assumed config shape:
|
|
1441
|
+
|
|
1442
|
+
```json
|
|
1443
|
+
{
|
|
1444
|
+
"workspaceRoots": [
|
|
1445
|
+
"/path/to/this/repo"
|
|
1446
|
+
]
|
|
1447
|
+
}
|
|
1448
|
+
```
|
|
1449
|
+
|
|
1450
|
+
- Learning goal:
|
|
1451
|
+
- test whether “register the repo once” feels simpler than attaching sources one-by-one
|
|
1452
|
+
|
|
1453
|
+
- **Panel 5 — verify the result**
|
|
1454
|
+
- WorkRail says:
|
|
1455
|
+
- “Now let’s verify what WorkRail sees.”
|
|
1456
|
+
- “Expected result: your workflows appear under this repo’s source group.”
|
|
1457
|
+
- Low-fi expected output:
|
|
1458
|
+
|
|
1459
|
+
```text
|
|
1460
|
+
Available Workflows
|
|
1461
|
+
|
|
1462
|
+
## workrail (built-in)
|
|
1463
|
+
- coding-task-workflow-agentic
|
|
1464
|
+
|
|
1465
|
+
## personal/workrail (repo root)
|
|
1466
|
+
- team-code-review
|
|
1467
|
+
- team-feature-implementation
|
|
1468
|
+
```
|
|
1469
|
+
|
|
1470
|
+
- Learning goal:
|
|
1471
|
+
- test whether grouped source visibility gives enough trust and clarity
|
|
1472
|
+
|
|
1473
|
+
- **Panel 6 — explain the mental model**
|
|
1474
|
+
- WorkRail summarizes:
|
|
1475
|
+
- “These workflows are team-shared because they live in the repo.”
|
|
1476
|
+
- “This repo is registered as a workflow root.”
|
|
1477
|
+
- “WorkRail discovers `.workrail/workflows/` inside registered roots.”
|
|
1478
|
+
- “You don’t need to configure each workflow source individually.”
|
|
1479
|
+
- Learning goal:
|
|
1480
|
+
- test whether the user can restate the model in plain language
|
|
1481
|
+
|
|
1482
|
+
### Smallest shippable slice
|
|
1483
|
+
|
|
1484
|
+
- explicit required `workspacePath` on discovery-sensitive workflow tools
|
|
1485
|
+
- repo-root memory stored in user-level `~/.workrail/config.json`
|
|
1486
|
+
- recursive discovery of team/module `.workrail/workflows/` under remembered repo roots
|
|
1487
|
+
- grouped listing / source visibility that shows repo-derived workflows distinctly
|
|
1488
|
+
- minimal precedence explanation when rooted-sharing and legacy sources overlap
|
|
1489
|
+
- migration-aware guidance that makes the preferred team path clear even while legacy setup paths still exist
|
|
1490
|
+
- no generalized install flow yet
|
|
1491
|
+
|
|
1492
|
+
### Highest-risk assumption
|
|
1493
|
+
|
|
1494
|
+
- That the majority of near-term team-sharing pain can be eliminated with repo-local convention plus root registration, without needing a richer canonical source catalog immediately.
|
|
1495
|
+
|
|
1496
|
+
### If falsification triggers
|
|
1497
|
+
|
|
1498
|
+
- **Next-best direction from the shortlist**: `Source Control Tower`
|
|
1499
|
+
- Reason: if rooted sharing is not clear or trustable enough, better visibility and diagnostics are the safest next move before broader automation
|
|
1500
|
+
|
|
1501
|
+
### Prototype adjustment after lightweight test
|
|
1502
|
+
|
|
1503
|
+
- Treat **verification** as part of the prototype, not just a final check.
|
|
1504
|
+
- The prototype is now considered incomplete unless it shows:
|
|
1505
|
+
- where workflows were discovered from
|
|
1506
|
+
- what root made them visible
|
|
1507
|
+
- how the user can distinguish repo-shared workflows from built-in ones
|
|
1508
|
+
|
|
1509
|
+
### Prototype adjustment after second lightweight test
|
|
1510
|
+
|
|
1511
|
+
- Treat **migration and precedence messaging** as part of the prototype narrative, not as documentation follow-up.
|
|
1512
|
+
- The prototype is now considered incomplete unless it also shows:
|
|
1513
|
+
- how the preferred rooted-sharing path coexists with legacy env-based sources
|
|
1514
|
+
- how precedence is explained when multiple sources can provide workflows
|
|
1515
|
+
- wording simple enough that weaker models are likely to stay on the intended path
|
|
1516
|
+
- how repo roots are remembered silently at the user level without requiring current-repo changes
|
|
1517
|
+
|
|
1518
|
+
## Test Plan
|
|
1519
|
+
|
|
1520
|
+
- Validate the proposed UX against these scenarios:
|
|
1521
|
+
- add a local workflow folder
|
|
1522
|
+
- connect a GitHub repo
|
|
1523
|
+
- connect a self-hosted GitLab repo over HTTPS
|
|
1524
|
+
- connect a self-hosted GitLab repo over SSH
|
|
1525
|
+
- share workflows through a repo-local `.workrail/workflows/`
|
|
1526
|
+
- diagnose a broken or unauthorized source
|
|
1527
|
+
- For each scenario, measure:
|
|
1528
|
+
- number of manual steps
|
|
1529
|
+
- number of concepts the user must understand
|
|
1530
|
+
- whether WorkRail can guide or automate the setup
|
|
1531
|
+
- whether source provenance remains clear afterward
|
|
1532
|
+
|
|
1533
|
+
### Prototype test plan
|
|
1534
|
+
|
|
1535
|
+
#### Test objective
|
|
1536
|
+
|
|
1537
|
+
- Determine whether the `Rooted Team Sharing` prototype is simple, understandable, and robust enough to serve as the first productized setup path for team-shared workflows.
|
|
1538
|
+
|
|
1539
|
+
#### Primary learning question
|
|
1540
|
+
|
|
1541
|
+
- Can users and agents complete team-sharing setup with repo-local convention plus one-time root registration, without needing to reason about env vars or heterogeneous source types?
|
|
1542
|
+
|
|
1543
|
+
#### Hypotheses
|
|
1544
|
+
|
|
1545
|
+
- **H1**: In the common team-sharing path, users can complete setup in 1–3 guided actions.
|
|
1546
|
+
- **H2**: After setup, users can explain the resulting model in plain language without mentioning source kinds or env-var details.
|
|
1547
|
+
- **H3**: The flow remains understandable across both stronger and weaker agents/models.
|
|
1548
|
+
|
|
1549
|
+
#### Prototype under test
|
|
1550
|
+
|
|
1551
|
+
- Artifact: `Rooted Team Sharing` concierge script in the Prototype Spec above
|
|
1552
|
+
- Core concepts under test:
|
|
1553
|
+
- repo-local `.workrail/workflows/`
|
|
1554
|
+
- one-time root registration
|
|
1555
|
+
- grouped workflow visibility after setup
|
|
1556
|
+
|
|
1557
|
+
#### Agents / models / IDEs to test
|
|
1558
|
+
|
|
1559
|
+
- **Claude** in an MCP-enabled IDE
|
|
1560
|
+
- **GPT** or **Gemini** in an MCP-enabled IDE as the weaker / less reliable comparison path
|
|
1561
|
+
- Optional stretch:
|
|
1562
|
+
- **Grok** if available in a comparable setup
|
|
1563
|
+
- IDE environments to sample:
|
|
1564
|
+
- Firebender
|
|
1565
|
+
- one non-Firebender MCP client if practical
|
|
1566
|
+
|
|
1567
|
+
#### Test participants / operators
|
|
1568
|
+
|
|
1569
|
+
- Primary: project owner or maintainer dogfooding the flow
|
|
1570
|
+
- Secondary: one collaborator who did not author the design, if available
|
|
1571
|
+
- Operator mode:
|
|
1572
|
+
- concierge/manual facilitation first
|
|
1573
|
+
- then replay with lighter facilitation to see whether the script still holds
|
|
1574
|
+
|
|
1575
|
+
#### Scenarios
|
|
1576
|
+
|
|
1577
|
+
- **Scenario 1 — happy path team repo**
|
|
1578
|
+
- repo already exists
|
|
1579
|
+
- user wants to share workflows with teammates
|
|
1580
|
+
- workflows are placed into `.workrail/workflows/`
|
|
1581
|
+
- root is registered once
|
|
1582
|
+
|
|
1583
|
+
- **Scenario 2 — existing repo, no `.workrail/` yet**
|
|
1584
|
+
- user starts from scratch
|
|
1585
|
+
- must understand where workflows belong
|
|
1586
|
+
- must understand what root registration means
|
|
1587
|
+
|
|
1588
|
+
- **Scenario 3 — user confuses personal vs team scope**
|
|
1589
|
+
- test whether the flow clarifies the distinction early enough
|
|
1590
|
+
|
|
1591
|
+
- **Scenario 4 — verification / trust moment**
|
|
1592
|
+
- after setup, ask the user to explain where the workflows came from and why they are visible
|
|
1593
|
+
|
|
1594
|
+
- **Scenario 5 — weaker-model replay**
|
|
1595
|
+
- run the same flow with a weaker model to see whether structured prompts are sufficient
|
|
1596
|
+
|
|
1597
|
+
#### Success metrics
|
|
1598
|
+
|
|
1599
|
+
- **Task completion**:
|
|
1600
|
+
- setup completed successfully: yes/no
|
|
1601
|
+
- **Action count**:
|
|
1602
|
+
- target: 1–3 deliberate user actions
|
|
1603
|
+
- **Concept count**:
|
|
1604
|
+
- target: user must internalize no more than 2 core concepts:
|
|
1605
|
+
- team workflows live in `.workrail/workflows/`
|
|
1606
|
+
- the repo is registered as a workflow root
|
|
1607
|
+
- **Explanation quality**:
|
|
1608
|
+
- target: user can accurately explain the model in plain language after setup
|
|
1609
|
+
- **Inspector clarity**:
|
|
1610
|
+
- target: user can identify the source group where the workflows came from
|
|
1611
|
+
- **Agent robustness**:
|
|
1612
|
+
- target: stronger and weaker model both keep the user on the same conceptual path
|
|
1613
|
+
|
|
1614
|
+
#### Observations to capture
|
|
1615
|
+
|
|
1616
|
+
- points of confusion
|
|
1617
|
+
- places where the facilitator had to translate implementation details
|
|
1618
|
+
- whether the user asks about env vars, source kinds, or auth during the rooted-sharing flow
|
|
1619
|
+
- whether the user expects per-workflow registration
|
|
1620
|
+
- whether verification output feels sufficient to trust the result
|
|
1621
|
+
|
|
1622
|
+
#### Failure conditions
|
|
1623
|
+
|
|
1624
|
+
- user needs explanation of env vars or source-type internals during the happy path
|
|
1625
|
+
- user cannot explain the resulting model after setup
|
|
1626
|
+
- weaker model drifts into old env-var/source-specific guidance
|
|
1627
|
+
- verification output does not make source provenance clear
|
|
1628
|
+
|
|
1629
|
+
#### Instrumentation / evidence collection
|
|
1630
|
+
|
|
1631
|
+
- record the exact prompt/script used
|
|
1632
|
+
- capture the assistant/model responses
|
|
1633
|
+
- note number of user actions
|
|
1634
|
+
- note every clarification needed from the facilitator
|
|
1635
|
+
- save resulting config/file layout and observed `list_workflows` / source output
|
|
1636
|
+
|
|
1637
|
+
#### Decision rules
|
|
1638
|
+
|
|
1639
|
+
- **If the test clearly succeeds**:
|
|
1640
|
+
- continue with `Rooted Team Sharing` as phase 1 and turn it into a concrete design / implementation plan
|
|
1641
|
+
- **If the test partially succeeds but needs stronger visibility**:
|
|
1642
|
+
- iterate by pulling `Source Control Tower` elements earlier into phase 1
|
|
1643
|
+
- **If the test fails because the model keeps leaking implementation details or users remain confused**:
|
|
1644
|
+
- pivot toward a stronger recipe-driven or inspector-first direction before broader setup automation
|
|
1645
|
+
|
|
1646
|
+
#### Risks in the test itself
|
|
1647
|
+
|
|
1648
|
+
- concierge facilitation may make the flow look better than a productized version would feel
|
|
1649
|
+
- stronger models may hide UX flaws that weaker models will expose
|
|
1650
|
+
- a repo/folder setup path may underrepresent later private/self-hosted Git complexity
|
|
1651
|
+
|
|
1652
|
+
#### Exit criteria
|
|
1653
|
+
|
|
1654
|
+
- We have enough evidence to answer:
|
|
1655
|
+
- whether rooted team sharing is a credible phase-1 simplification
|
|
1656
|
+
- whether source visibility must be built earlier
|
|
1657
|
+
- whether weaker models can follow the concept reliably
|
|
1658
|
+
|
|
1659
|
+
### Test reflection
|
|
1660
|
+
|
|
1661
|
+
- **If the test fails, what would we do next (iterate, pivot, or stop)?**
|
|
1662
|
+
- likely **iterate first** if the failure is around explanation/visibility
|
|
1663
|
+
- **pivot** toward `Source Control Tower` if the failure is mainly trust and provenance clarity
|
|
1664
|
+
- **stop** only if the rooted-sharing concept proves fundamentally less useful than expected relative to broader install needs
|
|
1665
|
+
|
|
1666
|
+
## Feedback Capture
|
|
1667
|
+
|
|
1668
|
+
### Test mode
|
|
1669
|
+
|
|
1670
|
+
- **Type**: lightweight dogfood thought experiment + adversarial critique
|
|
1671
|
+
- **Prototype tested**: `Rooted Team Sharing` concierge script
|
|
1672
|
+
- **Lens used**:
|
|
1673
|
+
- current codebase reality
|
|
1674
|
+
- likely user interpretation
|
|
1675
|
+
- weaker-model robustness
|
|
1676
|
+
|
|
1677
|
+
### What we simulated
|
|
1678
|
+
|
|
1679
|
+
- A user with an existing repo wants to share workflows with teammates.
|
|
1680
|
+
- The user is guided toward:
|
|
1681
|
+
- putting workflow JSON files in `.workrail/workflows/`
|
|
1682
|
+
- registering the repo as a workflow root
|
|
1683
|
+
- verifying that grouped workflow listing reflects the source
|
|
1684
|
+
- We then asked what would likely break or become confusing given the current WorkRail implementation and docs.
|
|
1685
|
+
|
|
1686
|
+
### Observed positives
|
|
1687
|
+
|
|
1688
|
+
- The **team-sharing story is much easier to explain** than the current env-first setup.
|
|
1689
|
+
- The two core concepts are compact and memorable:
|
|
1690
|
+
- workflows live in `.workrail/workflows/`
|
|
1691
|
+
- the repo is registered as a root
|
|
1692
|
+
- This path aligns well with existing planning docs and broader `.workrail/` direction already present in the repo.
|
|
1693
|
+
- The flow avoids exposing source-type jargon early.
|
|
1694
|
+
- It feels compatible with a later generalized install system rather than competing with it.
|
|
1695
|
+
|
|
1696
|
+
### Observed friction / concerns
|
|
1697
|
+
|
|
1698
|
+
- **Current implementation gap**: the shipped runtime still centers on `./workflows/`, `~/.workrail/workflows/`, custom paths, and env-driven Git/registry configuration. The prototype assumes a root-based `.workrail/workflows/` discovery model that is described in planning docs but not yet the primary current behavior.
|
|
1699
|
+
- **Visibility gap**: current source inspection UX is not strong enough yet to make the final “verify and trust” step fully convincing.
|
|
1700
|
+
- **Potential concept leak**: “register the repo as a root” is simpler than source-by-source config, but it is still a new concept that needs to be explained carefully.
|
|
1701
|
+
- **Cross-client gap**: it is unclear how much the root-registration action itself can be automated vs simply written into `.workrail/` config.
|
|
1702
|
+
- **Edge-case gap**: this flow says little about how purely personal, cross-repo, or private remote sources should relate to rooted sharing.
|
|
1703
|
+
|
|
1704
|
+
### Adversarial critique
|
|
1705
|
+
|
|
1706
|
+
- A skeptical stakeholder might say:
|
|
1707
|
+
- “This is cleaner, but it only works because you narrowed to the team-sharing case.”
|
|
1708
|
+
- “You still haven’t removed configuration; you just renamed it to root registration.”
|
|
1709
|
+
- “Without a source inspector and migration bridge, users will still get confused when the behavior differs from current docs and current runtime.”
|
|
1710
|
+
- “This could create another partially-implemented setup story if `.workrail/config.json` and root discovery are not made truly canonical.”
|
|
1711
|
+
|
|
1712
|
+
### What likely works well
|
|
1713
|
+
|
|
1714
|
+
- same-repo team sharing
|
|
1715
|
+
- monorepo / internal collaboration use cases
|
|
1716
|
+
- weaker models that benefit from a small number of concrete rules
|
|
1717
|
+
|
|
1718
|
+
### What likely works less well
|
|
1719
|
+
|
|
1720
|
+
- arbitrary third-party source install from URLs
|
|
1721
|
+
- private/self-hosted Git onboarding
|
|
1722
|
+
- users who expect immediate automation rather than convention + one-time registration
|
|
1723
|
+
|
|
1724
|
+
### Feedback summary
|
|
1725
|
+
|
|
1726
|
+
- **Overall verdict**: promising for phase 1, but only if paired with:
|
|
1727
|
+
- a credible root-registration mechanism
|
|
1728
|
+
- grouped source visibility / verification
|
|
1729
|
+
- a migration-aware explanation of how this relates to current env-based behavior
|
|
1730
|
+
|
|
1731
|
+
### Decision impact
|
|
1732
|
+
|
|
1733
|
+
- This lightweight test **strengthens** the recommendation to use `Rooted Team Sharing` as phase 1.
|
|
1734
|
+
- It also **strengthens** the need to pull some `Source Control Tower` capabilities earlier, especially source visibility and verification.
|
|
1735
|
+
- It does **not** remove the need for `Guided Install + Canonical Source Catalog`; it just reinforces that those should probably come after the simpler rooted-sharing path is validated.
|
|
1736
|
+
|
|
1737
|
+
### Recommended adjustments after lightweight test
|
|
1738
|
+
|
|
1739
|
+
- Narrow phase 1 further:
|
|
1740
|
+
- repo-local `.workrail/workflows/`
|
|
1741
|
+
- one-time root registration
|
|
1742
|
+
- grouped listing / source visibility
|
|
1743
|
+
- Explicitly defer:
|
|
1744
|
+
- generalized remote install
|
|
1745
|
+
- self-hosted auth automation
|
|
1746
|
+
- full canonical source catalog implementation
|
|
1747
|
+
- Add migration messaging early so current users understand how rooted sharing coexists with existing behavior
|
|
1748
|
+
|
|
1749
|
+
### Next learning questions
|
|
1750
|
+
|
|
1751
|
+
- Can root registration be made simple enough to feel like a one-time setup rather than “new configuration burden”?
|
|
1752
|
+
- What is the minimum source inspector capability needed for users to trust the result?
|
|
1753
|
+
- Does this path still feel simplest when tested with a weaker model that cannot improvise as well?
|
|
1754
|
+
|
|
1755
|
+
## Feedback Capture — Iteration 2
|
|
1756
|
+
|
|
1757
|
+
### Test mode
|
|
1758
|
+
|
|
1759
|
+
- **Type**: lightweight stakeholder Q&A simulation + weaker-model thought experiment
|
|
1760
|
+
- **Prototype tested**: updated phase-1 concept:
|
|
1761
|
+
- `Rooted Team Sharing + minimal Source Control Tower`
|
|
1762
|
+
- **Focus of this pass**:
|
|
1763
|
+
- rollout/migration concerns
|
|
1764
|
+
- weaker-model robustness
|
|
1765
|
+
- skeptical stakeholder objections
|
|
1766
|
+
|
|
1767
|
+
### What we simulated
|
|
1768
|
+
|
|
1769
|
+
- A skeptical maintainer asks:
|
|
1770
|
+
- “How is this different from just moving complexity around?”
|
|
1771
|
+
- “What happens while current env-first behavior still exists?”
|
|
1772
|
+
- “Will weaker models fall back to the old setup story and confuse users?”
|
|
1773
|
+
- A weaker-model replay is imagined where the assistant is more literal and less able to synthesize docs, code reality, and future direction.
|
|
1774
|
+
|
|
1775
|
+
### Observed positives
|
|
1776
|
+
|
|
1777
|
+
- The updated phase-1 framing is stronger than the original rooted-sharing-only framing because it now explicitly includes verification/visibility.
|
|
1778
|
+
- The proposal remains relatively rollout-friendly because it can be additive:
|
|
1779
|
+
- repo-local convention can coexist with existing env-based sources
|
|
1780
|
+
- grouped visibility can help explain mixed old/new setups
|
|
1781
|
+
- The weaker-model path likely improves when the concept is reduced to:
|
|
1782
|
+
- put workflows in `.workrail/workflows/`
|
|
1783
|
+
- register the root
|
|
1784
|
+
- check grouped source output
|
|
1785
|
+
|
|
1786
|
+
### Observed friction / concerns
|
|
1787
|
+
|
|
1788
|
+
- **Migration ambiguity remains a major risk**:
|
|
1789
|
+
- if old and new setup paths coexist, users may not know which one “won”
|
|
1790
|
+
- grouped visibility helps, but only if the source labeling is very clear
|
|
1791
|
+
- **Weaker-model drift is still plausible**:
|
|
1792
|
+
- a weaker agent might read current docs/code and tell the user to use `./workflows` or env vars instead of the new rooted-sharing path unless the product strongly privileges the new path
|
|
1793
|
+
- **Root registration still needs a crisp home**:
|
|
1794
|
+
- if it lives in a new config but the rest of current behavior still feels elsewhere, users may experience the system as split-brain
|
|
1795
|
+
- **Stakeholder skepticism is still valid**:
|
|
1796
|
+
- this does not yet remove configuration entirely
|
|
1797
|
+
- it removes per-source configuration in the common team case, which is a narrower but more honest claim
|
|
1798
|
+
|
|
1799
|
+
### Stakeholder-style objections
|
|
1800
|
+
|
|
1801
|
+
- “This only works if the documentation and product language stop advertising the older setup as the default team path.”
|
|
1802
|
+
- “If current `./workflows` discovery and env-driven sources remain prominent, users will get two parallel mental models.”
|
|
1803
|
+
- “Without a migration assistant or explicit precedence explanations, support burden may go up before it goes down.”
|
|
1804
|
+
|
|
1805
|
+
### Weaker-model robustness assessment
|
|
1806
|
+
|
|
1807
|
+
- **Likely to work if**:
|
|
1808
|
+
- the prompt/script is highly structured
|
|
1809
|
+
- the product names the phase-1 path clearly
|
|
1810
|
+
- source verification output is concrete and grouped
|
|
1811
|
+
- **Likely to fail if**:
|
|
1812
|
+
- the model is left to infer the preferred path from mixed old/new docs
|
|
1813
|
+
- the verification output is ambiguous
|
|
1814
|
+
- root registration is underexplained or spread across multiple config locations
|
|
1815
|
+
|
|
1816
|
+
### Feedback summary
|
|
1817
|
+
|
|
1818
|
+
- **Overall verdict**: still promising, but rollout discipline now looks almost as important as the UX concept itself.
|
|
1819
|
+
- The second-pass test increases confidence in the **shape** of the phase-1 idea, while reducing confidence that it will land well without:
|
|
1820
|
+
- explicit migration guidance
|
|
1821
|
+
- strong precedence/source labeling
|
|
1822
|
+
- product/docs alignment around the preferred team path
|
|
1823
|
+
|
|
1824
|
+
### Decision impact
|
|
1825
|
+
|
|
1826
|
+
- Keep the updated recommendation:
|
|
1827
|
+
- `Rooted Team Sharing + minimal Source Control Tower`
|
|
1828
|
+
- Raise migration and precedence clarity from “important” to **phase-1 launch requirements**
|
|
1829
|
+
- Treat weaker-model robustness as a design constraint, not just a test detail
|
|
1830
|
+
|
|
1831
|
+
### Recommended adjustments after second lightweight test
|
|
1832
|
+
|
|
1833
|
+
- Make the preferred team path unmistakable in user-facing guidance
|
|
1834
|
+
- Add migration/compatibility messaging directly into the phase-1 design
|
|
1835
|
+
- Require grouped source output to make precedence and source origin obvious
|
|
1836
|
+
- Avoid shipping rooted sharing without at least minimal “why these workflows are visible” explanations
|
|
1837
|
+
|
|
1838
|
+
### Next learning questions
|
|
1839
|
+
|
|
1840
|
+
- What is the minimal migration assistant needed so old and new paths can coexist safely?
|
|
1841
|
+
- How should precedence be displayed when repo-root workflows, built-ins, and legacy env-based sources overlap?
|
|
1842
|
+
- What exact wording keeps weaker models on the preferred rooted-sharing path instead of falling back to legacy advice?
|
|
1843
|
+
|
|
1844
|
+
## Iteration 1: Updates
|
|
1845
|
+
|
|
1846
|
+
### Changes made
|
|
1847
|
+
|
|
1848
|
+
- **POV**:
|
|
1849
|
+
- updated to emphasize not just setup simplicity, but also immediate source provenance verification after setup
|
|
1850
|
+
- **HMW**:
|
|
1851
|
+
- added a new HMW question focused explicitly on post-setup verification and trust:
|
|
1852
|
+
- “How might we make verification of ‘where these workflows came from’ simple enough that users trust the result immediately after setup?”
|
|
1853
|
+
- **Shortlist**:
|
|
1854
|
+
- kept the same three shortlist items
|
|
1855
|
+
- updated the emphasis so the phase-1 favorite is now:
|
|
1856
|
+
- `Rooted Team Sharing + minimal Source Control Tower`
|
|
1857
|
+
- kept `Guided Install + Canonical Source Catalog` as the longer-term north star
|
|
1858
|
+
- **Prototype spec/artifact**:
|
|
1859
|
+
- updated the smallest shippable slice to require grouped listing / source visibility
|
|
1860
|
+
- added a prototype adjustment stating that verification is part of the prototype, not an optional final step
|
|
1861
|
+
|
|
1862
|
+
### Rationale
|
|
1863
|
+
|
|
1864
|
+
- The lightweight test suggested that the team-sharing concept is promising, but it does not stand on its own unless users can verify what happened afterward.
|
|
1865
|
+
- These changes tighten the phase-1 recommendation so it is less likely to under-deliver trust and clarity.
|
|
1866
|
+
- They also reduce the risk of building a setup path that feels simpler during guidance but confusing after completion.
|
|
1867
|
+
|
|
1868
|
+
### Iteration reflection
|
|
1869
|
+
|
|
1870
|
+
- **What did we learn that surprised us?**
|
|
1871
|
+
- The simplest team-sharing path looked stronger than expected, but the need for source visibility turned out to be more central than initially framed.
|
|
1872
|
+
- **What did we previously believe that is now false?**
|
|
1873
|
+
- We previously treated source visibility as a supporting concern that could follow setup later; it now looks like a phase-1 requirement for trustable rooted sharing.
|
|
1874
|
+
|
|
1875
|
+
## Iteration 2: Updates
|
|
1876
|
+
|
|
1877
|
+
### Changes made
|
|
1878
|
+
|
|
1879
|
+
- **POV**:
|
|
1880
|
+
- no structural rewrite, but the surrounding artifacts now treat migration and precedence clarity as part of delivering the promised simple setup experience
|
|
1881
|
+
- **HMW**:
|
|
1882
|
+
- added a new HMW question focused on keeping weaker models and mixed old/new documentation on the preferred setup path instead of drifting back to legacy env-first advice
|
|
1883
|
+
- **Shortlist**:
|
|
1884
|
+
- kept the same updated phase-1 favorite
|
|
1885
|
+
- strengthened the wording so `Rooted Team Sharing + minimal Source Control Tower` now explicitly includes:
|
|
1886
|
+
- migration clarity
|
|
1887
|
+
- precedence visibility
|
|
1888
|
+
- weaker-model-safe guidance
|
|
1889
|
+
- **Prototype spec/artifact**:
|
|
1890
|
+
- expanded the smallest shippable slice to include minimal precedence explanation
|
|
1891
|
+
- added a second prototype adjustment requiring migration and precedence messaging in the prototype narrative
|
|
1892
|
+
|
|
1893
|
+
### Rationale
|
|
1894
|
+
|
|
1895
|
+
- The second lightweight test showed that the concept itself is still strong, but rollout and model-drift risks are more central than previously assumed.
|
|
1896
|
+
- These updates make the phase-1 recommendation more honest and more likely to survive real rollout conditions.
|
|
1897
|
+
- They also reduce the chance of shipping a conceptually elegant path that collapses when old and new setup models coexist.
|
|
1898
|
+
|
|
1899
|
+
### Iteration reflection
|
|
1900
|
+
|
|
1901
|
+
- **What did we learn that surprised us?**
|
|
1902
|
+
- rollout clarity and model guidance rose to near-equal importance with the core interaction design
|
|
1903
|
+
- **What did we previously believe that is now false?**
|
|
1904
|
+
- we previously treated migration and precedence messaging as adjacent concerns; they now look like core phase-1 requirements
|
|
1905
|
+
|
|
1906
|
+
## Iteration 3: Explicit workspace identity and remembered roots
|
|
1907
|
+
|
|
1908
|
+
### Changes made
|
|
1909
|
+
|
|
1910
|
+
- **POV**:
|
|
1911
|
+
- no core rewrite, but the surrounding design now assumes explicit workspace identity rather than inferred MCP roots
|
|
1912
|
+
- **HMW**:
|
|
1913
|
+
- no new HMW added in this pass
|
|
1914
|
+
- **Shortlist**:
|
|
1915
|
+
- kept the same phase-1 favorite
|
|
1916
|
+
- refined it further to include:
|
|
1917
|
+
- required explicit `workspacePath`
|
|
1918
|
+
- silent remembering of repo roots in `~/.workrail/config.json`
|
|
1919
|
+
- recursive discovery of team/module `.workrail/workflows/` under remembered roots
|
|
1920
|
+
- **Prototype spec/artifact**:
|
|
1921
|
+
- updated the smallest shippable slice so root memory is user-level and recursive module/team discovery is first-class
|
|
1922
|
+
- required the prototype narrative to show silent user-level remembering of repo roots
|
|
1923
|
+
|
|
1924
|
+
### Rationale
|
|
1925
|
+
|
|
1926
|
+
- New feedback made two things explicit:
|
|
1927
|
+
- MCP roots are not trustworthy enough to anchor discovery
|
|
1928
|
+
- silent user-level persistence is desirable for cross-repo UX
|
|
1929
|
+
- These changes let WorkRail stay repo-aware without being tied to one repo, and without forcing `.workrail/` into the main repo root.
|
|
1930
|
+
|
|
1931
|
+
### Iteration reflection
|
|
1932
|
+
|
|
1933
|
+
- **What did we learn that surprised us?**
|
|
1934
|
+
- user-level remembered roots appear to be a better cross-repo primitive than trying to make repo-local setup do all the work
|
|
1935
|
+
- **What did we previously believe that is now false?**
|
|
1936
|
+
- we previously treated MCP roots as a plausible fallback for workspace identity; that is no longer acceptable for this design
|
|
1937
|
+
|
|
1938
|
+
## Iteration Notes
|
|
1939
|
+
|
|
1940
|
+
- Initial framing completed from direct inspection of current code and planning docs.
|
|
1941
|
+
- Strongest design seam discovered so far:
|
|
1942
|
+
- current shipping model is env-first
|
|
1943
|
+
- platform vision already points to `.workrail/config.json` plus auto-discovery and setup prompts
|
|
1944
|
+
- Empathy phase grounded primarily in code/document evidence rather than user interviews, so several behavioral interpretations remain assumptions to validate later.
|
|
1945
|
+
|
|
1946
|
+
## Counters (DT IDs)
|
|
1947
|
+
|
|
1948
|
+
- Next DT ID: DT-070
|