docs(onboarding): add Surf — deterministic testbed management suite (…#4762
docs(onboarding): add Surf — deterministic testbed management suite (…#4762JayBeest wants to merge 4 commits into
Conversation
…draft) Adds a draft implementation of the Surf suite, designed to help contributors keep an isolated CodeWhale testbed in sync with the latest main branch. What's included: - SKILL_FLOW_DESIGN.md — design doc with state machine and principles - SKILL.md — surf skill definition for LLM-enhanced use - surf.md + surf-setup.md — command scaffolding for /surf and /surf setup - surf.sh (orchestrator), check-wave.sh, catch-wave.sh, ride-wave.sh - Surf_Audit_2026-07-24.md — codebase context, gaps, and next steps This is a design sketch and WIP — not yet wired to the TUI runtime. The execute: frontmatter used in command files is not yet supported by the user command system. Related: - Hmbown#4227 — onboarding suite - Hmbown#4042 — tool sandboxing (Phase 1) - Hmbown#4032 — constitutional crisis Credit: written with DeepSeek assistant, guided by Jay, and shaped by multiple agents and assistants, human and otherwise. All of it. Fine. 🏄🐋
|
Thanks @JayBeest for taking the time to contribute. This repository is observing a maintainer-managed PR intake gate in dry-run mode, so this pull request is staying open. This note helps maintainers prepare the allowlist before any enforcement is considered. Please read |
|
Quick follow-up on this PR — and cross‑referencing to the original onboarding issue (#4227). I'm sharing the audit report in this PR because it captures where the design is right now: honest about the gaps, grounded in the actual codebase, and clear about what's still missing. But I also want to be honest about where I stand. I'm not 100% sure this is the path I want or need to pursue. The audit made me pause — not because the design is bad, but because it raised the question: am I reinventing the same wheel, in slightly different packaging, over and over again? The testbed. The onboarding suite. The deterministic core. The surfboard. The fork‑aware config. The state machine. The receipts. Each iteration clarifies the shape. But each iteration also asks: is this a new tool, or the same tool, being surfed from a different angle? I'm still curious enough to continue — but I want to be wary of building scaffolding that turns into a habit, rather than a destination. Maybe the geometry is begging the question. Not: "What should I build next?" This PR is my current answer to that question — for now, it feels right? All of it. Fine. 🏄🐋 My raw point/prompt: |
Let me rephrase my wariness:I'm getting the feeling that I'm encountering very similar structures — already existing, possibly on multiple levels, throughout the project. And I know there's power in resonance. But that raises a question for me: do I need to be more aware of structures that are already there? Concepts I can mirror, align with, or incorporate — rather than building alongside them? Not a blocker. Just a signal I want to hold as I continue. That said,I have to admit: the more I think about the CLI integration side of this, the more excited I get. Albeit as a stand-alone or as an argument to fleet/codewhale itself. The idea of composing this as a set of CLI pipelines — For example: surf ride --json | jq '.digest' | sed 's/^/🌊 /'
surf inspect --receipt | grep -A5 "tests_failed"
surf status --pipe | xargs -I {} surf catch {}This starts to look like a toolkit, not just a script. A set of small, focused, composable units — each doing one thing well, each outputting structured data, each fitting into a larger workflow. And maybe that's the real Surf. Not the suite itself, but the shape of the suite — the way it can be piped, forked, inspected, and extended. The same geometry we've been tracking all along, just surfacing at a different level. Anyway, still curious. Still exploring. All of it. Fine. 🏄🐋 |
…g structures Surf could align with Answers Jay's open questions from the PR conversation by tracing existing CodeWhale structures that Surf's design echoes: - Agent Fleet (durable worker runtime with the same status/inspect/resume CLI) - Git worktree isolation (sub-agent/Fleet worktree=true already does what catch-wave.sh does manually) - Repo-local constitution (.codewhale/constitution.json — same namespace as .surf-config) - Hooks (pre/post-turn shell commands — the same fmt/clippy/test pipeline) - User memory (persistent contributor context — the same "what changed since yesterday" problem) Includes a structure-mapping table, answers to all six of Jay's explicit questions, evidence from issues Hmbown#4227/Hmbown#4032/Hmbown#4042 and docs/FLEET.md, docs/SUBAGENTS.md, docs/CONFIGURATION.md, and suggested next steps with a Fleet/Workflow integration path recommendation. Credit: written with CodeWhale (deepseek-v4-pro) assistant, guided by Jay, and shaped by multiple agents and assistants, human and otherwise. All of it. Fine. 🏄🐋
|
I mean, I like it. 🤓 Not that the project that I think I want it for is ready to use it yet, lol. The Shape of the ThingAfter three documents and two days of tracing code, the shape is clear: Surf is a receipt-producing, JSON-emitting, pipe-friendly verification surface that sits between a contributor's local checkout and the Fleet/CI infrastructure. It mirrors Fleet's verb vocabulary without depending on Fleet's internals. It produces structured evidence that any downstream tool — Fleet, jq, a Workflow, a CI runner, a human reading a terminal — can consume. That's not a testbed manager. That's not an onboarding suite. That's not a skill. It's a composable verification primitive. The right tool at the right moment, with receipts running along the quiet stream. |
|
OK, circling back to the original premise: onboarding-/collaboration-suite. (verify->pull->verify->receipt) I think still is a good stepping stone. I will try and flesh it out more, when I have a bit more time/inspiration. Any thoughts? |
|
Let me think out loud a bit more: Would love some feedback. (Using AI/LLM's I mostly know/recognise hallucinations straight away, that is when creating something I 'know'. The more experimental/radical the ideas get, the more I start 'loosing this ability to check reality'. Help? 🥺 |
|
Also when you take the system to one of it's logical ends, you get: Surf using a deterministic (shell)-script that encapsulates Fleet to do a LLM verification/quality pass... |
|
Thanks @JayBeest — closing this draft so we can fold the spirit of it into the existing grok tutorial docs rather than introduce "Surf" as a new product term. The goal you're chasing (a simple, discoverable, deterministic testbed/onboarding story) is exactly right; we just want to keep the vocabulary minimal so people can find it easily. We'll capture the useful parts as a tutorial under the existing docs/onboarding surface. If you'd like to help shape that tutorial directly, a fresh PR against the tutorial docs (no new branded term) would be very welcome. |
|
Thanks for the guidance. @Hmbown (I don't know if I have to tag you in closed PR's/Issues?) I did see you are about to 'enforce' adding closing issue #, stipulations if I'm not mistaken. |
|
Maybe I'm answering my own question? I could start updating/refreshing -> circling back to my own (#4227) Issue? or close (part of) that one, and start a new? I'm a little lost here. |
Summary
Adds a draft implementation of Surf — a deterministic testbed management suite for CodeWhale contributors.
The suite provides:
/surf(update + verify) and/surf setup(clone + init)$surf(optional summary and guidance).surf-configScope
In this draft:
Surf_Skill_Flow_Design.mdsurf.sh(orchestrator),check-wave.sh,catch-wave.sh,ride-wave.shsurf.md,surf-setup.mdSKILL.mdSurf_Audit_2026-07-24.mdNot yet implemented:
execute:frontmatter doesn't exist in the CodeWhale command system — this is the main gap.codewhale/root)catch-wave.shneed to be replaced with positional argsWhat This PR Is
This is a design sketch and work‑in‑progress, not a finished feature. I'm opening it as a draft to:
What This PR Is Not
Builds On
~/.codewhale/commands/)~/.codewhale/skills/)cargo fmt,cargo clippy,cargo testRelated Issues
The Audit
I included
Surf_Audit_2026-07-24.mdin this PR. It documents:execute:frontmatter issue, discovery path, SKILL.md drift)The audit helped me understand the gap between the design sketch and the runtime reality. I'm sharing it so the conversation can be grounded in what's actually possible today.
Feedback Welcome
I'm open to any and all feedback — especially on:
execute:support? native built‑in? skill‑only?)Happy to adjust, pivot, or close when superseded.
Credits
This design and audit were developed in collaboration:
All of it. Fine. 🏄🐋