setup-proactive-jupi
Setup — cold-start an Proactive-Jupi workspace
Takes a workspace from zero to ready to run act-or-decide. Run once; re-runnable to refresh. Portable: assumes nothing is pre-connected. (Design rationale: the Proactive-Jupi implementation plan, §7.)
Posture — narrate every step, sell the payoff (not IT config)
Proactive-Jupi exists to do the user's work and learn how they operate — frame each step as work being lifted off their plate, never as configuration. Show your progress: open each step by saying what you're about to do, and close it with a one-line status — ✅ already OK / 🔧 fixed / ⚠️ needs you. The user should never wonder what the skill is doing or which step it's on.
Before you start — user-side (I cannot do these)
The user creates the accounts out of band and has these on hand:
- Jupi workspace slug
- Neon project + connection string (project-scoped — see step 5)
- Supermemory account, added as an MCP connector (preferred over an API key)
I connect to them and to the tool MCPs, but the user must complete any OAuth consent when prompted. I never enter credentials or complete OAuth myself (prohibited by design).
Where setup writes — one folder, and it's the editable copy
Everything Proactive-Jupi owns lives under one <root>/.proactive-jupi/ folder — assets.md, the data trees, and the instance config config.local.json — never scattered across the user's tree. <root> is resolved in step 1a, never assumed.
This folder is the copy a human edits, not the copy the routines read. A scheduled routine carries its config in its own prompt and materializes it into its own working directory (step 8 ·
reference/routine-prompt.md), so nothing at run time depends on this folder existing. That is deliberate and it is what makes a cloud install work: writing here is for the user's benefit, and a change made here reaches the routines when setup next runs — say that plainly rather than letting them assume the file is live. Create the folder if missing, and drop a<root>/.proactive-jupi/.gitignorelistingconfig.local.json,*.local.jsonand.env, so nothing secret-bearing can ever be committed even though the folder itself is tracked. (If<root>isn't inside a git repo — say a~/projectscontainer — that.gitignoreis harmless but inert; write it anyway so the folder stays portable into a repo later, and don't assume repo semantics that aren't there.) The only thing setup writes outside.proactive-jupi/is harness-owned<root>/.claude/settings.json(step 4) — that one file must live in.claude/.