Skip to content

Dan/init plan or implement 2#428

Merged
calvinbrewer merged 3 commits intodan/init-plan-or-implement-1from
dan/init-plan-or-implement-2
May 6, 2026
Merged

Dan/init plan or implement 2#428
calvinbrewer merged 3 commits intodan/init-plan-or-implement-1from
dan/init-plan-or-implement-2

Conversation

@calvinbrewer
Copy link
Copy Markdown
Contributor

@calvinbrewer calvinbrewer commented May 5, 2026

Building gamified stash init UX: split into init/impl, added stash status, and added a plan-summary confirm gate before implementation.

The full lifecycle now reads as save points:

  1. stash init → ✓ panel + "continue to plan?" prompt
  2. stash plan → drafts plan in ~1–3 min → outro pointing at re-run
  3. stash impl → plan summary panel + confirm gate
  4. Agent executes → outro pointing at stash db status to verify
  5. stash status at any time to see where you are

@calvinbrewer calvinbrewer requested a review from a team as a code owner May 5, 2026 18:52
@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented May 5, 2026

🦋 Changeset detected

Latest commit: a7de5cc

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
stash Minor
@cipherstash/e2e Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 5, 2026

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 23bbc6a7-4324-427d-bfe0-39b91dc60dfe

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dan/init-plan-or-implement-2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@calvinbrewer calvinbrewer changed the base branch from main to dan/init-plan-or-implement-1 May 5, 2026 18:54
Comment thread packages/cli/src/bin/stash.ts Outdated
init Initialize CipherStash for your project
impl Draft an encryption plan (or implement, if a plan exists)
plan Draft a reviewable encryption plan at .cipherstash/plan.md
impl Execute an encryption plan (or implement without one with --continue-without-plan)
Copy link
Copy Markdown
Contributor

@coderdan coderdan May 6, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wording could be clearer:

impl   Execute the plan with a local agent (use --continue-without-plan to skip a separate plan step)

The text in the brackets could be moved to a section at the end called impl flags (as we've done for DB and Init).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — impl description simplified to Execute the plan with a local agent, with the flag note moved into the Impl Flags section.

Comment thread packages/cli/src/bin/stash.ts Outdated
impl Draft an encryption plan (or implement, if a plan exists)
plan Draft a reviewable encryption plan at .cipherstash/plan.md
impl Execute an encryption plan (or implement without one with --continue-without-plan)
status Show project lifecycle: init done? plan written? implementation engaged?
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe simpler?

Displays implementation status

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — changed to Displays implementation status.

Comment thread packages/cli/src/bin/stash.ts Outdated
Impl Flags:
--yolo Skip the planning checkpoint and go straight to implementation
(interactively confirms before proceeding)
--continue-without-plan Skip the planning checkpoint and go straight to implementation
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Skip planning and go straight to implementation

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done — Skip planning and go straight to implementation.

Comment thread packages/cli/src/commands/impl/index.ts Outdated
Comment on lines 20 to 29
/**
* The handoff steps in `impl/steps/handoff-*.ts` accept an `InitProvider`
* but ignore it (their `run` signatures take `_provider`). The provider
* abstraction belongs to the `init` flow, where it picks intro copy and
* default next-steps. `stash impl` reads everything it needs from
* `.cipherstash/context.json` instead, so a stub keeps the type signature
* happy without pretending impl has provider-specific behaviour.
* but ignore it. Stub keeps the type signature happy without pretending
* impl has provider-specific behaviour.
*/
const STUB_PROVIDER: InitProvider = {
name: 'impl',
introMessage: '',
getNextSteps: () => [],
}
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this just be removed now?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed. Made provider optional on InitStep.run, dropped STUB_PROVIDER from both impl and plan, and stopped threading it through howToProceedStep and the handoff steps.

Comment thread packages/cli/src/commands/impl/index.ts Outdated
async function confirmContinueWithoutPlan(): Promise<void> {
const confirmed = await p.confirm({
message:
'Implementing without a plan commits you to ~45–60 min of agent work. Continue?',
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is framed quite negatively. It sounds like we're discouraging it!

Implementation can take some time. Continue?

45-60 minutes -> we actually don't know what the typical time will be yet.
Also, I dropped the "without a plan" - do we know that calling this without a plan meaningfully changes the execution time? Maybe worth checking.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reframed to Implementation can take some time. Continue?. Dropped the 45–60 min estimate (we don't have data yet) and the without a plan qualifier (no evidence it materially changes runtime — happy to add it back if we measure a difference).

@calvinbrewer calvinbrewer merged commit e7949ea into dan/init-plan-or-implement-1 May 6, 2026
3 checks passed
@calvinbrewer calvinbrewer deleted the dan/init-plan-or-implement-2 branch May 6, 2026 14:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants