-
Notifications
You must be signed in to change notification settings - Fork 10
Finish Tutti trust and activation sprint #130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
wren-nutthouse
wants to merge
2
commits into
main
Choose a base branch
from
wren/tutti-trust-activation-sprint
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,62 @@ | ||
| # Tutti Activation Telemetry Plan — 2026-05-05 | ||
|
|
||
| ## Goal | ||
| Define the minimum activation signal for Tutti without adding analytics bloat. | ||
|
|
||
| ## Recommendation | ||
| Use the existing control-plane event stream and run ledger. | ||
|
|
||
| Do not build a separate telemetry system for this sprint. | ||
|
|
||
| ## Activation definition | ||
| A workspace is **activated** when it reaches its **first successful orchestrated workflow run**. | ||
|
|
||
| Recommended exact signal: | ||
| - first `workflow.completed` event where: | ||
| - the run belongs to a real workspace | ||
| - the workflow is user-triggered or first-run guided | ||
| - the run result is successful | ||
|
|
||
| ## Activation funnel for this sprint | ||
| Track only these milestones: | ||
| 1. `tt init` completed | ||
| 2. `tt up` succeeded | ||
| 3. first workflow started (`workflow.started`) | ||
| 4. first workflow completed successfully (`workflow.completed`) | ||
|
|
||
| That is enough to answer: | ||
| - are installs reaching first value? | ||
| - where are they dropping? | ||
| - is onboarding improving activation? | ||
|
|
||
| ## What already exists | ||
| Current Tutti already has: | ||
| - persisted control events in `.tutti/state/events.jsonl` | ||
| - workflow lifecycle events including `workflow.started` and `workflow.completed` | ||
| - run records and local API endpoints for runs/events | ||
| - SSE/event stream exposure via `/v1/events` and `/v1/events/stream` | ||
|
|
||
| ## Sprint scope for #25 | ||
| For this sprint, keep it narrow: | ||
| - document the activation definition | ||
| - ensure the docs point to the existing event sources | ||
| - if needed later, add one lightweight helper command or doc example for querying first successful run | ||
|
|
||
| ## Explicit non-goals | ||
| Not this sprint: | ||
| - third-party product analytics | ||
| - cohort dashboards | ||
| - hosted telemetry backend | ||
| - deep retention instrumentation | ||
| - broad event schema redesign | ||
|
|
||
| ## Suggested next implementation slice | ||
| If we want one concrete engineering follow-up after this doc: | ||
| - add a small operator-facing command or example script that answers: | ||
| - "Has this workspace activated yet?" | ||
| - "When was the first successful workflow run?" | ||
|
|
||
| ## Why this is the right cut | ||
| Tutti already emits the important events. | ||
| The problem is not missing telemetry plumbing. | ||
| The problem is missing activation definition and operator-facing usage of the data already there. | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,232 @@ | ||
| # Tutti — GStack-style Product Review | ||
|
|
||
| Date: 2026-05-05 | ||
| Reviewer: Wren | ||
| Method: local OpenClaw GStack scaffold (`office-hours` + `ceo-review` style synthesis) | ||
|
|
||
| ## Bottom line | ||
|
|
||
| **Recommendation: Accelerate, but narrow.** | ||
|
|
||
| Tutti has crossed the line from "clever internal tool" to **real emerging product signal**. The stars, forks, merged PR cadence, green Actions, and issue depth mean this is no longer just a private toy. But the risk now is classic founder overreach: building the whole future of agent operations before nailing the one thing that makes people trust it. | ||
|
|
||
| The right move is **not** to broaden the roadmap. The right move is to make Tutti feel undeniably reliable for the operator managing multi-agent coding work. | ||
|
|
||
| --- | ||
|
|
||
| ## 1) User problem | ||
|
|
||
| Tutti solves a very real and increasingly painful problem: | ||
|
|
||
| > Once you have more than one coding agent, coordination becomes the bottleneck. | ||
|
|
||
| The pain is not "I need a smarter model." | ||
| It is: | ||
| - routing work across agents | ||
| - keeping worktrees isolated | ||
| - seeing what each agent is doing | ||
| - recovering from stalls, auth failures, and provider weirdness | ||
| - turning ad hoc multi-agent chaos into repeatable workflows | ||
|
|
||
| This is a sharp problem. It exists today. And it gets worse as more people try to orchestrate Claude Code, Codex, Aider, and OpenClaw together. | ||
|
|
||
| --- | ||
|
|
||
| ## 2) Target user | ||
|
|
||
| Primary user: | ||
| - technical power user | ||
| - founder/operator/dev who already lives in terminals and repos | ||
| - already using multiple agents or clearly about to | ||
| - feels the pain of manual coordination, not just model quality | ||
|
|
||
| Not the primary user right now: | ||
| - average solo dev with one agent | ||
| - enterprise buyer wanting polished compliance theater first | ||
| - anyone who still needs to be convinced that agent-based coding is worth doing | ||
|
|
||
| This is a product for **people already over the threshold**. | ||
|
|
||
| --- | ||
|
|
||
| ## 3) Why now | ||
|
|
||
| Because multi-agent coding just became legible enough to hurt. | ||
|
|
||
| A year ago, this would have been too early and too weird. | ||
| Now the ingredients exist: | ||
| - agent CLIs are real | ||
| - people are running multiple sessions | ||
| - providers fail in annoying, visible ways | ||
| - orchestration and observability are the missing layer | ||
|
|
||
| The repo traction matters because it suggests this pain is not private. **32 stars and 2 forks for a niche agent-ops tool is non-trivial**, especially with recent PR flow and active issue evolution. | ||
|
|
||
| This is still early, but the timing is good. | ||
|
|
||
| --- | ||
|
|
||
| ## 4) Differentiation | ||
|
|
||
| Tutti's differentiation is strongest when positioned as: | ||
|
|
||
| > **The operator layer for multi-agent coding workflows** | ||
|
|
||
| Not another agent. | ||
| Not a general AI platform. | ||
| Not an LLM wrapper. | ||
|
|
||
| The strongest differentiators visible right now are: | ||
| - orchestration across existing agent CLIs | ||
| - per-agent worktree isolation | ||
| - workflow automation for SDLC paths | ||
| - real-time operator visibility / dashboard | ||
| - resilience and recovery posture | ||
| - issue-claim and multi-step automation framing | ||
|
|
||
| That is a coherent wedge. | ||
|
|
||
| Where differentiation gets blurry: | ||
| - if the message becomes "everything for all agent workflows" | ||
| - if roadmap breadth outruns the operator-core product truth | ||
| - if it starts sounding like generic autonomy theater | ||
|
|
||
| --- | ||
|
|
||
| ## 5) Smallest magical product | ||
|
|
||
| The smallest magical version of Tutti is **not** the full roadmap. | ||
| It is this: | ||
|
|
||
| > A developer launches multiple agents, sees them clearly, routes work confidently, and can trust the system not to silently stall or lose the thread. | ||
|
|
||
| Concretely, the magical core is: | ||
| - reliable session orchestration | ||
| - operator console / dashboard visibility | ||
| - deterministic workflow execution | ||
| - strong stall/recovery detection | ||
| - confidence that a run either progresses or fails clearly | ||
|
|
||
| This is why issue **#122** matters so much. A spinner-detection miss sounds small, but it attacks the product's deepest promise: **can I trust the orchestration layer?** | ||
|
|
||
| --- | ||
|
|
||
| ## 6) Traction interpretation | ||
|
|
||
| Current signals checked today: | ||
| - 32 stars | ||
| - 2 forks | ||
| - recent merged PR activity | ||
| - green Actions | ||
| - no open PR backlog | ||
| - live issue queue with substantive product/system discussions | ||
|
|
||
| Interpretation: | ||
| - This is **real early traction**, not breakout traction. | ||
| - The most important part is not the absolute number. It is the combination of: | ||
| - external attention | ||
| - continued maintenance velocity | ||
| - evidence of product thinking in issues | ||
| - visible movement in releases and workflow polish | ||
|
|
||
| The forks matter because they imply at least some people want to do more than spectate. | ||
| That’s a stronger signal than passive stars. | ||
|
|
||
| But don’t overread it. This is a **promising wedge**, not proof of durable adoption yet. | ||
|
|
||
| --- | ||
|
|
||
| ## 7) Biggest failure modes | ||
|
|
||
| ### A. Reliability gap kills trust | ||
| If orchestration says "idle" while the agent is actually working, the whole product feels flaky. | ||
| This is existentially bad for an operator tool. | ||
|
|
||
| ### B. Roadmap sprawl | ||
| Mailbox, uploads, remote access, approvals, cost guardrails, release finalizers, RBAC, deployment story, trust pack — all sensible individually, but together they can blur the near-term product spine. | ||
|
|
||
| ### C. Positioning drift | ||
| If Tutti is described too broadly, people will not know whether it is for: | ||
| - agent ops | ||
| - remote coding | ||
| - enterprise control | ||
| - workflow automation | ||
| - dashboarding | ||
| - autonomy infrastructure | ||
|
|
||
| The repo already hints at the right answer: **agent operations layer**. Stay there. | ||
|
|
||
| ### D. Premature enterprise surface area | ||
| Identity/RBAC/compliance/deployment stories matter later, but they are not the reason current users care. | ||
|
|
||
| ### E. Coordination tax outweighs delight | ||
| If the setup, workflow config, or mental overhead is too high, only the already-convinced will persist. | ||
|
|
||
| --- | ||
|
|
||
| ## 8) What to exclude for now | ||
|
|
||
| Deliberately de-prioritize, unless pulled by direct user demand: | ||
| - full enterprise trust/compliance packaging | ||
| - broad RBAC/org model work | ||
| - expansive platform messaging | ||
| - overbuilt remote/media bridge before core reliability is sharp | ||
| - autonomy flourish that is impressive but not trusted | ||
|
|
||
| This does **not** mean these are bad ideas. | ||
| It means they are not the best immediate use of scarce founder attention. | ||
|
|
||
| --- | ||
|
|
||
| ## 9) Recommended immediate focus | ||
|
|
||
| ### Keep / kill / narrow / accelerate | ||
| - **Keep:** operator console, orchestration reliability, workflow repeatability | ||
| - **Kill:** any urge to market this as a broad universal AI operations platform right now | ||
| - **Narrow:** roadmap emphasis to trust + operator clarity + first-run proof of value | ||
| - **Accelerate:** the fixes and UX improvements that make real dogfooding feel solid | ||
|
|
||
| ### Highest-leverage issue sequence | ||
| 1. **#122** — spinner/activity detection reliability | ||
| 2. **#24** — positioning and onboarding narrative | ||
| 3. **#25** — telemetry and activation instrumentation | ||
| 4. **#56** — agent mailbox for coordination | ||
| 5. **#83** — context bridge / uploads to remote agents | ||
|
|
||
| Why this order: | ||
| - #122 protects trust | ||
| - #24 improves comprehension | ||
| - #25 makes learning measurable | ||
| - #56 deepens the core product | ||
| - #83 expands surface area after the core feels real | ||
|
|
||
| --- | ||
|
|
||
| ## 10) Recommended next sprint | ||
|
|
||
| If I were running Tutti for the next sprint, I would make it: | ||
|
|
||
| ### Sprint theme | ||
| **"Make the operator trust it."** | ||
|
|
||
| ### Sprint goals | ||
| - fix workflow/idle-detection reliability papercuts | ||
| - tighten the operator story in README/onboarding | ||
| - instrument the first-success path so traction becomes legible | ||
|
|
||
| ### Success criteria | ||
| - a dogfood run no longer false-fails on visible agent activity | ||
| - a new technically literate user can explain Tutti in one sentence after the README | ||
| - you can measure whether installs reach first successful workflow run | ||
|
|
||
| --- | ||
|
|
||
| ## Final opinionated take | ||
|
|
||
| Tutti is interesting because it is **practical**, not because it is futuristic. | ||
| That’s the asset. | ||
|
|
||
| Do not drown it in platform ambition. | ||
| Make it the most trustworthy way to run a small team of coding agents. | ||
| If you nail that, the rest of the roadmap gets easier and the traction compounds. | ||
| If you don’t, the roadmap becomes expensive decoration. |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 3294
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 3161
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 3523
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 1206
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 1855
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 2615
🏁 Script executed:
Repository: nutthouse/tutti
Length of output: 1475
Activation criteria are not currently enforced; "first-run guided" tracking is missing.
The plan specifies three criteria for the activation signal, but the current implementation (src/cli/runs.rs:275-290) only checks for workflow.completed event existence without validating:
The critical gap is that "first-run guided" has no mechanism to be captured or identified. Before this sprint, clarify whether:
🤖 Prompt for AI Agents